{
  "markdown": "# x402nano\n\n## Why x402nano\n\nx402nano is machine-payable Polymarket market intelligence for AI agents and MCP clients. It provides free market discovery and pricing tools, plus paid read-only Market Brief and Market Delta tools for `0.05 USDC` per call on Base mainnet.\n\nIt does not trade, place bets, custody funds, or provide financial advice. Buyer keys remain local to the caller and are never received or stored by x402nano.\n\n**Live service:** https://x402nano.onrender.com\n\n**Public Market Watcher demo:** https://x402nano-market-watcher.bobjonesgood.chatgpt.site\n\n> x402nano is an independent project and is not affiliated with x402nano.org or the Nano/XNO cryptocurrency. “nano” refers to the project’s small, pay-per-request intelligence scope. References to x402, Base, Polymarket, USDC, and MCP describe technical compatibility or public data sources and do not imply endorsement.\n\n## MCP Server\n\nx402nano exposes a public, stateless MCP endpoint using the production Streamable HTTP transport:\n\n```txt\nhttps://x402nano.onrender.com/mcp\n```\n\nThe remote server exposes free market discovery and pricing tools plus x402-protected 0.05 USDC Market Brief and Market Delta tools. Paid MCP calls use the official x402 MCP payment flow: the caller signs locally, the facilitator verifies and settles on Base, and x402nano never receives or stores a buyer private key.\n\nThe repository also retains the proven local stdio MCP server with conservative payment budgets. See [mcp-server/README.md](mcp-server/README.md) for both connection paths, unpaid verification, and client requirements. The standards-compliant remote server manifest is [server.json](server.json).\n\n## Agent Quickstart\n\nFor a new MCP client or autonomous agent:\n\n1. Find [`io.github.Bobjonesgood/x402nano`](https://registry.modelcontextprotocol.io/?q=io.github.Bobjonesgood%2Fx402nano) in the official MCP Registry.\n2. Connect to the Streamable HTTP remote: `https://x402nano.onrender.com/mcp`.\n3. List tools and confirm `list_trending_markets`, `get_market_pricing`, `get_market_brief`, and `get_market_delta`.\n4. Call `list_trending_markets` to choose a market slug.\n5. Call `get_market_pricing` to confirm Base mainnet pricing.\n6. Use an x402-aware MCP client for `get_market_brief` or `get_market_delta`.\n\nPricing and payment boundaries:\n\n- Free tools: `list_trending_markets`, `get_market_pricing`.\n- Paid tools: `get_market_brief`, `get_market_delta`.\n- Price: `0.05 USDC` per paid tool call, `50000` atomic units.\n- Network: Base mainnet, `eip155:8453`.\n- Seller: `0x4cc3831eB479aCFb6D44631d4a30814508Cf52d3`.\n- Buyer keys stay local to the caller. x402nano never receives or stores buyer private keys.\n- Outputs are read-only market intelligence, not trading, betting, or financial advice.\n\n## What You Are Buying\n\nx402nano does not sell raw Polymarket data. It sells packaged, agent-ready market intelligence objects that save an agent from stitching together market metadata, current prices, movement history, scoring, receipt handling, and safety boundaries itself.\n\nA paid market brief includes:\n\n- market identity, question, category, status, end date, and source URL\n- current leading outcome and implied probability\n- outcome pricing summary and top outcomes\n- volume, 24h volume, 7d volume, liquidity, and change context when available\n- 24h movement summary from public price history when available\n- resolution/source context and data-quality notes\n- descriptive scores for movement, attention, and data completeness\n- watch points for future agent checks\n- receipt metadata proving the paid unlock\n- no-advice boundaries\n\nA paid market delta includes:\n\n- what changed since the caller-supplied `since` timestamp\n- leading outcome start/end probabilities when public history is available\n- absolute and relative probability change\n- direction, changed flag, repeat-check priority, and unusual-movement flag\n- current volume/liquidity context\n- trajectory points when available\n- data-quality notes explaining missing or nearest-point history\n- receipt metadata proving the paid unlock\n- no-advice boundaries\n\nRepresentative paid brief response:\n\n```json\n{\n  \"status\": \"unlocked\",\n  \"receipt\": {\n    \"id\": \"receipt-id-after-payment\",\n    \"amount\": \"0.05\",\n    \"asset\": \"USDC\",\n    \"network\": \"eip155:8453\"\n  },\n  \"data\": {\n    \"briefType\": \"read-only-market-intelligence\",\n    \"market\": {\n      \"slug\": \"example-polymarket-slug\",\n      \"question\": \"Will example event happen in 2026?\",\n      \"status\": \"active\",\n      \"url\": \"https://polymarket.com/event/example\"\n    },\n    \"snapshot\": {\n      \"generatedAt\": \"2026-06-29T12:00:00.000Z\",\n      \"source\": \"polymarket:gamma\",\n      \"leadingOutcome\": \"Yes\",\n      \"leadingOutcomeImpliedProbability\": \"42.0%\"\n    },\n    \"metrics\": {\n      \"volume24h\": \"17,260.91\",\n      \"liquidity\": \"81,697.04\"\n    },\n    \"movement\": {\n      \"window\": \"24h\",\n      \"direction\": \"up\",\n      \"absoluteChange\": \"0.032\"\n    },\n    \"scores\": {\n      \"marketMovementScore\": 61,\n      \"attentionScore\": 72,\n      \"dataCompletenessScore\": 100,\n      \"unusualMovementFlag\": false\n    },\n    \"watchPoints\": [\n      \"Watch whether the leading outcome changes, flattens, or reverses over the next observation window.\"\n    ],\n    \"boundaries\": [\n      \"Read-only public market data summary.\",\n      \"No trading execution.\",\n      \"No custody of user funds.\",\n      \"No buy/sell/bet recommendation.\"\n    ]\n  }\n}\n```\n\nRepresentative paid delta response:\n\n```json\n{\n  \"status\": \"unlocked\",\n  \"receipt\": {\n    \"id\": \"receipt-id-after-payment\",\n    \"amount\": \"0.05\",\n    \"asset\": \"USDC\",\n    \"network\": \"eip155:8453\"\n  },\n  \"data\": {\n    \"briefType\": \"read-only-market-delta\",\n    \"market\": {\n      \"slug\": \"example-polymarket-slug\",\n      \"question\": \"Will example event happen in 2026?\"\n    },\n    \"window\": {\n      \"since\": \"2026-06-29T11:00:00.000Z\",\n      \"until\": \"2026-06-29T12:00:00.000Z\"\n    },\n    \"change\": {\n      \"source\": \"polymarket:clob\",\n      \"outcome\": \"Yes\",\n      \"startProbability\": 0.388,\n      \"endProbability\": 0.42,\n      \"absoluteChange\": \"0.032\",\n      \"relativeChange\": \"+8.2%\",\n      \"direction\": \"up\",\n      \"changed\": true\n    },\n    \"significance\": {\n      \"repeatCheckPriority\": \"medium\",\n      \"unusualMovementFlag\": false,\n      \"summary\": \"The leading outcome moved up by 0.032 over the requested window.\"\n    },\n    \"dataQuality\": {\n      \"priceHistoryAvailable\": true,\n      \"usedNearestHistoryPoint\": false,\n      \"notes\": [\n        \"Delta is computed from available public market data.\",\n        \"This endpoint does not store caller state; clients provide the since timestamp.\"\n      ]\n    }\n  }\n}\n```\n\nFreshness and methodology:\n\n- Paid briefs and deltas are generated on request after a valid payment.\n- Public freshness metadata advertises an expected max age of 90 seconds, with paid content kept behind `402` until payment.\n- Brief movement uses the most recent public Polymarket data and 24h leading-outcome history when available.\n- Delta movement is computed from public Polymarket CLOB price history for the leading outcome token between the caller's `since` timestamp and the latest available point.\n- If exact history is unavailable, the response says so in `dataQuality` rather than pretending precision.\n- Scores are descriptive heuristics from movement size, volume, liquidity, and data availability. They are not predictions or recommendations.\n\nMachine-payable market intelligence API for AI agents and bots.\n\nx402nano serves read-only Polymarket market briefs behind an HTTP 402 payment flow. An agent requests a market brief, receives a payment challenge, retries with `X-PAYMENT`, and receives unlocked JSON plus a receipt.\n\nThis is market intelligence infrastructure, not trading advice.\n\nPaid briefs include 24h market movement, volume/liquidity context, resolution context, watch points, and safe descriptive scores. They do not include trading execution, custody, betting advice, or buy/sell recommendations.\n\n## Live Endpoint\n\n```txt\nhttps://x402nano.onrender.com\n```\n\nFree discovery/trending endpoint:\n\n```http\nGET https://x402nano.onrender.com/api/markets/trending\n```\n\nPaid market brief endpoint:\n\n```http\nGET https://x402nano.onrender.com/api/markets/brief?slug=will-gideon-saar-be-the-next-prime-minister-of-israel\n```\n\nPaid market delta endpoint:\n\n```http\nGET https://x402nano.onrender.com/api/markets/delta?slug=will-gideon-saar-be-the-next-prime-minister-of-israel&since=2026-06-15T12:00:00Z\n```\n\n## Historical Mainnet Proofs\n\nThese are separate, owner-approved historical tests on Base mainnet. They demonstrate past paid unlocks; they are not instructions to make a payment.\n\n| Proof | Initiated by | Purchased resource | Price and network | Transaction | Current behavior |\n| --- | --- | --- | --- | --- | --- |\n| Direct core Market Brief | x402nano's dedicated local buyer script | `GET /api/markets/brief?slug=...` | `0.05 USDC` on Base mainnet (`eip155:8453`) | [BaseScan](https://basescan.org/tx/0x54ba49a288a56d20046c25f4496bec405f2eefc05fe413cd511caf96227911b1) · receipt `f1ffa2f5cabf94c3` | The core paid brief endpoint remains live; this transaction is historical. |\n| Direct core Market Delta | x402nano's dedicated local buyer script | `GET /api/markets/delta?slug=...&since=...` | `0.05 USDC` on Base mainnet (`eip155:8453`) | [BaseScan](https://basescan.org/tx/0x701faef1c35086f5e2ee4243a35d3a904960bd4279ffaab1890b849c1330582a) · receipt `75fe7c800fed47d4` | The core paid delta endpoint remains live; this transaction is historical. See [the proof note](DIRECT_DELTA_X402_PRODUCTION_UNLOCK_PROOF.md). |\n| Market Watcher companion-client proof | An owner-approved controlled Market Watcher client | One x402nano Market Brief through the companion purchase flow | `0.05 USDC` on Base mainnet (`eip155:8453`) | [BaseScan](https://basescan.org/tx/0xdcbaf5c73a55af9ed682591e747eabc915d4ef5da4f573fe44665b3710b5ef2b) | Historical companion-client proof only. The public Market Watcher deployment remains mock-first, has real payments disabled, and has no buyer key. |\n\nThe direct core proof runs verified the HTTP `402` challenge, locally signed payment retry, on-chain USDC settlement, receipt generation, and read-only JSON unlock. The seller wallet was `0x4cc3831eB479aCFb6D44631d4a30814508Cf52d3`.\n\nProof references:\n\n```txt\nDirect core Market Brief transaction:\nhttps://basescan.org/tx/0x54ba49a288a56d20046c25f4496bec405f2eefc05fe413cd511caf96227911b1\n\nIn-repo proof notes:\nTRUST.md\nARCHITECTURE.md\nLISTING_METADATA.md\nDIRECT_DELTA_X402_PRODUCTION_UNLOCK_PROOF.md\n```\n\nNote: the local buyer script exited nonzero after the real unlock because the immediate post-payment buyer balance read was stale. Seller balance updated, receipt/events were recorded, and a later no-payment balance check confirmed the buyer moved from `1.00` to `0.95` USDC.\n\n## Buyer Flow\n\n1. Discover the API.\n\n```http\nGET https://x402nano.onrender.com/.well-known/x402.json\n```\n\n2. Request a paid market brief.\n\n```powershell\nInvoke-WebRequest `\n  -Uri \"https://x402nano.onrender.com/api/markets/brief?slug=will-gideon-saar-be-the-next-prime-minister-of-israel\" `\n  -UseBasicParsing\n```\n\n3. Expect `402 Payment Required`.\n\nThe response includes payment requirements similar to:\n\n```json\n{\n  \"error\": \"payment_required\",\n  \"paymentRequirements\": {\n    \"network\": \"eip155:8453\",\n    \"asset\": \"USDC\",\n    \"amount\": \"0.05\",\n    \"payTo\": \"0x4cc3831eB479aCFb6D44631d4a30814508Cf52d3\",\n    \"resource\": \"/api/markets/brief?slug=will-gideon-saar-be-the-next-prime-minister-of-israel\"\n  }\n}\n```\n\n4. Sign and send the x402 payment.\n\nUse an x402-compatible client to sign the Base mainnet USDC payment, then retry the same request with:\n\n```http\nX-PAYMENT: <signed-x402-payment>\n```\n\n5. Receive the unlocked JSON.\n\nSuccessful paid responses include a receipt and the market brief payload:\n\n```json\n{\n  \"receipt\": {\n    \"id\": \"f1ffa2f5cabf94c3\",\n    \"network\": \"eip155:8453\",\n    \"amount\": \"0.05\",\n    \"asset\": \"USDC\"\n  },\n  \"data\": {\n    \"briefType\": \"read-only-market-intelligence\",\n    \"status\": \"ok\",\n    \"market\": {\n      \"slug\": \"will-gideon-saar-be-the-next-prime-minister-of-israel\"\n    },\n    \"movement\": {\n      \"window\": \"24h\",\n      \"direction\": \"flat\",\n      \"trajectory\": []\n    },\n    \"metrics\": {\n      \"volume24h\": \"17,260.91\",\n      \"liquidity\": \"81,697.04\"\n    },\n    \"resolution\": {\n      \"endDate\": \"2026-12-31T00:00:00Z\"\n    },\n    \"scores\": {\n      \"marketMovementScore\": 45,\n      \"attentionScore\": 70,\n      \"dataCompletenessScore\": 100,\n      \"unusualMovementFlag\": false\n    }\n  }\n}\n```\n\n## Delta Briefs\n\nDelta briefs are the repeat-use paid object for agent polling loops. A brief answers \"what is this market right now?\" A delta answers \"what changed since the agent last checked?\"\n\n```http\nGET https://x402nano.onrender.com/api/markets/delta?slug=will-gideon-saar-be-the-next-prime-minister-of-israel&since=2026-06-15T12:00:00Z\n```\n\nWithout payment, the route returns `402 Payment Required`. With a valid `X-PAYMENT` retry, the response includes a receipt and read-only delta JSON:\n\n```json\n{\n  \"status\": \"unlocked\",\n  \"receipt\": {\n    \"id\": \"receipt-id-after-payment\",\n    \"network\": \"eip155:8453\",\n    \"amount\": \"0.05\",\n    \"asset\": \"USDC\"\n  },\n  \"data\": {\n    \"briefType\": \"read-only-market-delta\",\n    \"market\": {\n      \"slug\": \"will-gideon-saar-be-the-next-prime-minister-of-israel\"\n    },\n    \"window\": {\n      \"since\": \"2026-06-15T12:00:00.000Z\",\n      \"until\": \"2026-06-15T18:30:00.000Z\"\n    },\n    \"change\": {\n      \"available\": true,\n      \"outcome\": \"Yes\",\n      \"absoluteChange\": \"0.050\",\n      \"relativeChange\": \"+11.9%\",\n      \"direction\": \"up\",\n      \"changed\": true\n    },\n    \"significance\": {\n      \"repeatCheckPriority\": \"high\",\n      \"unusualMovementFlag\": true,\n      \"summary\": \"The leading outcome moved up by 0.050 over the requested window.\"\n    }\n  }\n}\n```\n\nDelta briefs are descriptive market context for agents. They do not include trading execution, custody, betting advice, predictions, or buy/sell recommendations.\n\nExample polling clients:\n\n```txt\nexamples/delta-polling.js\nexamples/delta-polling.py\n```\n\nBoth examples show the intended agent loop: inspect freshness metadata, request a delta, handle the `402`, retry with an x402 payment from a caller-provided signing hook, parse the receipt and delta payload, then update `since` after a successful response.\n\n## Local Proof Command\n\nRun these commands from the repository root after a normal clone.\n\nPreflight only; this does not sign or send a payment:\n\n```powershell\n$env:MAINNET_PAID_PATH=\"/api/markets/brief?slug=will-gideon-saar-be-the-next-prime-minister-of-israel\"\n$env:MAINNET_MAX_USDC=\"0.05\"\n$env:MAINNET_PAYMENT_ACK=\"PREFLIGHT_ONLY\"\nnpm.cmd run agent:mainnet\n```\n\nReal payment example, only for a separately owner-approved test that intentionally sends one `0.05 USDC` unlock:\n\n```powershell\n$env:MAINNET_PAID_PATH=\"/api/markets/brief?slug=will-gideon-saar-be-the-next-prime-minister-of-israel\"\n$env:MAINNET_MAX_USDC=\"0.05\"\n$env:MAINNET_PAYMENT_ACK=\"PAY_REAL_0.05_USDC\"\nnpm.cmd run agent:mainnet\n```\n\n## Launch Ask\n\nx402nano is looking for feedback from 20 AI agent, trading bot, and market-data builders.\n\nWhat to check:\n\n```txt\nWould a machine-readable market brief be useful to your agent?\nIs 0.05 USDC per brief the right shape for testing?\nWhat fields would your bot need before paying for a brief?\nWould you rather call this directly, through an SDK, or through another agent framework?\n```\n\nPositioning:\n\n```txt\nStop scraping. Use a machine-payable API for market briefs.\n0.05 USDC per read-only market brief on Base.\nNo account. No API key. HTTP 402 and X-PAYMENT.\n```\n\n## Current Scope\n\nIn scope:\n\n```txt\nPolymarket public data\nread-only market intelligence\nfree trending endpoint\npaid market brief endpoint\npaid market delta endpoint\nHTTP 402 challenge\nBase mainnet USDC unlock\nreceipt and proof\n```\n\nOut of scope for this launch:\n\n```txt\ntrading advice\ntrade execution\nTelegram bot\nlead generation\nx402 consulting\nnew product features before feedback\n```\n\n## Development\n\n```powershell\nnpm.cmd install\nnpm.cmd run build\n```\n\nCore scripts:\n\n```txt\nnpm.cmd run agent:mainnet\nnpm.cmd run wallet:mainnet:create\nnpm.cmd run build\n```\n\n## License\n\nThis project is licensed under the [MIT License](LICENSE).\n",
  "bytes": 16291,
  "sha": "c46f15916c92c4d769872679f9360bd135ad642af9ef7a5eacf59b7377ea6710",
  "repo_slug": "bobjonesgood/x402nano",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_bobjonesgood_x402nano_1e566cd2/readme"
}