How we counted
One request/second, limit=200/page, iterated against
api.cdp.coinbase.com/platform/v2/x402/discovery/resources
until the last page returned fewer than
limit items. No authentication, no
payment, no state mutation. 173 pages. The endpoint reported
pagination.total = 34,587; the fetch pulled
item_count = 34,587;
truncated = false. Raw bytes were
hashed (raw_sha256 in
snapshot_meta.json)
before any derivation. Per-listing fields were then rolled up into
the aggregates summarised below — host concentration, network
split, scheme usage, price distribution, recency, field
completeness — plus a seeded 100-URL liveness probe
(sample_seed=20261005, single GET,
5s timeout). Full method and the inference rules are in
the method note.
Update — weekly delta
Weekly update (week of 2026-10-05): the Bazaar now lists 35,007 resources (+420 on this baseline), the top host’s share is 39.46% (+0.48pp), and the Herfindahl–Hirschman index (a standard concentration measure, from 0 to 1) on hosts is 0.160796 (+0.003683). The findings below are the 2026-10-05 baseline reading and are unchanged. Weekly updates are on the dataset page.
Finding 1 — One host holds 38.98% of the entire index.
market.datapackvibe.com accounts
for 13,481 of the 34,587 listings —
38.98% on its own. The top
ten hosts together hold 57.91%.
Herfindahl–Hirschman on listings per host is
0.1571 —
concentrated but not single-vendor. 2,122 distinct hosts in total.
The practical read: a lot of what looks like “a 34,587-row bazaar” is one publisher’s catalog, and a lot of the rest is a long thin tail. If you are evaluating a listing, the host is an important field — not the row count.
Finding 2 — A 100-URL seeded probe returned 1% HTTP 200, 40% HTTP 402, 47% HTTP 405, 7% net error.
We drew a seeded random sample of 100 resource URLs (seed
20261005), issued a single HTTP
GET at each with a 5-second timeout, and recorded the status.
The breakdown:
| Status | Count | Meaning |
|---|---|---|
| 200 OK | 1 | Free tier or a non-challenging GET path. |
| 402 Payment Required | 40 | The correct x402 payment challenge on an unauthenticated GET. |
| 405 Method Not Allowed | 47 | Resource is POST-only; the 402 handshake never fires on a GET. |
| 401 / 404 (other 4xx) | 5 | Auth-required or path-not-found; no challenge served. |
| Network error | 7 | DNS / timeout / TLS error — the host didn’t answer. |
This is a lower-bound liveness measurement. It does not say any particular listing delivers what it advertises after payment — a 402 is a challenge, not a receipt. But the three populations the probe can separate (answers with a challenge / answers but not on GET / doesn’t answer at all) are already very different cohorts, and only 1 in 100 returned a 2xx on an unauthenticated GET.
Finding 3 — The median listed price is $0.01. 83.55% price at or below one cent.
Of the 34,587 listings, 34,490 carry an inferable USD price; the remaining 97 either denominate in a non-USD-pegged asset or omit a decimals field. Across the priced subset:
- Median: $0.01.
- P90: $0.03, P99: $0.945001, max: $1,000.
- 83.55% price at ≤ $0.01 — 28,817 of 34,490 priced listings.
- 96.55% price at ≤ $0.10.
- 99.32% price at ≤ $1.00.
The modal x402 unit is a microtransaction. SaaS-seat pricing is a rounding error in this catalog, and the single max value of $1,000 is almost certainly a one-shot workload or a mis-flagged batch unit, not a $1,000-per-call list price.
Finding 4 — 99.47% of listings accept at least one mainnet; Base dominates.
99.47% of the 34,587 listings carry at least one
mainnet in their accepts[] array;
93.14% are mainnet-only (no testnet
accepts entry at all). The modal
payment network, by a wide margin, is Base mainnet
(CAIP-2 eip155:8453) with
35,534 of 59,803
accepts[] entries. Solana mainnet
is second (7,359), then Polygon mainnet (3,313),
Arbitrum One (2,527), Base Sepolia (2,362), and Optimism mainnet
(1,178). The index spans 47 distinct CAIP-2
network identifiers in total
— including XRPL, Stellar pubnet, Algorand mainnet, and
multiple less-common EVM chains.
Finding 5 — Only 32 of 34,587 listings are MCP-type (0.09%).
The resource-type split is 34,555 http and 32 mcp. MCP-type listings are 0.093% of the index — negligible. The Bazaar is overwhelmingly a catalogue of ordinary HTTP endpoints called directly over x402; it is not yet a distribution channel for MCP servers.
Finding 6 — The index is young. 58.4% of listings were updated in the last 7 days.
58.4% of listings carry a
lastUpdated within 7 days of the
fetch window, 16.93% within 24 hours, and only
0.05% older than 90 days. The catalog is being
actively refreshed, which is consistent with the host-concentration
finding above — the top publisher almost certainly batch-rolls
its catalog on a short cadence. Field completeness is high on
descriptive fields
(description_present_pct = 99.82,
tags_present_pct = 80.74) and
middling on identity-bearing fields
(service_name_present_pct = 44.4).
What this means for an agent choosing x402 services
Listing is not liveness. 34,587 rows exist in the Bazaar; a seeded random probe at those rows returned a 2xx on 1 in 100 and a correct x402 payment challenge on 40 in 100. Half of the probed listings never got to the 402 handshake on a GET at all. A buyer-side agent evaluating these services has to answer three separate questions — is it advertised, does it answer, does it deliver after payment — and the Bazaar listing itself only addresses the first.
Listing is not identity. The host field is a URL,
not a counterparty. 38.98% of the index resolves to a single host;
another ~19% resolves to the next nine. Walking a listing to a
registry-owned identity (the ERC-8004 publisher that owns the
pay_to) is a separate layer, and
the overlap between “listed in the Bazaar” and
“registered as an ERC-8004 agent” is a cross-dataset
join — see the companion
ERC-8004
four-chain census for the on-chain population.
The gap between the three layers is the verification work.
Disclosure: Onchain Agent Intel’s own endpoints are not listed in this snapshot.
Reproducing this report
Every number above can be re-checked from the dataset files on the dataset page: the summary, the per-listing CSV (34,587 rows), the liveness-probe trace, and a checksum file. Everything is CC BY 4.0.