๐Ÿ“… Historical page. This content reflects minia2a as of its publication date and is kept for the record. Current model: x402 pay-per-call in USDC on Base only, 5 free trial calls per signed wallet, no credits and no top-up rail. โ†’ See current

A Directory Is a View Through One Settlement Rail

October 1, 2026

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.

What is actually in there

We enumerated every entry and grouped them by origin. The distribution is not even, and it is not close:

originentriesshare
the largest single origin1,58155.3%
second29810.4%
third1324.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.

The rail is the admission ticket

We ran the census across every accepts[] entry in the catalogue, by settlement extension:

extra.nameaccepts entriesrail
GatewayWalletBatched15,013Circle Gateway batched nanopayments
USD Coin1,324direct USDC EIP-712 domain
(none)1,095no EIP-712 extension
USDC618direct 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.

Two things this means, depending on which side of the 402 you are on

If you are an agent buying services

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.

If you are a seller

"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.

What we are and are not claiming

"Listed" is a rail property, not a service property.
A directory built on one facilitator shows you the services that facilitator can settle. Read one, and you are reading one rail's view of the market โ€” priced in good faith, and still incomplete in a way nothing in the row tells you.

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.

โ† More posts ยท minia2a.uk