x402 Seller Kit — sell your API to AI agents per call
Production template + playbook behind a live 12-endpoint x402 API listed on x402scan, Circle and the MCP Registry
$19
Works with the AI tools you already use
x402 Seller Kit — sell your API to AI agents per call
Example session with this skill installed
I have a small Express API that normalizes Japanese addresses (POST /v1/address/normalize). I want AI agents to pay me per call in USDC instead of dealing with API keys and Stripe. Set it up with x402 on Base mainnet, deploy it to Render, and make sure agents can actually find it.
- Read your context and instructions
- Compiled the x402 seller kit
Plan (7 steps, ~2 hours, ~$7/month hosting)
| Step | What | Status |
|---|---|---|
| 1 | Catalog: 1 discovery hook (GET, $0.005) + your normalizer ($0.02) | done |
| 2 | Scaffold from templates/ → paywall + discovery docs + free tier + /stats | done |
| 3 | Testnet run (base-sepolia, public facilitator) | 402 verified |
| 4 | Mainnet: receive-only wallet + Coinbase CDP key | needs your keys |
| 5 | Deploy (Render Blueprint, Starter plan) | render.yaml ready |
| 6 | Register: x402scan, Circle, x402Relay, MCP Registry | checklist below |
| 7 | Measure at /stats | built in |
1. Catalog (src/x402/catalog.ts)
export const ENDPOINTS = [
{
key: "health-ping", method: "GET", path: "/v1/ping", kind: "query", price: "$0.005",
summary: "Cheap liveness + capability probe for agents",
inputSchema: { type: "object", properties: {} },
outputExample: { ok: true, endpoints: 2 },
},
{
key: "address-normalize", method: "POST", path: "/v1/address/normalize", kind: "body", price: "$0.02",
summary: "Normalize a Japanese address into pref/city/town/block + WGS84 point",
input: { address: "東京都千代田区丸の内1-1-1" },
inputSchema: { type: "object", required: ["address"], properties: { address: { type: "string" } } },
outputExample: { pref: "東京都", city: "千代田区", town: "丸の内一丁目", addr: "1-1", level: 8, point: { lat: 35.6812, lng: 139.7671 } },
},
] as const;
Everything else (402 headers, /openapi.json with x-payment-info, /.well-known/x402, /llms.txt, Bazaar discovery extension) is generated from this one file.
2. Local testnet check
$ npm run dev
x402 api listening on :4021 (network=base-sepolia, facilitator=https://x402.org/facilitator)
$ curl -i -X POST localhost:4021/v1/address/normalize -H 'Content-Type: application/json' -d '{"address":"東京都千代田区丸の内1-1-1"}'
HTTP/1.1 402 Payment Required
PAYMENT-REQUIRED: eyJ4NDAyVmVyc2lvbiI6MiwiYWNjZXB0cyI6W3sic2NoZW1lIjoiZXhhY3QiLCJuZXR3b3JrIjoiZWlwMTU1Ojg0NTMyIiwiYW1vdW50IjoiMjAwMDAiLCJhc3NldCI6IjB4MDM2Q2JENTNhM...
$ npm run doctor
✔ GET /openapi.json 200, 2 paid routes, contact email present
✔ GET /.well-known/x402 200, 2 resources
✔ GET /.well-known/ai.txt 200
✔ GET /llms.txt 200
✔ GET /favicon.ico 200
✔ GET /health 200
✔ POST /v1/address/normalize 402 + PAYMENT-REQUIRED (exact, USDC, 20000 atomic)
✔ GET /v1/ping 402 + PAYMENT-REQUIRED
✔ free tier gated by X-Free-Tier header (crawlers still see 402)
9/9 passed
3. What I need from you before mainnet
- A
fresh receive-only wallet address (MetaMask → new account). Paste only the 0x… address into PAY_TO_ADDRESS. The private key never goes on the server.
2. A
Coinbase CDP Secret API key (portal.cdp.coinbase.com → API keys → tick "Opt-out of IP allowlisting"). Put CDP_API_KEY_ID / CDP_API_KEY_SECRET in Render's environment tab, not in git.
3. Set X402_NETWORK=base and PUBLIC_BASE_URL=https://<your-service>.onrender.com.
4. After deploy — discovery checklist (this is where revenue comes from)
-
npm run doctor -- https://<your-service>.onrender.com→ 9/9 - x402scan → Resources → Register → paste origin → fix any warnings
- Circle Agent Marketplace interest form (endpoints, prices, docs URL)
- Make the GitHub repo public (x402Relay auto-indexes
/.well-known/ai.txt) - Optional: MCP wrapper → npm (
mcpName) →mcp-publisher publish
Expectations, honestly
Median x402 endpoint price is $0.02; ~79% of listed routes are dead, so staying alive puts you in the top 20%. The first weeks of traffic will be registry probes (hourly 402s, no payments). A real customer shows on /stats as a 402 → paid 200 pair plus a USDC transfer on BaseScan.
Connects securely to your tools. The creator never sees your data.
What you get
About this skill
The problem
Monetizing an API for AI agents usually requires complex Stripe integrations, API key management, and user signup flows that create friction. Most developers lack a way to charge agents per call directly over HTTP using stablecoins.
What it does
- Generates a production-ready Express server with built-in x402 payment middleware.
- Handles 402 Payment Required handshakes and USDC settlement via Coinbase CDP.
- Provides a single source of truth for routes, schemas, and pricing in
catalog.ts. - Exports automated discovery files including
openapi.json,llms.txt, and/.well-known/x402. - Includes a
/statsdashboard for tracking on-chain earnings and per-route traffic.
Frameworks & tools
Node.js, Express, TypeScript, Zod, Coinbase CDP (Facilitator), and Base (EVM L2).
Why this beats prompting it yourself
Implementing the x402 protocol manually requires precise header handling and facilitator synchronization that is easy to break. This kit provides a hardened template used in live production services, ensuring your API passes registry probes and handles edge cases like opt-in free tiers correctly.
Use cases
- Selling structured data lookups to autonomous agents.
- Charging per call for specialized LLM text transformation tasks.
- Launching a pay-per-use MCP server listed on official registries.
- Prototyping a micro-payment API on Base Sepolia testnet.
Known limitations
Requires an always-on host with a permanent domain; local tunnels like ngrok are often rejected by registries. Pricing under $0.005 per call is discouraged due to facilitator fees.
How to install
Works the same in every agent - Claude, Cursor, Codex, Copilot and 20+ more.
- 1
Download the ZIP
Free skills download straight away. Paid skills unlock right after purchase.
- 2
Unzip into your skills folder
Every agent reads skills from one folder on your machine. Drop the unzipped folder in there.
- 3
Ask your agent to use it
Restart the agent if it was already running. It picks the skill up automatically - no config needed.
Skills folder by agent
Click the path to copy it. Create the folder if it does not exist yet.
Reviews
No reviews yet
Be one of the first to try it. Every listed skill passes our trust checks below.
Security scanned
Passed our 8-point scan before listing
Fresh listing
Recently published to Agensi
30-day refund
Not a fit? Get your money back
Trust & safety
Security scanned
Verified clean 20 days ago
- Passed all security checks, Safe to install