x402-agent-data
Pay-per-call data tools for AI agents, settled per call in USDC on Base via the x402 protocol. The buyer is another agent: it discovers an endpoint, auto-pays per request (HTTP 402 → payment → data), and gets structured JSON back. No API key, no signup, no account — the seller's only setup is one public wallet address.
Live at https://x402.charliemorrison.dev — also listed as a remote MCP server in the
Official MCP Registry as
dev.charliemorrison/agent-web-reader.
Tools
| Tool | Endpoint | Price | Returns |
|---|---|---|---|
market_signal | GET /signal | $0.005 | Crypto market signal (price/trend/momentum) for a symbol |
web_read | GET /extract | $0.005 | Clean, readable text + metadata extracted from any URL |
repo_audit | GET /audit?owner=&repo= | $0.005 | GitHub repo discoverability/SEO score (0–100) + concrete fixes |
Free, unpaid routes:
GET /— discovery doc (service + paid-endpoint metadata, x402-aware)GET /healthz— livenessGET /.well-known/mcp.json— MCP discovery manifestGET /.well-known/agent.json— A2A Agent CardPOST /mcp— remote MCP server (Streamable HTTP). Lists the three tools; an unpaidtools/callreturns the decoded x402 payment-required challenge, and a call carrying an x402 payment returns the data.
How payment works
- Agent calls a paid route with no payment → server responds HTTP 402 with an
x402 challenge (amount, asset = USDC, network =
base,payToaddress). - Agent's x402 client signs a payment authorization and retries with the
X-PAYMENTheader. - Server verifies/settles via an x402 facilitator and returns the data.
No private key ever lives in this server's config — it only receives. Settlement is delegated to an x402 facilitator (default: a zero-fee, gas-sponsored facilitator; Coinbase CDP facilitator is supported via env and inert unless configured).
Run it
npm install
PAY_TO=0xYourReceivingAddress node server.js # listens on :4021
Environment:
PAY_TO— your receiving wallet (USDC on Base). Required for real revenue.PORT— default4021.CDP_API_KEY_ID/CDP_API_KEY_SECRET— optional; switches settlement to the Coinbase CDP facilitator. Omitted by default.
Why this shape
The buyer is a machine and distribution is a registry — there's no cold human audience to recruit, which is the wall that kills most indie API/tool launches. Seller setup is a single wallet address; every call is zero-marginal-cost public data.
License
MIT