The CDP x402 discovery catalog publishes calls_30d per resource. Gross = advertised price × calls is not settled money. This page counts actual USDC Transfer events to each payTo and reports the ratio.
2400 s sampled = 0.0926% of the month. Detection floor ≈ 36.0 transfers/day: a zero here only rules out daily volume above that floor. Head block 52655200.
| resource | payTo | sample tx | senders | sample USDC | on-chain est. /30d | catalog /30d | ratio |
|---|---|---|---|---|---|---|---|
| cheaptokens.ai | 0x213c8d74…3215 | 2 | 2 | 50.9800 | 55,058.40 | 492.00 | 111.91× |
| www.ax1.vc | 0x7284D41b…299C | 464 | 97 | 9.2800 | 10,022.40 | 6,991.38 | 1.43× |
| stableenrich.dev | 0x325bdF6F…d430 | 29 | 5 | 1.9072 | 2,059.78 | 281.40 | 7.32× |
| keyring-agent.blockchhub.lin | 0x17cd53C0…7905 | 18 | 16 | 0.9000 | 972.00 | 1,409.05 | 0.69× |
| laso.finance | 0x3291e96b…2b37 | 1 | 1 | 0.0000 | 0.02 | 260.00 | 0.00× |
| api.bitrefill.com | 0x480CD46E…846A | 0 | 0 | 0.0000 | 0.00 | 51,000.00 | 0.00× |
| agi.apify.com | 0x4aAbE17C…DF26 | 0 | 0 | 0.0000 | 0.00 | — | — |
| CONTROL_0x515d935b | 0x515d935b…9e11 | 0 | 0 | 0.0000 | 0.00 | 0.00 | — |
ratio = on-chain estimate ÷ catalog figure. green = within 2×, orange = chain above catalog, grey = chain below.
{"0.02": 471} — the advertised price, to the cent, no exceptions.transferWithAuthorization relayed by the seller's facilitator, the standard x402 buyer shape.So the headline is not "x402 is a $10k/mo market". It is: the catalogue's advertised volume for this resource tracks real on-chain transfer volume within 1.4×, and that on-chain volume is a self-operated farm. A catalogue row can be numerically honest and economically empty at the same time.
Catalog: 51 calls × $1,000 = $51,000/30d (81.5% of the whole catalog's gross). On Base, in sample: 0 transfers. On Arbitrum, one query over the full 30 days:
1rpc.io/base is the only free Base RPC found that serves eth_getLogs on archive blocks (50-block cap). publicnode: head-1000 only. drpc + tenderly public: rejects. mainnet.base.org: 429. meowrpc: method unsupported. blockpi: needs key. basescan/blockscout: 403 / Cloudflare.arb1.arbitrum.io/rpc serves ≥1,000,000-block ranges — a full 30-day window in a single call. Use it.topics[2] takes an array (= OR match), so one request covers every target payTo at once.Transfer topic 0xddf252ad…23b3ef; the same event fires for EIP-3009 settlements, so relayed payments are counted.python3 scripts/x402-onchain-receipts.py targets.json 24 30 — Base samplerpython3 scripts/x402-onchain-report.py — regenerates this pagetable_digest = 14fe1f48ca3123b56b3bcb055df90832… (full: 14fe1f48ca3123b56b3bcb055df90832ac09026d6c59b05b3402080e6026551c)