Everything below is what was measured on 2026-08-27 and has deliberately not been updated. Editing this page to match the newer harvest would destroy the only thing two measurements are good for. If you want the current shape of the catalog, follow the link; if you want to know what changed, you need both.
Circle Agent Marketplace catalog — snapshot, 27 August 2026
A single measurement of the Circle x402 Discovery catalog. Composition only.
Nothing here has been re-checked since. Prices, endpoints and payout addresses change without notice. Treat every figure as “was true on 2026-08-27”, never as “is true”. The method is below and the source is a public API — re-run it rather than cite it.
How many x402 sellers are listed, and on which networks
| listings | accepts rows | distinct URLs | hosts | networks | payout addrs |
|---|---|---|---|---|---|
| 1,003 | 3,808 | 960 | 25 | 16 | 111 |
A listing may accept payment on several networks, so accepts rows exceed listings. 960 distinct URLs across just 25 hosts — this catalog is more concentrated than its listing count suggests.
🚨 The siwx=false trap — read this before re-running
`circle services search` silently appends siwx=false. It is not in the CLI's --help; it is visible only by reading the CLI's own dist/index.js. Re-running this census through the CLI yields a DIFFERENT DENOMINATOR with no signal that it changed, and the counts still look plausible. Fetch the API directly.
This is on the page rather than in a footnote because a count published without it is not reproducible: a reader who re-runs the obvious way gets a different denominator and no warning that it changed.
Which networks the Circle agent registry covers
| network | CAIP-2 | accepts rows |
|---|---|---|
| Base | eip155:8453 | 1,164 |
| Polygon | eip155:137 | 625 |
| Solana mainnet | solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp | 562 |
| Base Sepolia | eip155:84532 | 396 |
| Polygon Amoy | eip155:80002 | 396 |
| Solana devnet | solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1 | 264 |
| Avalanche | eip155:43114 | 98 |
| Ethereum | eip155:1 | 56 |
| Arbitrum | eip155:42161 | 56 |
| Optimism | eip155:10 | 56 |
| Unichain | eip155:130 | 56 |
| X Layer | eip155:196 | 31 |
| Sonic | eip155:146 | 12 |
| World Chain | eip155:480 | 12 |
| Sei | eip155:1329 | 12 |
| HyperEVM | eip155:999 | 12 |
14 EVM chains and 2 Solana clusters. Testnet rows total 792 — first-class in this catalog, and exactly what the CLI hides.
Is Arc in the catalog?
Where the catalog actually lives
| host | accepts rows |
|---|---|
| x402.quicknode.com | 2,112 |
| api.aisa.one | 324 |
| np.orthogonal.com | 292 |
| x402.api.agentmail.to | 199 |
| api.arkm.com | 178 |
One host carries 55.5% of all rows; the top five carry 81.5%.
What this snapshot does NOT claim
| field | state | why |
|---|---|---|
| liveness | not-measured | requires GET against 960 third-party URLs across 25 hosts; those calls have not been made |
| advertisedVsLivePrice | not-measured | same 960 calls; a listing's price and its live 402 have not been compared |
| payoutAddressOwnership | not-measured | 14 EVM chains readable in principle; 826 of 3,808 rows are Solana and need a different client |
| upgradeability | not-measured | EIP-1967 has no Solana equivalent — the question differs per ecosystem, it is not one check |
| serviceQuality | could-not-check | no on-chain or catalog signal distinguishes a service that works from one that does not |
Each is listed rather than omitted. A blank would read as “fine”; these are open.
Method: how to re-run this yourself
Fetch https://api.circle.com/v2/x402/discovery/resources?limit=100&offset=N directly, limit=100, paginating until a short
page. Do not use the CLI — see the trap above. Then verify the harvest was unfiltered by
checking that Base Sepolia and Polygon Amoy rows are present; if either is zero, the fetch was
filtered and the denominator is wrong.
Drift while reading: not-checked — this harvester did not look for a per-page `total`, so this measurement cannot say whether the index drifted while it was being read. The 2026-09-11 harvest looked, and found one.
The machine-readable form of everything above: /snapshot/2026-08-27.json
All snapshots
| date | listings | accepts rows | hosts | Arc rows | |
|---|---|---|---|---|---|
| 2026-08-27 (this one) | 1,003 | 3,808 | 25 | 0 | JSON |
| 2026-09-11 | 1,162 | 4,215 | 48 | 0 | JSON |
Each was harvested separately and none has been edited since.
What differs between two of them, including which offers now name a different payout address: 2026-08-27..2026-09-11