What proves a transfer was an x402 payment?

RoundhouseReviewed .md
In short

The gasless-transfer marker that x402 produces is not proof of x402, because the same mechanism predates the protocol and is used by unrelated systems. The discriminator is the transaction sender: on the common path it is a facilitator. A transfer relayed by a named facilitator is strong evidence; one relayed by an unknown address is unestablished rather than disproven.

Contents
  1. The marker everyone counts
  2. Why the marker is not enough
  3. What actually discriminates
  4. Why a three-valued answer matters
  5. How much difference does it make?
  6. What about non-EVM chains?
  7. Frequently asked questions
  8. Where to check this yourself

The marker everyone counts#

When an EIP-3009 authorisation is consumed on an EVM chain, the token contract emits an AuthorizationUsed event alongside the ordinary Transfer. It is easy to find, easy to count, and it is present on essentially every EVM x402 payment.

So the obvious method is to count those events and call the result x402 volume. That method is wrong, and it is wrong in a way that inflates rather than deflates.

Why the marker is not enough#

EIP-3009 is older than x402 and is used by things unrelated to it. Gasless transfer relayers, exchange withdrawal flows and sponsored-transaction wallets all produce the identical marker. The mechanism was in production and emitting these events well before x402 was announced in May 2025.

A count of markers is therefore a count of gasless authorised transfers. x402 is a subset of that, and on some chains and in some periods a small one.

Warning

This is the single most consequential measurement error in agentic payments, and it is invisible from inside the result. A marker count produces a number that looks right, grows plausibly, and is wrong by whatever the non-x402 gasless transfer volume happens to be. Nothing about the output signals the problem.

What actually discriminates#

The relayer.

On the common x402 path the buyer signs and a facilitator broadcasts. So the transaction's sender is the facilitator, not the payer. Facilitators are a small, nameable, publicly known set, and a facilitator's only business is relaying x402 payments.

That gives a ladder rather than a yes or no:

EvidenceWhat it supports
Relayed by a named facilitatorStrong. This is an x402 payment
Settled by a first-party facilitator you operateStrongest. You were the facilitator
Marker present, relayer unknownUnestablished. Gasless and authorised, purpose unknown
Payee appears in an x402 catalogueRaises confidence. Does not verify
No markerExamined, no x402 evidence found

The third row is the important one and it is the row most analyses collapse. Unestablished is not disproven. A transfer relayed by an address nobody has identified might be an x402 payment through a facilitator not yet in any registry. Reporting it as "not x402" is as wrong as reporting it as x402; the honest answer is that the evidence is not there.

Why a three-valued answer matters#

Because a binary flag forces every uncertain row into one of two wrong buckets, and the choice of which one silently decides the headline.

Grade them as verified and the total is inflated by every unidentified relayer. Grade them as not-x402 and the total is deflated by every facilitator outside your registry. Either way the number moves by a lot, and nothing in the output says which way the thumb was on the scale.

A record that keeps three states lets a reader choose. The verified band is the number you can defend in an argument. The total is the upper bound. The gap between them is the honest uncertainty, and publishing it is more useful than resolving it by fiat.

How much difference does it make?#

Enough to change the conclusion rather than the decimal place.

The general shape, consistently reported through 2026: the proportion of markers relayed by registry facilitators rose sharply over the protocol's life. Early in its deployment most gasless authorised transfers on major chains had nothing to do with x402, because x402 barely existed. At the chain tip the majority do.

That means the growth curve measured by markers and the growth curve measured by facilitator-relayed settlements are different curves, and the second one is the real one. A chart built from markers shows x402 as having been large before it existed.

What about non-EVM chains?#

The principle holds and the signature changes. x402 v2 made non-EVM chains first-class, and a Solana x402 payment settles through a different instruction with a different marker and a different relayer set.

So an index covering both chains is running two detectors, not one detector twice. Their outputs have to be made comparable before anything is summed, and that step is where cross-chain figures most often go wrong. It is also why comparisons should be per chain: why counts disagree goes through the specific ways pooling them misleads.

Frequently asked questions#

Can a seller prove its own payments were x402?#

Yes, better than anyone else can. It knows which requests it served, which facilitator it used and which transactions settled them. What it cannot do is prove that to a third party without being trusted, which is what an independent index is for.

Does a catalogue listing verify a payment?#

No. A publisher registering an address with a directory tells you what that publisher claims, not what happened on-chain. It raises confidence and ranks below an unnamed relayer in any sensible grading.

Why not just ask the facilitators?#

You can, and their figures are useful. They are also partial, since each sees only its own traffic, and self-reported, since nobody else can check them. An index built from the chain sees all of them under one method.

What about batched or deferred payments?#

They settle once for many calls, so a per-settlement count undercounts the calls. If you are comparing figures, whether batched payments are counted once or expanded is a real source of disagreement.

Does this apply to the dollar volume too?#

More so. Volume is dominated by a small number of large transfers, so a handful of misclassified rows moves it much more than it moves a count. Dollar figures should carry their evidence grade even more conspicuously than counts.

Where to check this yourself#

Roundhouse records how each settlement's x402 status was established, not just whether it was. Coverage and confidence documents the grades and what each asserts, /transactions lets you filter the live record by grade, and /stats publishes the verified band separately from the total with the window stated.

Reading this as an agent?

Every page here has a markdown twin at the same URL plus .md. Same words, no navigation, no markup to strip. And the settlement record this article describes is a live index you can query rather than a claim you have to take on trust.

  • GET https://roundhouseai.io/resources/what-proves-a-transfer-was-an-x402-payment.mdthis page, as markdown
  • GET https://roundhouseai.io/llms.txtevery surface on roundhouseai.io
  • GET https://api.roundhouseai.io/v0the index: endpoints and schema
  • GET https://api.roundhouseai.io/v0/test/x402$0.01 over x402, and it mints your own key with no account

/docs/api has the limits and the SQL surface. /v0/account, /v0/endpoints and the capability layer answer without a key.

Read next