← All posts

A URL That Answers Is Not a Counterparty That Paid

Published 2026-09-03 · the paid-cohort figures below render at build time from the frozen ERC-8004 x x402 ownership join dated 2026-09-01 (snapshot 2026-09-01T11:23:10Z, chain base). The probe-funnel figures are quoted verbatim from the Agents Trust landing page fetched 2026-09-03; their page publishes no snapshot date.

There are three different questions you can ask about an agent endpoint, and the ecosystem currently answers them at three different depths.

The whole finding, one paragraph. A 402 is a payment challenge, never a buyer: an endpoint can answer a probe perfectly and have never been paid once. The advertised layer, the answers-a-probe layer, and the was-ever-PAID layer are three different predicates on the same URL, and the numbers behind them are not the same numbers. Agents Trust measures the second layer at real scale — that is the liveness cut. We measure the third — the paid cohort, joined against on-chain ERC-8004 ownership. Nobody else joins the paid-endpoint cohort to on-chain ERC-8004 identity; that is the difference this page names.

Three different questions, three different depths

Every claim that circulates about “how big is x402” or “how alive is the agent economy” is answering one of these three questions. Answering a different one is not wrong — it is different. The category error is treating them as substitutes.

Layer Predicate on the URL Who measures this at scale
1. Advertised Somebody published this URL as an agent endpoint. Registries, catalogs, aggregators (CDP Bazaar, x402-list.com, Agents Trust, etc).
2. Answers a probe The URL returns a payment challenge when we ask. This is liveness. Agents Trust measures this at 138k-URL scale (see below).
3. Was ever PAID The URL has actually been paid, by whom, and does the counterparty walk back to a registry-owned identity. This is settlement. The ERC-8004 x x402 ownership join we publish (below).

The three layers are strictly nested from top to bottom: a URL that has been paid was necessarily advertised and answers. A URL that answers a probe was necessarily advertised. The reverse implications do not hold, and that is the whole finding: each layer is a strictly smaller population than the one above it.

The probe layer, measured at real scale

Layer 2 is genuinely useful work. It answers a question the catalog layer cannot: of the URLs that were advertised as agent endpoints, which ones actually respond? Answering that question at 138k-URL scale is not trivial. Agents Trust publishes the funnel on their landing page — we quote it verbatim from a fetch on 2026-09-03 because their page carries no snapshot date, so no stronger attribution is available:

Stage URLs Their stated meaning
Advertised to agents 138,204 Catalogued URLs known to their crawl.
Ever answered a probe 64,849 Returned a payment challenge at least once when asked.
Callable now 30,857 Answering a probe on their current live check.

Source: Agents Trust landing page, https://agents-trust.com/, as published on their landing page, fetched 2026-09-03; no snapshot date given. Their stated predicate is “ask every catalogued URL for a payment challenge” — liveness (does the URL respond to a probe), not settlement (was the URL ever paid, by whom). The single $1.2M / 3.1K-payers figure on the landing page is on an example card for a fictional api.example.tools URL — never cite as an ecosystem statistic.

Layer 3 asks a strictly narrower question: not whether the URL answers, but whether it has ever been paid, by whom, and whether the counterparty walks back to a registry-owned identity. This is the question the market-map catalog alone cannot answer, and the question the probe layer alone does not try to answer. Our reference join is published in dataset form at /x402-paid-but-unrated; the single-paragraph summary of the join lives here so it can never drift from the publisher-level context that has to sit beside it:

The join, both levels, one paragraph. 14,338 earning Base x402 endpoints → 1,291 (9.00%) ERC-8004-owned → 9 rated → 0 commerce-backed; publisher level = 26 distinct pay_tos, top one 67.2% (875 endpoints), 4 rated, 0 commerce-backed. Per-publisher dedup capped at 50 on the base-resolvable count — disclosing this cap on-page is part of the finding, not an addendum.

Sample: 14,338 x402 endpoints on Base with quality.l30DaysUniquePayers >= 1 in the 2026-09-01T11:23:10Z bazaar catalog snapshot. Every share is a lower bound — pay_to may be a treasury wallet distinct from the ERC-8004 registration owner. Full derivation: /x402-paid-but-unrated; the same numbers ship byte-identical in the market-map JSON export under reputation_join_base.

The 0-endpoint / 0-publisher commerce-backed count is a boundary condition of the two surfaces, not a rating: we index 44 commerce-backed agents — every one of them ships over Virtuals ACP, not as an x402 HTTP endpoint in the CDP Bazaar. See the commerce-backed cohort dataset for the got-paid cut in its own frame.

A 402 is a challenge, not a buyer

The hinge of this whole page. When a URL responds to a probe with an HTTP 402 Payment Required, that is a challenge: it says if you want the resource, here are the terms of payment. It says nothing about whether anybody has ever met those terms. An endpoint can serve a well-formed 402 for years without ever being paid once. This is why we published a whole piece (Report 10) on the call-weighted concentration cut: a small cohort of endpoints carries the overwhelming majority of paid activity, the median 30-day call count for the one-payer cohort is 1, and a one-payer endpoint is indistinguishable from self-dealing from on-chain data alone.

This is also why we do not present the paid layer as a correction to the probe layer. Layer 2 is a genuinely useful, genuinely hard measurement of a genuinely different property. The two answers coexist; a serious reader wants both, at the right question for each. What we contribute is layer 3.

What no other index joins

What is missing is the ever-paid cross-reference against on-chain ERC-8004 identity. Per-endpoint settlement figures do exist elsewhere — x402.fuchss.app publishes per-endpoint 30-day settlements, distinct payers, and USDC volume at payTo-wallet level, and acknowledges on-page that settlement is wallet-level, not endpoint-specific. What no other index does is JOIN that paid-endpoint cohort against on-chain ERC-8004-owned identity — walking the counterparty back to a registry-owned agent we can name. That is the third layer, and it is what this piece exists to name.

Methodology and scope

External figures. The probe-funnel numbers are quoted verbatim from the Agents Trust landing page at https://agents-trust.com/. The page carries no snapshot date; the only dated attribution we can offer is when we fetched it (2026-09-03). Their example-card figure ($1.2M / 3.1K payers) is on a fictional api.example.tools card and is never cited on this page as an ecosystem statistic.

Our figures. The endpoint- and publisher-level cuts come from the frozen ERC-8004 x x402 join dated 2026-09-01 (snapshot 2026-09-01T11:23:10Z), predicate smartcontractauditpro/commerce_backed.py. Full derivation and per-publisher figures live at /x402-paid-but-unrated. The same dict projects byte-identical into the market-map JSON under reputation_join_base.

Cross-cutting discipline. l30DaysTotalCalls from the CDP Bazaar is a request count, not settled USDC value. The CDP Bazaar catalog is one Base-weighted x402 discovery source; the probe funnel is one operator's crawl over what they catalogue. Neither is an ecosystem census. Every share we quote on the join is a lower bound — pay_to may be a treasury wallet distinct from the on-chain registration owner, and the ERC-8004 spec is still Draft.

Suggested citation: On-Chain Agent Intel. "A URL That Answers Is Not a Counterparty That Paid (2026-09-03)." https://onchainagentintel.io/blog/probe-vs-paid. Published under CC BY 4.0 — attribution back to On-Chain Agent Intel is required.