Circle publishes an x402 discovery catalogue at api.circle.com/v2/x402/discovery/resources. It is keyless and open, and 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.
On September 27 it held 1,161 resources. On October 1 it held 2,858. That is 2.5× in four days. The catalogue is not a static list of a handful of demo endpoints โ it is being filled, fast, by someone. The question worth asking is who and by what mechanism, because the answer changes what the word "listed" means.
We enumerated every entry and grouped them by origin. The distribution is not even, and it is not close:
| 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 of the catalogue. Then we looked at how the big block got there, and that is where it stops looking like a directory at all.
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 API 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. The contract address is the same on every chain. So the largest origin is a Circle Gateway seller, and its catalogue presence came from that integration โ not from filling in a listing form 1,581 times.
We ran the census across every accepts[] entry in the catalogue, 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 here is 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. Which puts us on the ~114-origin rail, and โ across our 1,694 catalogued services โ in the Circle catalogue zero times. Our endpoints answer a canonical, payable 402. They are live, priced, and settleable. They are simply on a rail this particular directory does not read.
The thing we did not expect. 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 only settle 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.
A catalogue is not the market. It is one facilitator's settlement view of 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.
"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, and it is 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.
Sources: Circle's x402 discovery catalogue (api.circle.com/v2/x402/discovery/resources), enumerated 2026-10-01 and previously read 2026-09-27; the settlement extension and network fields are quoted from the entries themselves; our own advertised extension is read from a live 402 on minia2a.uk/x402/time. All counts are measured, none estimated.