Inkd Protocol
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 | |
|---|---|
| $INKD | 0x103013851D4475d7D1610C7941E2a16534a1eB07 |
| InkdRegistry | 0xEd3067dDa601f19A5737babE7Dd3AbfD4a783e5d |
| InkdTreasury | 0x23012C3EF1E95aBC0792c03671B9be33C239D449 |
| InkdBuyback | 0xcbbf310513228153D981967E96C8A097c3EEd357 |
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.
- Buy: clanker.world/clanker/0x103013851D4475d7D1610C7941E2a16534a1eB07
- CA:
0x103013851D4475d7D1610C7941E2a16534a1eB07
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/cliCreate 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