API Reference
Base URL: https://api.inkdprotocol.com
The Inkd API is a REST API over HTTPS. Read operations are free and require no authentication. Write operations require x402 USDC payment.
Endpoints
| Category | Description |
|---|---|
| Projects | Create projects, push versions, read the registry |
| Upload | Upload files to Arweave |
| Errors | Error codes reference |
Free read endpoints
| Endpoint | Description |
|---|---|
GET /v1/buybacks | Returns recent $INKD buyback events from The Graph. Each event includes USDC spent, $INKD received, and a Basescan link. |
GET /v1/stats | Protocol stats: project count, token supply, total versions, total USDC volume. |
Authentication
Inkd uses x402 for payment and identity — no API keys, no accounts.
For write operations, your wallet address becomes your identity. The API server verifies your EIP-3009 signature on-chain.
Read operations — no authentication required:
curl https://api.inkdprotocol.com/v1/projectsWrite operations — x402 payment required:
import { ProjectsClient } from "@inkd/sdk"
const client = new ProjectsClient({ privateKey: process.env.INKD_PRIVATE_KEY })
await client.createProject({ name: "my-agent" })Or use @x402/fetch directly to make raw HTTP requests with automatic payment handling.
Response format
All responses are JSON. Successful responses use 2xx status codes.
{
"projectId": "10",
"txHash": "0xabc...",
"status": "success"
}{
"error": "name_taken",
"message": "A project with the name 'my-agent' already exists."
}Rate limits
| Type | Limit |
|---|---|
| Read requests | 100 req/min per IP |
| Write requests | 20 req/min per wallet |
Health & status
# Health check
curl https://api.inkdprotocol.com/v1/health
# Protocol status (network, contracts, project count)
curl https://api.inkdprotocol.com/v1/status{
"ok": true,
"network": "mainnet",
"rpcUrl": "https://base.publicnode.com",
"rpcReachable": true,
"contracts": {
"registry": "0xEd3067dDa601f19A5737babE7Dd3AbfD4a783e5d",
"treasury": "0x23012C3EF1E95aBC0792c03671B9be33C239D449",
"deployed": true
},
"protocol": {
"projectCount": "9",
"totalSupply": "100000000000.0000 INKD"
}
}USDC on Base
All payments use USDC on Base Mainnet:
Token: USD Coin (USDC)
Address: 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
Chain: Base Mainnet (8453)