A pay-per-call API rail for AI agents, with 22 agents registered on Base under ERC-8004. Every number below was read from the live system at the time shown, and every link opens the real thing.
A guardian probes every paid endpoint every few minutes and publishes the result. Anything it can't deliver is recorded as owed to the buyer, not quietly kept.
endpoints.payable: 370 of 370, and a make_good block listing what is owed.
twin.unykorn.org/agents, then one agent: Genesis402 (#95721)
Each agent is registered in the ERC-8004 Identity Registry on Base. Its card says what it sells, at what price, and who gets paid.
The registration card at /.well-known/agent-registration.json and the same agent on an independent explorer: 8004scan.io, agent 95721.
The score is read live from the ERC-8004 Reputation Registry on Base. Only an outside wallet that paid can be invited to rate, and our own wallets never are.
available: true with feedback_count: 0. Say it plainly: no ratings yet; this is the mechanism, ready for the first buyers.
An agent calls an endpoint, gets an HTTP 402 with the price, pays in USDC on Base, Polygon or Solana, and gets the answer with a signed receipt. No account, no API key. The $0.01 address check is listed in Coinbase's x402 Bazaar, where agents look for paid tools.
The catalog with prices. Calling POST /check/address without paying returns 402 and the price.
Each paid call leaves a signed receipt and its on-chain transaction. Buyer addresses are shortened, and our own test payments are labelled internal so they never count as sales.
stats.external_receipts: 597, gross_external_usd: "2.3720", and per-call rows with a transaction hash.
Unykorn Control on this laptop, Command view
One front page for the whole operation: rail and guardian, the live release, outside sales only, work in flight, and the checks. Every card names its source and its age, and a source that can't be read shows UNKNOWN, never zero.
Six status cards. Refunds owed to buyers appear under Approvals, ready to pay.
The rail is one node in the agent economy. Each row is a place an agent or a builder can find and pay us. "Live" was checked today; "pending" is built or submitted but not yet served.
| System | What it is | State | Open it |
|---|---|---|---|
| Hosted MCP server | Any MCP client (Claude, Cursor, agents) can call our 22 tools; paid ones settle over x402 | live v0.3.10, 22 tools | twin.unykorn.org/mcp |
| npm: genesis402-mcp | The same server, installable locally | live 0.3.10 | npmjs.com/package/genesis402-mcp |
| Official MCP Registry | The registry MCP clients search | listed (last confirmed 2026-10-06) | registry.modelcontextprotocol.io |
| Smithery | MCP server directory | listed (2026-10-06) | smithery.ai |
| ERC-8004 on Base | 22 agents in the Identity Registry; ratings in the Reputation Registry | live 22 / 22 | 8004scan.io |
| Coinbase x402 Bazaar | Where agents with wallets discover paid endpoints | listed 361 of our endpoints (2026-10-06); the $0.01 check was turned on yesterday | cdp.coinbase.com/x402/bazaar |
| x402scan | Public explorer of x402 sellers and payments | live (2026-09-30) | x402scan.com |
| Framework plugins | ElizaOS, Coinbase AgentKit, LangChain, OpenClaw, Claude Code: a drop-in "check this address before you pay" action | built, not published (waits on npm and ClawHub logins) | github.com/FTHTrading/genesis402-plugins |
| PayAPI Market, nohumans.directory, Docker MCP Catalog, MCP Market | Further x402 and MCP directories | pending submitted or drafted; none served yet | — |
| Operator desk (Unykorn Control) | One front page: rail, guardian, releases, outside sales, work, refunds | live on the operator's machine | shown live |
25 paid calls failed after settlement (0.069 USDC across 3 wallets), mostly because one catalog example carried an invalid signature.
Every undelivered paid call becomes an owed ticket that redeems at $0, the guardian publishes the count, and the desk prepares the refunds by itself. Pure checks are validated before payment.
The desk said "earning" from calls our own wallets had paid.
Every receipt is classed outside / ours / tester; only outside buyers count as sales, everywhere.
With one sanctions list unreachable, a risk check could have reported "not listed" as if it had looked.
Outages are never sold as findings. The call is refused before payment, or recorded as owed; a result never claims coverage it didn't have.
This morning 9 of 22 agent rating pages answered "unavailable" because a free Base node was rate-limiting us.
Moved to a different public node with no downtime; 22 of 22 answer. Next step is a paid node with a contract, so an outside limit can't surprise us again.