I crawled all 31,620 x402 Bazaar listings: most have one payer, and boring chain reads win
I crawled every resource in the Coinbase x402 Bazaar on 2026-10-13 before choosing what to sell to AI agents. The discovery API is public (GET https://api.cdp.coinbase.com/platform/v2/x402/discovery/resources?limit=500&o
I crawled every resource in the Coinbase x402 Bazaar on 2026-10-13 before choosing what to sell to AI agents. The discovery API is public (GET https://api.cdp.coinbase.com/platform/v2/x402/discovery/resources?limit=500&offset=N), and each entry carries a quality block with l30DaysUniquePayers and l30DaysTotalCalls. Those two fields are the closest public measure I know of for what agents actually pay for.
Most listings have one payer
| Distinct payers per resource, last 30 days | Resources | Share |
|---|---|---|
| 0 | 84 | 0.3% |
| 1 | 14,480 | 45.8% |
| 2 | 9,759 | 30.9% |
| 3-4 | 5,831 | 18.4% |
| 5-9 | 1,057 | 3.3% |
| 10-49 | 314 | 1.0% |
| 50+ | 95 | 0.3% |
That is 31,620 unique resource URLs on 2,280 hosts. 77% of them had two payers or fewer in 30 days, and only 1.3% reached ten. As far as I can tell, the Bazaar only lists a route after a payment settles through the CDP facilitator, so the lone payer behind most listings is probably the seller's own test call. Supply is not the bottleneck in this market. Buyers are.
What gets more than one buyer
I tagged resources by keywords in their URL and description. The categories overlap, and keyword tagging is crude, so read these as directions rather than measurements:
| Category (keyword match) | Resources | Mean payers | Share with 10+ payers |
|---|---|---|---|
| Chain data / RPC (balance, block, gas, tx, wallet, contract...) | 7,288 | 4.01 | 2.1% |
| Novelty (jokes, facts, coin flips, horoscopes...) | 3,949 | 3.43 | 1.4% |
| News / social | 1,477 | 2.62 | 1.9% |
| Web search / scrape | 4,656 | 2.44 | 1.2% |
| Prices / markets | 12,141 | 2.19 | 0.9% |
| LLM / inference | 2,366 | 2.12 | 0.9% |
| Token risk / safety | 3,351 | 1.87 | 0.5% |
Two things surprised me:
-
Plain chain reads beat clever products. The most-paid host after one outlier is
api.onesource.io, whose routes are thin wrappers overeth_getBalance,eth_blockNumber,balanceOfandeth_getLogs, priced at $0.001-$0.008. Each of its top routes had 200-560 distinct payers in 30 days. Meanwhile 3,351 token-risk and "safety" listings average fewer than two payers. Everyone is building the trust layer, and few agents are buying it. - Novelty endpoints outsell most serious ones. Single-route Vercel apps serving random facts, coin flips and horror stories had 45-57 distinct payers each, more than 99% of the catalog.
Cheap wins, up to a point
| Price per call (USDC) | Resources | Mean payers | Share with 5+ payers |
|---|---|---|---|
| ≤ $0.001 | 2,246 | 4.08 | 13.1% |
| $0.0011-$0.005 | 7,633 | 3.74 | 6.6% |
| $0.005-$0.01 | 14,787 | 1.83 | 2.5% |
| $0.0101-$0.05 | 4,482 | 3.45 | 4.8% |
| > $0.05 | 2,462 | 1.69 | 3.0% |
$0.01 is the default price in most x402 examples, and 14,787 resources sit in that band. It has the weakest numbers in the table.
Caveat: payers are not necessarily customers
Of the 242 resources with 20 or more payers, 101 had almost exactly one call per payer (calls ≤ 1.2 × payers). That pattern fits fleets of fresh wallets that each call once, such as testing harnesses, review bots, catalog crawlers that make paid checks, or activity farming. It fits a real agent with a working use case less well. A distinct payer is a wallet, and nobody outside can prove it is a separate customer.
What I did with this
I built the boring thing the data points to. Plainchain is ten GET endpoints for agents: gas with USD cost estimates, latest block, USD prices, wallet balances with USD totals, ERC-20 token data with DEX stats, "what is this address" (EOA, EIP-7702 delegate, Safe owners and threshold, proxy implementation, token), allowance checks, decoded transactions, x402 receipt verification from a tx hash, and verifiable block-hash randomness. It covers Base, Arbitrum, Ethereum and Optimism, at $0.000942-$0.002942 per call over x402. Disclosure: I built and run it. Every settlement it receives is public at /stats, so its numbers can be checked against this post.
Three implementation notes if you are shipping your own x402 seller:
-
A Cloudflare Pages project can run the whole seller. Put a bundled
_worker.jsin the static output folder.@x402/honoworks on Workers once you bundle it with esbuild, aliasing Node'surlmodule to a two-line shim. The CDP facilitator wants an Ed25519-signed JWT on every verify and settle call, and WebCrypto'sEd25519produces it withoutjoseorBuffer. -
Bazaar validation uses AJV, which needs
eval. That is not allowed on Workers, so the SDK prints "invalid bazaar extension" warnings at startup. The extension is still sent. Validate your schemas once in Node to be sure they are actually right. -
Registering on x402scan is free. It uses a SIWX sign-in (
createSIWxPayloadandencodeSIWxHeaderfrom@x402/extensions/sign-in-with-x). The signing key needs no funds. If your OpenAPI spec has anx-payment-infoblock and an input schema for each route,register-originpicks up every route in one call.
The crawl summary is at plainchain.appin60.com/data/bazaar-summary.json. To reproduce it, page through the discovery endpoint with limit=500. It takes about two minutes.
Originally published by Dev.to AI. Aggregated on AIWithGhost for educational purposes — full credit and traffic to the original publisher.