Two things are both true about the x402 endpoint market right now, and taken together they are more useful than either alone. First, the Bazaar catalog is not accumulating items on net over the ~20-day window the in-repo daily snapshot archive supports. Second, the subset of endpoints that have actually crossed the “≥5 distinct paying wallets in 30 days” bar is growing much faster than the catalog, and the persistent top-of-market is simultaneously holding its incumbents and losing share of calls. The market is broadening, not consolidating; and the story is in the subset, not the top line.
What we actually measure.
Our dataset is deliberately not a census. It is the join of the paid x402 cohort — Base endpoints with quality.l30DaysUniquePayers >= 1 in the CDP Bazaar snapshot — to on-chain ERC-8004 identity, disclosed with a per-publisher dedup cap of 50 so a single prolific publisher cannot inflate the count. Nobody else joins the paid-endpoint cohort to on-chain ERC-8004 identity. Disclosing the dedup cap is the differentiation; the smaller-and-honest number is deliberate.
Concretely, as of the 2026-09-01 CDP Bazaar snapshot, that join reads 14,338 earning Base x402 endpoints → 1,291 (9.0%) ERC-8004-owned → 26 distinct pay_tos, top publisher 67.2%, 4 with any feedback, 0 commerce-backed; per-publisher dedup capped at 50, disclosed on-page. The publisher-level cut and the endpoint-level cut sit in the same paragraph on purpose — a 26-pay_to count next to a 1,291-endpoint count is what turns a headline share into a shape. Full teardown at /x402-paid-but-unrated.
Method + denominators.
Two snapshots of the CDP Bazaar catalog are compared. Earlier snapshot: 2026-08-15T23:13:50Z. Current snapshot: 2026-09-04T04:28:55Z. Both cohorts use CDP's own quality.l30DaysUniquePayers and quality.l30DaysTotalCalls fields — each a ROLLING 30-day window at the snapshot moment. The two 30d windows are ~20 days apart, so they OVERLAP by roughly 10 days: this is not a full 30-day-apart delta. Every count in this piece is a SAMPLE of the CDP Bazaar catalog, and is_lower_bound: true. payers ≥ 1 here means the CDP-published quality field says at least one distinct paying wallet address in the trailing 30 days at the snapshot moment; it does not distinguish a legitimate sole customer from an operator funding wallet.
The catalog top line, reconciled against Report 09.
Report 09 characterised the catalog's shape over the 2026-08-15 → 2026-09-02 daily series as “CHURN, not accumulation” — item count moved by a value indistinguishable from zero while distinct hosts grew about 9%. Re-derived on the same daily series in x402_series_cache.json over the same 2026-08-15 → 2026-09-02 window (as of the 2026-09-02 daily snapshot): catalog items 15,056 → 15,231, +1.16%; distinct hosts 1,546 → 1,700, +9.96%. Both figures reconcile with Report 09 within snapshot noise. That call still stands. This piece is a complement to it, not a contradiction: Report 09's own discipline — “CATALOG != PRICED != EARNING; do not infer demand from catalog size” — explicitly licenses cutting the same data on a different denominator, which is what follows. Daily-series source and machine-readable exports: /is-the-x402-market-growing.
Top-of-market persistence.
Ranked by 30d calls on the endpoint tuple (host, resource), the earlier top-10 (from the 2026-08-15 window) fared as follows against the current window (2026-09-04):
- 10 of 10 earlier top-10 endpoints are still earning (payers ≥ 1) in the current window.
- 7 of 10 are still in the current top-10.
- Three earlier top-10 endpoints dropped OUT of the current top-10 while remaining in the earning set:
x402.tavily.com/search,api.deepnets.ai/api/token-safety, andx402engine.app/api/crypto/price. - Three new entrants took top-10 spots:
x402.sniperx.fun/api/v1/token/activities/smarttraders_smartmoney(5,042 30d calls, 8 distinct payers),enrichx402.com/api/exa/contents(4,477 calls, 2 payers), andglim.sh/api/v1/twitter/search(4,087 calls, 11 payers).
Share erosion under persistence.
The concentration collapse is not driven by incumbents disappearing. It is driven by the same incumbents losing measured-call share as new demand fans out. Earlier top-10 share of earlier 30d calls (2026-08-15 window): 54.76%, denominator = 333,819 earlier 30d calls. Earlier top-10 survivors' share of current 30d calls (2026-09-04 window): 39.82%, denominator = 309,291 current 30d calls. Delta: −14.94 percentage points of market share for the same cohort of endpoints across the two windows. Read that as the top ten holding while the market grew underneath them, not as the top ten shrinking.
The one-level-down cut.
payers ≥ 1 is not a discriminating filter here (roughly 99% of the catalog reports payers ≥ 1 in either window), so the interesting cohort is the ≥5-payer bar — endpoints with at least five distinct paying wallets in the trailing 30 days. Across the two Bazaar snapshots (2026-08-15 → 2026-09-04, the ~20-day rolling-window span the in-repo daily snapshot archive supports):
- Earlier ≥5-payer cohort: 563 endpoints.
- Of those 563, 410 (72.82%) still hold
payers ≥ 5in the current window. - 153 (27.18%) have fallen below the 5-payer bar.
- Current ≥5-payer cohort: 727 endpoints (+29.13% vs earlier).
- Net new entrants across the 5-payer bar: 317 endpoints newly crossing the threshold in ~20 days.
The catalog top-line and this cohort tell different stories because they are counting different things. Report 09's catalog-item measure is item membership; this cohort is quality-of-demand-per-item. In this window the former is nearly flat and the latter is growing at ~29%. That is the ≥5-payer cohort — not “the market”, not “earning endpoints”, not any framing that lets a reader treat it as a market-wide number. The window boundaries are load-bearing, and the two Bazaar snapshots that support this cut are dated in the paragraph above.
The Tavily case.
x402.tavily.com/search was rank-3 by 30d calls in the earlier (2026-08-15) window with 25,073 calls and 421 distinct payers. In the current (2026-09-04) window it is at 1,899 calls (−92.43%) with 97 payers, and out of the top-10. It is still in the earning set. That is the shape of this market: a −92% collapse in call volume by a category-defining endpoint does not eject it from the set of endpoints that get paid at all. Volume can crater by an order of magnitude while presence persists. Read the shape, not any single number.
What this does NOT show.
- The two Bazaar snapshots are ~20 days apart on rolling-30d denominators. They overlap by ~10 days. This is not a 30-day-apart delta; it is the widest span the in-repo daily snapshot archive supports.
- The earlier-window reputation counterfactual is NOT reconstructible from in-repo data.
reputation_agent_summaryandreputation_feedbackinaudit_trail.dbare current-state only. No “N rated then vs M rated now” time-series claim is supported here and none is made. unique_payers == 1endpoints are indistinguishable from self-dealing from on-chain data alone. Two of the three new top-10 entrants have only 2 or 8 distinct payers respectively; the reader should treat their call counts with the same caveat that applies to the whole low-payer tail.- SAMPLE (CDP Bazaar catalog rows), not POPULATION: the CDP Bazaar catalog is one x402 discovery source, Base-weighted, and both denominators are conditional on being indexed by CDP.
- A 402 is a payment challenge, never a buyer.
So what.
If you are deciding whether to trust an agent endpoint quoted in the Bazaar, the persistence lens is the most useful one to reach for. The earlier top-10 by 30d calls did not vanish — every one of them is still being paid — but their share of the market has shrunk meaningfully as demand fans out to new endpoints crossing the 5-payer bar. “Top of the market” in x402 is real, and it is not a stable oligopoly. Persistence and share erosion are not opposites; both are the same signal about a broadening pool, not a consolidating one. When a specific endpoint's 30d call count moves, ask two separate questions: did it drop out of the earning set (very rare here), or is it holding rank while the market grows underneath it (much more common)?