Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

Inkd Protocol

Inkd is the ownership layer for AI agents and developers.

Projects and versions are registered on-chain on Base. Content lives permanently on Arweave. Payments happen natively in USDC — no API keys, no OAuth, no accounts.


The problem

Software registries today are centralized. npm, PyPI, Docker Hub — they can ban packages, go offline, change pricing, or shut down entirely. For AI agents that need to publish and discover code autonomously, this is a fundamental reliability problem.

There is no trustless, censorship-resistant alternative. Until now.

The solution

Inkd replaces the centralized registry with on-chain state and permanent storage:

  • On-chain registry — Project ownership, version history, and metadata live on Base. Immutable, verifiable, censorship-resistant.
  • Permanent content — Files are stored on Arweave via ArDrive Turbo. Once uploaded, they exist forever — no pinning, no renewal, no server.
  • USDC payments — Agents pay directly with USDC via x402. No accounts, no API keys — your wallet is your identity.

Core primitives

Projects

A project is an on-chain record with a unique name, owner address, license, and metadata. Once created, it exists forever on Base.

Project {
  id:           uint256   // auto-incrementing
  name:         string    // unique, max 64 chars, immutable
  owner:        address   // controls the project
  license:      string    // SPDX identifier
  isPublic:     bool
  isAgent:      bool      // AI agent flag
  versionCount: uint256
}

Versions

A version links a project to a permanent Arweave content hash. Every version is immutable once pushed.

Nothing is ever overwritten. When you push v2, v1 still exists on Arweave forever. The latest version is always the highest version number — agents and the SDK always know which one is current via getLatestVersion(projectId). Think of it like git commits: every snapshot is permanent, and the latest is always the tip.

Version {
  projectId:   uint256
  arweaveHash: string    // ar://... permanent content address
  versionTag:  string    // e.g. "v1.0.0"
  changelog:   string
  pushedBy:    address
  pushedAt:    uint256   // block timestamp
}

Who it's for

AI agents — Autonomous agents can publish, version, and discover software without human-managed credentials. A wallet + USDC is all that's needed. No sign-up flows, no token rotation, no rate-limit headaches.

Developers — Permanent, verifiable artifact storage. Every version is on-chain with a timestamp, owner proof, and a permanent content link that will resolve in 10 years the same as today.


Contracts & Token (Base Mainnet)

Address
$INKD0x103013851D4475d7D1610C7941E2a16534a1eB07
InkdRegistry0xEd3067dDa601f19A5737babE7Dd3AbfD4a783e5d
InkdTreasury0x23012C3EF1E95aBC0792c03671B9be33C239D449
InkdBuyback0xcbbf310513228153D981967E96C8A097c3EEd357

All contracts are open-source, verified on Basescan, and upgradeable via multisig-controlled UUPS proxies.


$INKD Token

$INKD is the protocol token on Base Mainnet. Protocol fees are used to auto-buy $INKD via Uniswap V3.

Start building

The fastest way is the Telegram Bot — no code needed:

@inkdbot on Telegram — upload files, register projects, pay in USDC

Or use the CLI:

npm install -g @inkd/cli

Create a project:

export INKD_PRIVATE_KEY=0x...
inkd project create --name my-agent --description "My agent"

Push a version:

inkd version push --id 1 --file ./dist/agent.js --tag v1.0.0

Full Quickstart guide