Wash trading in agentic commerce, and how to spot it

RoundhouseReviewed .md
In short

Wash trading in agent payments means manufacturing settlements between wallets you control to inflate volume and transaction counts. It is cheap because gas on the chains x402 uses costs fractions of a cent. The patterns that expose it are self-payment, buyer concentration, circular flows, uniform timing and uniform amounts.

Contents
  1. Why would anyone manufacture payment volume?
  2. The five patterns
  3. What can detection not do?
  4. The error in the other direction
  5. What should you publish instead of a single number?
  6. Frequently asked questions
  7. Where to check this yourself

Why would anyone manufacture payment volume?#

Understanding the incentive makes the detection obvious.

A seller wants to appear in a ranking, qualify for an incentive programme, support a fundraise, or simply look busier than it is. Volume and transaction count are the metrics everyone quotes. Both can be manufactured by paying yourself.

The cost is one transaction fee per fake payment. On the chains x402 settles on, that is a fraction of a cent. For a few dollars a seller can manufacture tens of thousands of payments, and the resulting rows are, on their face, identical to real ones: real addresses, real transfers, real settlements.

Note

This is not a crypto-specific failing. App stores had install farms, ad networks had click fraud, and NFT marketplaces had wash trading for exactly the same reason. Any public metric that is cheap to manufacture and valuable to show will be manufactured. The interesting question is which signals survive.

The five patterns#

1. Self-payment. Payer and payee are the same address. The crudest form and trivially detectable, which is why it mostly appears where nobody is looking. It is also sometimes innocent, since testing and internal routing produce it, which is why annotating it is better than deleting it.

2. Buyer concentration. A seller's volume comes from one or two addresses. A real market has a distribution; a manufactured one has a source. TRM's published filters remove flows concentrated in one or two payers and sellers with fewer than ten distinct buyers for exactly this reason.

3. Circular flow. Money moves A to B to C and back to A. Each hop is a genuine transfer and the net position is unchanged. This is the version that survives a self-payment filter, and catching it needs graph analysis rather than a per-row check.

4. Uniform timing. Payments arriving at a fixed interval, or in bursts of identical size. Human-triggered and agent-triggered traffic both have ragged distributions; cron jobs do not.

5. Uniform amounts. Every payment the same value to the cent. Real usage varies, even for a fixed-price endpoint, because the mix of callers varies.

PatternDetectable fromCan be innocent?
Self-paymentOne rowYes, testing and routing
Buyer concentrationA seller's historyYes, one large customer
Circular flowThe payment graphRarely
Uniform timingA time seriesYes, scheduled jobs
Uniform amountsA value distributionYes, fixed-price endpoints

Every one of these has an innocent explanation in isolation. That is why no single check is a verdict, and why a tool reporting one of them as fraud is overclaiming. Several together, on a seller with a short history, is a different matter.

What can detection not do?#

Separate a careful faker from a real business, and this limit should be stated plainly rather than buried.

Two wallets controlled by one party, funded separately, transacting at irregular intervals in varying amounts, are not distinguishable from two unrelated parties by any on-chain method. The only thing that would separate them is information that is not on the chain.

The honest framing is that detection raises the cost of faking rather than eliminating it. Manufacturing volume that survives all five checks takes real effort, and a faker willing to put in that effort at scale is rare. That is a worthwhile outcome and it is not the same as a guarantee.

The error in the other direction#

The filters that catch wash trading also catch real activity, and TRM said so about its own method.

A single-purpose agent that buys one service repeatedly, on a schedule, in identical amounts, trips uniform timing, uniform amounts and often buyer concentration at the seller's end. It is exactly the automation the protocol exists for, and every heuristic flags it.

So a filtered figure is a lower bound on authenticity, not a measurement of it. Anyone presenting a cleaned number as the true one is making a claim their method does not support. How much x402 volume is real goes through the published estimates and how far apart they are.

What should you publish instead of a single number?#

Publish the signals, not a verdict.

For a seller you are evaluating, the useful figures are distinct counterparties over time, the share of volume from the largest payer, the proportion of self-payments, and how long the seller has been receiving payments at all. Those four tell you more than any composite score, and they cannot be collapsed into one without losing the thing you needed.

For an ecosystem figure, publish the evidence grade alongside the count, with the exclusions named. A reader can then apply their own standard, which is the only way a figure survives disagreement about method.

Frequently asked questions#

Is wash trading illegal here?#

It depends on jurisdiction and on what the volume was used to obtain. Manufacturing metrics to win an incentive payment or to mislead an investor has obvious legal exposure; inflating a leaderboard position may have none. This is not legal advice.

Can I tell if a specific seller is doing it?#

You can check the five patterns against the public record and form a view. You cannot prove it, and a seller with a clean distribution and a long history of distinct buyers is a much safer counterparty regardless of what it might be doing.

Does excluding self-payments fix the numbers?#

It is the cheapest improvement and nowhere near sufficient. Self-payment is the form a faker stops using the moment anyone filters for it.

Why not just require identity?#

Because the absence of identity is the feature that makes the protocol work for agents. Adding mandatory identity would solve the measurement problem by removing the thing being measured.

How does this affect a buyer rather than a seller?#

A buyer screening a seller is the main use. A seller with manufactured volume may still deliver, but its popularity is not evidence that it does, and popularity is usually what the buyer was relying on. Screening a counterparty covers the checks, and auditing a service's traffic is the longer version.

Where to check this yourself#

Roundhouse annotates self-payment on every settlement rather than silently excluding it, and publishes per-entity counterparty counts rather than volume alone. /transactions exposes the raw record with those annotations, and a wallet's own page shows its distinct counterparties over time, which is the single hardest figure to manufacture.

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/wash-trading-in-agentic-commerce.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