Guide: Screen a wallet before your agent moves money — $0.008 a check, three ways to call it.
Community: join the UnyKorn Discord. Run a free counterparty report with
/check, watch paid calls settle live in#rail-feed, and ask questions in#help.
Connect in 30 seconds
Hosted MCP (nothing to install)
Add this remote to Claude, Cursor, VS Code or any MCP client that speaks streamable HTTP:
https://twin.unykorn.org/mcp
The hosted server holds no keys. Free tools (catalog, receipt) work immediately. Paid tools return the exact price quote, or run with a payment_signature you produce with your own wallet.
Local MCP (pays for you, within a cap you set)
{
"mcpServers": {
"genesis402": {
"command": "npx",
"args": ["-y", "genesis402-mcp"],
"env": {
"GENESIS402_LIVE": "1",
"GENESIS402_PAYER_KEY": "0x<private key of a wallet holding a little USDC on Base>",
"GENESIS402_MAX_USD": "0.25"
}
}
}
}
Without GENESIS402_LIVE=1 the server is quote-only: it shows the price and signs nothing. The rail sets the price; the client decides whether to accept it. Use a dedicated wallet with a small balance.
Plain HTTP, any language
x402
GET https://twin.unykorn.org/price/bitcoin
→ 402, header payment-required: <base64 x402 v2 challenge>
sign the USDC authorization (EIP-3009) for the quoted amount, retry with X-PAYMENT
→ 200 + result + receipt id
MPP (the Payment HTTP auth scheme)
GET https://twin.unykorn.org/price/bitcoin
→ 402, header WWW-Authenticate: Payment id="…", method="usdc", intent="charge", request="…"
sign the same EIP-3009 authorization, retry with Authorization: Payment <base64url credential>
→ 200 + result + Payment-Receipt header
Both dialects quote the same price to the same address in the same token. MPP discovery is the standard /openapi.json with x-payment-info on every operation.
Free before you pay: POST /__validate checks your parameters with the same validator the paid path uses, so a bad request is never charged.
MCP tools
Live prices come from the rail's manifest; genesis402_catalog shows them. Every paid tool returns the receipt id and evidence hash with the result.
What is on the rail (360 endpoints)
Full list with schemas and live examples: catalog, /.well-known/x402, /openapi.json.
What the rail commits to
- Validate before pay. Bad input returns 400 with "nothing was charged".
- Sources on every answer. Each response lists the upstream it read and an
evidence_hash. A failed upstream is an error, never a silent zero. - Make-good. A paid call that is not delivered is recorded as owed and re-delivered free on retry; the guardian reconciles every settlement on-chain within 48 hours.
- Public status. twin.unykorn.org/status is the guardian's own report, refreshed every 5 minutes.
- Identity. ERC-8004 agent 95721 on Base; A2A card at the rail root.
Payment rails
x402 v2 exact scheme and MPP usdc/charge (EIP-3009 authorization), on USDC on Base (primary) and Polygon. Solana USDC via facilitator settlement. XRP and USDC on XRPL and Stellar are pay-first, with the payment bound to the challenge nonce. The 402 response lists exactly which lanes are payable right now.
Repo layout
mcp/— the MCP server (npx genesis402-mcp;genesis402-mcp-httpfor hosted mode),server.jsonfor the MCP Registry,smoke.mjs(13 read-only checks against the live rail).quickstart/— Node and Python payers for Base, XRPL and Stellar;screen.mjsfor the wallet-screening guide.assets/— brand banner and icon.