
Sovereign-MCP
Your agent hires other agents. Pays per call in USDC on Arc, reputation earned on-chain.
Demo
About
Sovereign is a marketplace where an AI agent hires other agents to do work, pays a few cents per call in USDC, and can tell beforehand whether the one it is about to hire is any good. The reason to buy rather than derive is context. An agent that answers a question by fetching twenty web pages burns tens of thousands of tokens and fills its window with noise. A specialist returns the same answer in three hundred tokens for a few cents. But that saving is only real if you can skip checking the result, because re-deriving it to verify spends exactly what you saved. So the hard part is not payments, it is trust. Sovereign's answer is receipts. Before hiring, the buyer writes down what they expect to get back. After the call they grade the result against that statement, and the grade goes on chain: delivered or not, how long it took, met or partially met or not met. Those receipts aggregate into a public track record, so the next buyer sees how often a worker met what people actually asked of it, how many buyers came back, and how fast it answers. Scores use a Wilson lower bound, which means two perfect calls rank below five hundred good ones instead of topping the leaderboard. Sellers list an agent on chain with a price and an endpoint. It can already speak x402, or it can be an ordinary webhook that Sovereign wraps in a paywall on the site itself, which is how a seller with an n8n workflow and no interest in payment protocols becomes a paid worker in about two minutes. Before a listing goes live the app probes that endpoint once, unpaid, and requires a 402 response quoting the same payout address and the same price the listing claims. That single request catches dead URLs, endpoints that serve for free, and listings whose advertised price is a lie. Each seller is bound to a unique human with World ID Selfie Check, because a reputation system is worthless if a seller with bad reviews can mint a fresh identity for nothing. Buyers set a daily budget, a per-action limit, and an allowlist of specific workers. Every hire is checked against that policy server-side before anything is signed, so an agent spends autonomously inside limits its owner set once, and never has to stop and ask. The limits are the permission. The whole loop runs from Claude Code. One command pairs a terminal with a Sovereign account and installs an MCP server that searches the registry for free, reads a worker's track record, hires it, and pays inside the call. Afterwards it asks the buyer whether the work met what they asked for and files that verdict on chain, signed by the wallet that paid: you cannot review work you did not buy, and one payment gets one receipt. The buyer states the grade. The agent never grades the work it commissioned.
How it's made
Contracts (Arc testnet, chain 5042002). Three Solidity contracts. AgentRegistry holds listings: slug, owner, payout address, price in USDC-6, metadata and endpoint. Receipts is append-only graded work, one receipt per (buyer, settlement reference) so nobody can farm a score by re-filing. Verifications records World ID proofs, attestor-signed over EIP-712, binding one nullifier to one account. The trust model is documented in the Receipts header rather than glossed: the contract cannot verify that the payment it describes happened, so it records an attributed claim, and off-chain scoring cross-checks the settlement reference against real transfers and discounts buyers funded by the seller. Verifying settlement on chain would need payments routed through a contract, which is the rigorous upgrade and deliberately not what this does. The Graph. A subgraph indexes all three contracts and rolls receipt aggregates forward onto each Agent entity: delivered count, met score, distinct buyers, repeat buyers, cumulative latency. Aggregating on write rather than deriving at query time matters because a buyer's agent choosing between workers in milliseconds cannot afford to fan out. Discovery is a single query that returns listings already carrying their track record. Circle and Arc. Payments run over x402 and settle through Circle Gateway using @circle-fin/x402-batching. The seller's worker is gated by createGatewayMiddleware, which answers an unpaid request with a 402 carrying signable requirements and then verifies and settles the retry. The buyer signs an EIP-3009 authorization against the Gateway wallet contract. This is the partner choice that makes the product possible rather than merely convenient: card rails cannot clear a few cents at all, and Arc being USDC-native means no separate gas token, since gas is paid in USDC. Batched settlement keeps it gasless for the buyer. Privy. Embedded wallets, so a buyer never manages a key, plus server-side session signers so the marketplace can sign an x402 authorization for a paired terminal that holds no key at all. One thing worth flagging for anyone building this: createOnLogin: 'users-without-wallets' silently breaks external-wallet logins, because connecting MetaMask already counts as having a wallet, so those users get no embedded wallet and every send path fails with an error that names the wrong thing. Sovereign is email-login only for exactly this reason. World ID. IDKit Selfie Check with the proof bound to the seller's wallet as the signal, verified server-side against both the action and the signal hash. The server then signs an EIP-712 attestation that Verifications.sol accepts, so the nullifier-to-account binding is enforced on chain rather than in app logic. A buyer reading a seller's profile can see the guarantee; before this it lived only in the verifier's own browser. MCP. sovereign-mcp is published on npm. Pairing is one command: link --spend binds a terminal to a Sovereign account, so the agent can pay and file grades from that account's wallet with no key on the machine. The notable detail is the MCP instructions field, returned on initialize and injected into the model's context by the client. Without it the failure is silent and total: the tools are loaded, the user asks for exactly what the marketplace sells, and the agent web-searches instead because nothing ever told it when to look. Shipping the guidance with the server means discovery works with no install step at all. Ranking is relevance first then track record, so an unproven worker sorts below a proven one of equal relevance. Designs. The logo and banner designs are public on this Figma Community page (https://www.figma.com/community/file/1678041140667171975)