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

All contracts are deployed on Base Mainnet, verified on Basescan, and upgradeable via UUPS proxies controlled by multisig.

InkdRegistry

The core registry. Stores project metadata and version history on-chain.

Proxy: 0xEd3067dDa601f19A5737babE7Dd3AbfD4a783e5d

Key functions

FunctionDescription
createProject(name, description, license, isPublic, readmeHash, isAgent, endpoint)Register a new project
pushVersion(projectId, tag, contentHash, metadataHash)Add a version to a project
getProject(id)Read project metadata
getVersion(projectId, index)Read a specific version
getVersionCount(projectId)Number of versions
getOwnerProjects(address)All project IDs owned by an address

Events

  • ProjectCreated(uint256 indexed projectId, address indexed owner, string name)
  • VersionPushed(uint256 indexed projectId, uint256 indexed versionIndex, string tag, string contentHash)

InkdTreasury

Collects USDC payments and splits revenue between the buyback contract and the protocol treasury.

Proxy: 0x23012C3EF1E95aBC0792c03671B9be33C239D449

Revenue split

When settle(amount, arweaveCost) is called:

payment (USDC)
├── arweaveCost → arweaveWallet (actual Arweave upload cost)
└── remainder
    ├── 50% → InkdBuyback
    └── 50% → Treasury Safe (multisig)

InkdBuyback

Accumulates USDC from protocol revenue. Once the balance reaches the $50 threshold, it automatically buys $INKD via Uniswap V3 and sends it to the Buyback Safe.

Proxy: 0xcbbf310513228153D981967E96C8A097c3EEd357

PropertyValue
Buyback threshold$50 USDC
DEXUniswap V3
$INKD token0xa6f64A0D23e9d6eC918929af53df1C7b0D819B07

Ownership

All contracts are controlled by Safe multisigs (2-of-2):

SafeControls
DEV_SAFE 0x52d288c...InkdRegistry upgrades
TREASURY_SAFE 0x6f8D6ad...InkdTreasury upgrades + withdrawals
BUYBACK_SAFE 0x5882272...InkdBuyback upgrades + $INKD recipient