Agent Exchange x402 census and directory · census of 2026-10-01 · findings.json · CSV · llms.txt
28,827 listed x402 resources on 2,738 hosts: 67.7% answer a valid 402 today
On 2026-10-01 this host fetched every resource listed in the two public x402 catalogs (Coinbase's CDP Bazaar and PayAI's) plus our own, with an unpaid HEAD then GET. A listing is verified live only when the unpaid GET answered HTTP 402 with a usable accepts list. 6,631 of 9,793 probed resources did (67.7%); 2,403 (24.5%) were gone, unreachable or erroring; the rest hide the 402 behind a POST body, authentication or bot protection, or serve without any challenge.
Listed resources
28,827
2,738 hosts, 2,050 payTo addresses
Answer a valid 402
67.7%
6,631 of 9,793 probed (unpaid GET)
Dead listings
24.5%
2,403 gone, unreachable or 5xx
Not verifiable by GET
7.8%
POST-only, auth-walled, open or redirecting
In both catalogs
1,999
10.1% of CDP rows, 18.2% of PayAI rows
On-chain coverage
58.9%
1,208 payTo addresses with settlement history; 1,938 hosts
Testnet listings
11.7%
3,369 priced on Base Sepolia or devnets
Templated URLs
1,125
paths with :param or {param}; 18.5% still answer 402 as listed
Since the census, the hourly re-probe has checked 1,050 resources in 7 runs and found 987 verdict changes (list, feed); last run 2026-10-01 06:13 UTC.
What a live 402 looks like today (6,631 resources)
| Property | Count among live resources |
|---|---|
| 402 carried in | header 3,004 (45.3%), header+body 2,963 (44.7%), body 664 (10.0%) |
| x402Version in the 402 | v1 188 (2.8%), v2 6,443 (97.2%) |
| PAYMENT-REQUIRED header | 5,967 (90.0%) |
| extensions.bazaar in the 402 | 6,489 (97.9%) |
| MPP offer in WWW-Authenticate | 1,477 (22.3%) |
| CORS open (*) | 2,303 (34.7%) |
| RateLimit headers | 154 (2.3%) |
| Live amount equals the catalog price | 6,009 match, 622 differ, 0 not comparable |
| Live payTo equals the catalog payTo | 5,438 match, 1,193 differ |
| Median latency of the unpaid GET | 1,876 ms |
Catalog overlap and how much of each catalog is live
| Catalog | Listed | Probed | Valid 402 | Dead |
|---|---|---|---|---|
| CDP Bazaar | 19,731 | 6,203 | 3,974 of 6,203 (64.1%) | 1,511 (24.4%) |
| PayAI | 10,997 | 4,994 | 4,029 of 4,994 (80.7%) | 910 (18.2%) |
| Both | 1,999 | 1,404 | 1,372 of 1,404 (97.7%) | 18 (1.3%) |
| CDP only | 17,732 | 4,799 | 2,602 of 4,799 (54.2%) | 1,493 (31.1%) |
| PayAI only | 8,998 | 3,590 | 2,657 of 3,590 (74.0%) | 892 (24.9%) |
| Our hosts (store + censuses) | 101 | 0 | n/a | n/a |
"Listed" counts resources after de-duplication by URL and method; the two catalogs report 19,731 and 11,006 rows respectively. A resource is in "both" when the same URL and method appear in each.
By network
| Network | Listed | Valid 402 | Dead |
|---|---|---|---|
| Base | 23,920 | 4,364 of 7,469 (58.4%) | 2,387 (32.0%) |
| Base Sepolia (testnet) | 3,349 | 1,640 of 1,641 (99.9%) | 0 (0.0%) |
| Solana | 1,483 | 627 of 683 (91.8%) | 16 (2.3%) |
| Polygon | 32 | n/a | n/a |
| Solana devnet | 19 | n/a | n/a |
| X Layer | 8 | n/a | n/a |
| Other networks | 7 | n/a | n/a |
| Arbitrum | 6 | n/a | n/a |
| Polygon Amoy (testnet) | 2 | n/a | n/a |
| No network declared | 1 | n/a | n/a |
Prices (USDC on Base, 23,920 resources)
Median $0.01, quartiles $0.003 to $0.02, 90th percentile $0.06; 11,580 resources under one cent, 437 at one dollar or more. Most common price points: $0 (13), $1.00 (154), $2.00 (32), $3.00 (20), $4.00 (3), $5.00 (38).
| Price band | Listed | Valid 402 | Dead |
|---|---|---|---|
| under 1 cent | 12,083 | 2,096 of 4,344 (48.3%) | 2,119 (48.8%) |
| 1 to 10 cents | 10,966 | 2,575 of 3,418 (75.3%) | 225 (6.6%) |
| 10 cents to $1 | 1,889 | 298 of 364 (81.9%) | 56 (15.4%) |
| $1 to $10 | 424 | 21 of 25 (84.0%) | 3 (12.0%) |
| $10 and above | 75 | 1 of 1 (100.0%) | 0 (0.0%) |
| free (zero amount) | 13 | n/a | n/a |
| no USD price (non-USDC asset or testnet) | 3,377 | 1,640 of 1,641 (99.9%) | 0 (0.0%) |
Top sellers by settled USDC volume
From public USDC settlements on Base (EIP-3009 transfers) to each host's payTo addresses, as seen in the outbound history of the 1,570 wallets analysed on 2026-09-30; a floor, not the market. "Sampler share" is the share of payments from wallets that pay dozens of sellers in bursts (monitors and indexers), not customers.
| # | Host | USDC | Payers | Payments | Sampler share | Live / listed | What it sells |
|---|---|---|---|---|---|---|---|
| 1 | apidashboard.cryptohunt.ai (+1 host on the same payTo) | $294.00 | 21 | 38 | n/a | 0 / 16 unverified | /deposit/10; /deposit/1 |
| 2 | testmint.myproceeds.xyz (+7 hosts on the same payTo) | $230.04 | 12 | 50 | n/a | 0 / 1 unverified | Purchase large amounts of testnet USDC instantly. |
| 3 | nfl-form-x402.owenlvll.workers.dev | $103.00 | 1 | 17 | 100.0% | 0 / 7 unverified | NFL Team Form 2016-2025 |
| 4 | onchainpulse.theaslangroupllc.com (+29 hosts on the same payTo) | $90.47 | 109 | 1,066 | 99.2% | 0 / 9 unverified | OnchainPulse |
| 5 | api.aidress.ai | $55.99 | 533 | 2,483 | 92.4% | 2 / 12 live | Otto AI; IXS |
| 6 | shop.blocklabs.nl | $50.99 | 2 | 20 | n/a | 0 / 5 unverified | Full-text product search over the BlockLabs dropshipping ca…; Place a dropshipping order (price quoted per order). Ships … |
| 7 | mcp.runbot.io | $49.32 | 1 | 18 | n/a | 0 / 7 unverified | /v1/strategy-ultra; /v1/strategy-deep |
| 8 | api.useatelier.ai | $39.68 | 52 | 91 | 100.0% | 0 / 3 unverified | AI Image Generation; Got an idea? Describe it and Nano Banana brings it to life … |
| 9 | jatevo.ai | $31.79 | 17 | 35 | n/a | 0 / 6 unverified | /api/credits/topup-x402; /api/x402/llm/kimi |
| 10 | api.bitrefill.com | $29.86 | 19 | 177 | 100.0% | 3 / 8 partial | Bitrefill |
| 11 | api.lastlookdata.com | $29.10 | 63 | 138 | 100.0% | 0 / 2 unverified | LastLook Data — current 30-year US Treasury yield (DGS30). …; LastLook Data — EFFR vs IORB spread. Shows where the effect… |
| 12 | api.interzoid.com (+1 host on the same payTo) | $26.59 | 97 | 351 | 100.0% | 0 / 14 unverified | Generate an AI-powered similarity key for individual/person…; Detect the language of input text and translate it to any s… |
| 13 | mart402.com | $25.03 | 3 | 114 | 100.0% | 0 / 23 unverified | Mart402 |
| 14 | blockrun.ai | $23.71 | 153 | 1,143 | 98.8% | 5 / 87 live | BlockRun.AI |
| 15 | netintel.dev | $23.56 | 121 | 848 | 100.0% | 37 / 124 live | NetIntel |
Top sellers by distinct paying wallets
| # | Host | USDC | Payers | Payments | Sampler share | Live / listed | What it sells |
|---|---|---|---|---|---|---|---|
| 1 | api.aidress.ai | $55.99 | 533 | 2,483 | 92.4% | 2 / 12 live | Otto AI; IXS |
| 2 | x402.ottoai.services | $10.15 | 170 | 1,144 | 92.7% | 9 / 77 live | Otto AI; Historical crypto market event summaries (up to 30 days, op… |
| 3 | store.agentexchange.work ours (+10 hosts on the same payTo) | $14.40 | 169 | 827 | 32.6% | 0 / 85 unverified | Workers AI chat (OpenAI-compatible); Token Price Snapshot |
| 4 | blockrun.ai | $23.71 | 153 | 1,143 | 98.8% | 5 / 87 live | BlockRun.AI |
| 5 | api.paysponge.com | $6.54 | 149 | 524 | 100.0% | 0 / 21 unverified | Service: AgentMail API (https://api.paysponge.com/v0/inboxe…; Service: Reducto (https://api.paysponge.com/parse) |
| 6 | agent402.tools | $12.40 | 122 | 1,264 | 61.3% | 597 / 641 partial | Text-to-speech; Image generation |
| 7 | x402.shizu.me | $1.92 | 122 | 487 | 99.6% | 0 / 17 unverified | Current Weather; Agent Bounty Board |
| 8 | netintel.dev | $23.56 | 121 | 848 | 100.0% | 37 / 124 live | NetIntel |
| 9 | 2s.io | $6.21 | 118 | 833 | 100.0% | 0 / 93 unverified | 2s |
| 10 | vibesprings.net | $4.28 | 118 | 809 | 100.0% | 3 / 24 live | Vibe Springs |
| 11 | x402.agentutility.ai | $15.93 | 114 | 1,728 | 99.9% | 0 / 52 unverified | AgentUtility.ai |
| 12 | blockrun-web-vbsbhh7lea-uc.a.run.app (+2 hosts on the same payTo) | $22.79 | 113 | 975 | 98.7% | 0 / 1 unverified | AI chat completions API - pay per request with USDC on Base |
| 13 | api.kadec0.xyz | $5.56 | 110 | 363 | 100.0% | 2 / 42 live | Web Search (SERP); Geocoding & Reverse Geocode |
| 14 | scout.hugen.tokyo (+10 hosts on the same payTo) | $20.91 | 109 | 506 | 100.0% | 0 / 12 unverified | Search GitHub repositories — discover open source projects,…; Curated x402 ecosystem directory — 277 human-reviewed proje… |
| 15 | onchainpulse.theaslangroupllc.com (+29 hosts on the same payTo) | $90.47 | 109 | 1,066 | 99.2% | 0 / 9 unverified | OnchainPulse |
1,569 hosts have two or more distinct payers on record; 13 hosts with settlement history are now dead. All sellers: /sellers.
Dead listings
2,403 resources (24.5% of probed) on 14 hosts answered nothing usable: gone 1,237, unreachable 1,166. Whole hosts dead: agentshelf.syntexa.ch (1,182), x402.asrai.me (318), x402.aurelianflo.com (178), ostland.halowerk.com (125), suedland.halowerk.com (125), mitteleuropa.halowerk.com (125), atlantikland.halowerk.com (125), baltikum.halowerk.com (125), nordland.halowerk.com (125), glim.sh (24), sat.ipintel.ai (3), api.exa.ai (2). Full list: /dead.
Discovery files on seller hosts (492 hosts checked)
| File | Hosts | Share | Notes |
|---|---|---|---|
| /.well-known/x402 manifest | 259 | 52.6% | shapes: object-list 139, string-list 120; 110 carry prices |
| /openapi.json (valid 3.x with paths) | 294 | 59.8% | 202 declare x-payment-info on operations |
| /llms.txt | 330 | 67.1% | |
| /.well-known/agent-card.json | 130 | 26.4% | |
| All four | 71 | 14.4% | |
| None of the four | 85 | 17.3% |
Method
CDP Bazaar (api.cdp.coinbase.com/platform/v2/x402/discovery/resources) and PayAI (facilitator.payai.network/discovery/resources) walked completely with limit=1000; plus store.agentexchange.work/.well-known/x402 and /directory and the eight census hosts' /.well-known/x402 and /listings.json. one record per URL and HTTP method; id = first 12 hex of sha1(url) (sha1('METHOD url') when one URL is listed under two methods). every resource once: HEAD then GET with no payment header, user agent agentexchange-bazaar/1.0 (+https://network.agentexchange.work), 8 s timeout, at most 2 requests per second per host, 14 in flight; after 3 consecutive connection errors or 8 consecutive timeouts the host's remaining resources are recorded as unreachable without further requests (counted as probed and dead). Valid 402: the unpaid GET answered HTTP 402 and the JSON body or the PAYMENT-REQUIRED header carried a non-empty accepts list. Dead: connection error or timeout, 404/410, or a 5xx to the unpaid GET. Not verified: everything else: 405/400 on POST-only routes (the 402 sits behind the declared method), 401/403/429, 200 without a challenge, redirects. Prices: USD = atomic USDC amount / 1e6 for USDC assets on Base, Base Sepolia and Solana; other assets have no USD price here. On-chain: payTo addresses joined to ../x402-research/sellers-2026-09-30.json (x402-shaped USDC settlements (transferWithAuthorization / receiveWithAuthorization / Multicall3 batches) in the outbound history (<=500 newest) of every wallet that paid our store since 2026-06-01); sellers never paid by those wallets stay unresolved. one snapshot per resource on the build date; the hourly cron re-probes a rotating slice of 150 and records verdict changes. A "templated" URL (with :param or {param}) is probed as listed, so its verdict says whether the template itself answers; 18.5% do.
Why this index exists
The catalogs list what sellers registered; nobody publishes whether those routes still answer, what their 402 looks like, whether the advertised price is the live price, or whether anyone ever paid. This host measures exactly that, neutrally, for every listed resource, and republishes it as pages, JSON, CSV, an Atom feed of verdict changes, sitemaps and an MCP server, so agents and crawlers can read it without an account. Nothing is sold on the measurement itself; the only paid things are position (featured placement), an on-demand re-probe and an on-demand seller report, all paid per call in USDC with x402 and labelled where they appear.
Machine access
bazaar.json (compact list of every resource, CORS open, cached 1 h) · bazaar.csv · findings.json · sellers-index.json · /r/<id>.json · /seller/<host>.json · /search.json?q= · changes.xml · live.json · MCP (Streamable HTTP, tools find_resources, check_seller, resource) · openapi.json · agent card · x402 manifest · sitemap index · llms.txt. Licence CC BY 4.0.
Questions
What does "valid 402" mean here?
The resource's URL, fetched with an unpaid GET and no payment header, answered HTTP 402 and the JSON body or the PAYMENT-REQUIRED header carried a non-empty accepts list with a payment requirement in it.
Why are POST-only routes not counted as live?
The census probes with HEAD then GET only and never posts a body. A route that answers 405 or 400 to GET is marked method-gated: the 402 may well be there behind the declared method, but an unpaid GET could not see it.
Where do the on-chain numbers come from?
Public USDC transfers on Base (EIP-3009 transferWithAuthorization and receiveWithAuthorization, Multicall3 batches) to each resource's payTo address, joined from a 2026-09-30 analysis of the outbound history of the wallets that had paid our own store. Sellers those wallets never paid stay unresolved; the numbers are a floor.
Does paying for a placement change a verdict?
No. Featured placement buys position on the report and search pages for 30 days and is labelled; verdicts, prices and on-chain facts come from the probe and the chain only.
How often is this updated?
The full census is rebuilt from the catalogs on the build date shown; every hour a rotating slice of 150 resources is re-probed and any verdict change is listed on /changes and in the Atom feed.