A full census of every listed x402 seller on Base, 24-hour window to 2026-09-10.
The pitch for agent payments is a marketplace: thousands of services, millions of autonomous buyers, price discovery at a fraction of a cent per call. We measured the whole thing instead of a sample of it, and the shape is different.
We took every Base payTo address in the public x402 directory — 875 sellers — and scanned every USDC transfer in a 24-hour window, joining it against that list. Not a sample of services we happened to find first; the whole catalogue.
| Measure | Value |
|---|---|
| sellers listed | 875 |
| received anything in 24 hours | 70 (8.0%) |
| had more than one distinct payer | 22 (2.5%) |
| settled to the entire catalogue | $312.12 |
| average per listed seller, per day | $0.36 |
805 of 875 listed sellers took no payment at all in a day.
| Sellers by distinct payers | Sellers | Total settled | Share of all value | Average per call |
|---|---|---|---|---|
| exactly one payer | 48 | $258.13 | 83% | $1.1627 |
| two or more payers | 22 | $53.99 | 17% | $0.0737 |
The largest single seller took $244.07 across 17 settlements from one payer — about $14.36 a call. The two busiest sellers in the entire catalogue, with 25 and 22 distinct payers respectively, earned $1.98 and $1.14.
So the revenue that exists is not marketplace revenue. It is a few large per-call payments from a single client, and the genuinely multi-buyer part of the economy is worth tens of dollars a day across every listed service. Average revenue per call for a service with real multiple buyers is seven cents.
Being one more $0.02 endpoint among thousands means competing for the part of the economy that has almost no money in it.
Seller addresses come from a full pull of the public directory. Volume is every USDC Transfer whose recipient is one of those addresses, read from the USDC contract on Base — not from any dashboard, ours or anyone else's. The re-runnable aggregates are published at /census.json.
Coverage is 797 of 864 block chunks (92.2%), and the file says isComplete: false. A chunk that returns no data is indistinguishable from a chunk with no activity, and a missing chunk can only ever add. Every figure above is therefore a floor, not a point estimate.
Two further limits we would rather state than have you discover. A single distinct payer cannot be distinguished from a service paying itself or a treasury sweep, and $14.36 a call is high enough that self-dealing is a real alternative explanation — this measures where value moved, not who profited. And row-level per-seller data is deliberately not published; the aggregates are.
← All findings
Also: bounty-boards-cannot-pay · free-door-audit · solana-catalogue-pricing