A discovery directory is not the market. It is one facilitator's view of the market — and if you read one without knowing that, you will draw a wrong conclusion about what exists.
Here is the measurement that made that concrete for us.
There is a keyless, open x402 discovery catalogue at api.circle.com/v2/x402/discovery/resources. It is the default surface an agent using a Circle wallet browses when it goes looking for something to pay for. We read the whole thing, twice.
On September 27, 2026 it held 1,161 resources. On October 1 it held 2,858. That is 2.5× in four days. Someone is filling it fast, so the interesting question is how — the mechanism tells you what the word "listed" actually means.
The distribution is not even
We grouped every entry by origin:
| origin | entries | share |
|---|---|---|
| the largest single origin | 1,581 | 55.3% |
| second | 298 | 10.4% |
| third | 132 | 4.6% |
| … six more origins | <100 each | ~15% |
| remaining ~115 origins | ~500 combined | ~18% |
One origin holds more than half. Then we looked at how that block got there, and it stops looking like a directory.
All 1,581 entries from the largest origin share a single lastUpdated date — one bulk insertion, not 1,581 individual submissions. Each entry is a distinct path from that service's spec, including path templates (…/drafts/{draft_id}), which is what a one-time import of an OpenAPI document looks like. And every accepts[] entry carries the same settlement extension:
"extra": {
"name": "GatewayWalletBatched",
"version": "1",
"verifyingContract": "0x77777777Dcc4d5A8B6E418Fd04D8997ef11000eE"
}
GatewayWalletBatched is Circle Gateway's batched-nanopayment EIP-712 domain, and that contract address is the same on every chain. So the largest origin is a Circle Gateway seller, and its presence came from that integration — not from filling in a listing form 1,581 times.
The rail is the admission ticket
We ran the census across every accepts[] entry, grouped by settlement extension:
extra.name |
accepts entries | rail |
|---|---|---|
GatewayWalletBatched |
15,013 | Circle Gateway batched nanopayments |
USD Coin |
1,324 | direct USDC EIP-712 domain |
(none) |
1,095 | no EIP-712 extension |
USDC |
618 | direct USDC |
Only 8 of ~120 origins are on the Gateway rail — but those 8 hold the overwhelming share of the catalogue. The other ~114 origins ride the direct-USDC extension, and between them they account for a small slice.
Now our own row. We asked our live endpoint what it advertises:
GET https://minia2a.uk/x402/time
→ accepts[0].extra = { "name": "USD Coin", "version": "2" }
Direct USDC. That puts us on the ~114-origin rail, and across our 1,694 catalogued services we appear in the Circle catalogue zero times. Every one of our endpoints answers a canonical, payable 402. They are live, priced, and settleable. They are on a rail this particular directory does not read.
We went in assuming "listed" is a property of a service — you build it, you submit it, it appears. The data says otherwise. In this catalogue, appearing is a property of the settlement rail: if a directory's facilitator can settle only one family of payment, the directory is a view through that family, and a perfectly payable service on a different rail is invisible to it. The submission form is the slow path. The rail is the gate.
What this means if you are buying
A catalogue is not the market. If you shop only the surface your wallet defaults to, you will systematically miss endpoints that are live and payable — not because they are hidden, but because they settle on a rail the index was not built around. Absence from a directory is not evidence that a service does not exist; it is evidence that the directory's facilitator cannot take the payment.
The cheap check is the same one we recommend for our own listings: call the endpoint and read its 402. The live challenge carries the amount and the payee. If it answers a well-formed challenge, the service is real and priceable, whether or not any index knows about it yet.
What this means if you are selling
"Get listed" is the wrong mental model. The right one is "get onto the rail this directory's facilitator settles." That is an integration into a payment rail — a decision about which chains and which batching layer you accept — not a checkbox on a form. Both are legitimate paths, but they are not the same amount of work, and only one of them scales to hundreds of entries in a day.
What we are and are not claiming
- Measured, not inferred. The counts are a full enumeration of the catalogue on October 1, 2026, via the keyless resources API; the growth figures are the same API read on September 27 and October 1.
- We cannot see intent from outside. Whether the rail skew is deliberate policy or an accident of which integration was bulk-imported first, the catalogue does not say. What we can measure is the result: the content is not rail-neutral.
- The listing form is separate and human-gated (a Google-form intake behind a sign-in), so for a service not on the Gateway rail the only path in is manual review — a different and much slower mechanism than the one that produced the bulk.
- We name Circle because they publish the catalogue; we are not comparing ourselves to any seller in it. The shape that matters is the shape: one rail, eight origins, most of the shelf.
All figures are read from the catalogue API directly; the settlement extension and network fields are quoted from the entries themselves. Nothing here is estimated.
Top comments (0)