Crypto wash trading creates an appearance of genuine activity through transactions that do not represent independent changes in economic exposure. Public volume can reveal anomalies, but repeated sizes, fast reversals or high turnover alone cannot establish common control or intent. Compare a consistent trade feed with contemporaneous depth and fixed-size execution estimates, then state what the evidence leaves unresolved.
Separate a market warning from an ownership finding
A reader usually has two different questions: whether reported activity is trustworthy, and whether an intended order could trade at an acceptable cost. You can sometimes answer the second with public data even when the first remains unresolved.
The CFTC's futures-industry glossary describes wash trading through apparent purchases and sales without market risk or a change in the trader's position. That captures the economic concern; applying a legal classification to a particular crypto transaction requires its own facts and applicable rules. CFTC glossary.
A public trade record can show price, quantity, time and order identifiers. Those observations do not necessarily reveal who ultimately controls both sides. For example, Coinbase Exchange documents extra user and profile fields for authenticated match messages involving the subscriber; the ordinary public match example identifies orders. An order ID is not an ownership certificate. Coinbase Exchange match messages.
Keep three statements separate: “the feed contains a repetitive pattern,” “reported turnover is large relative to displayed depth,” and “the counterparties acted under common control or coordinated to create artificial activity.” Each requires different evidence. The first two can justify discounting volume as a liquidity indicator without establishing the third.
Patterns are leads, with alternative explanations
Suspicious activity becomes more useful to investigate when it survives basic data checks and appears across several independent measurements. Counting several variants of the same trade-size pattern does not create independent corroboration.
| Public observation | Why investigate it | Alternative explanation to check |
|---|---|---|
| Identical sizes at regular intervals | Activity may follow a mechanical schedule | A genuine order sliced into scheduled child orders |
| Rapid opposing prints near the same price | Exposure may be cycling | Unrelated buyers and sellers or inventory management |
| High reported turnover beside shallow depth | The volume ranking may overstate usable liquidity | Fast replenishment, hidden liquidity or a poorly sampled book |
| Large volume with little price movement | Activity may have limited economic effect | Balanced demand meeting resilient liquidity |
Even a return to the same inventory balance proves little by itself. A trader can buy from one independent counterparty, bear price risk, and later sell to another. A net-zero ending position does not reconstruct what happened between those events.
The original research paper Crypto Wash Trading, by Lin William Cong, Xi Li, Ke Tang and Yang Yang, examines trade-size leading digits, rounding and tail distributions across 29 exchanges. Its underlying sample covers July to November 2019, and the authors distinguish their broad statistical objective from identifying an individual wash trade. A screenshot of repeated lots does not reproduce that methodology, and a historical sample estimate is not today's market-wide wash-trading percentage. Original paper and methodology.
For a small reader audit, preserve the anomaly and its competing explanations. Avoid assigning a numerical probability of manipulation without a validated model and appropriate reference data.
Make the comparison consistent before calculating
Choose the same asset, quote currency, market type and UTC window on both venues. A spot pair and a perpetual contract are different instruments. USD and USDT are different quote units; converting between them requires a stated exchange rate and timestamp. A venue-wide headline is not the turnover of one pair.
For a trade-level construction, sum price multiplied by base quantity once per completed trade. Do not add the buyer's and seller's sides as two separate transactions. Retain original trade IDs and remove duplicates introduced by overlapping downloads.
Distinguish raw executions from compressed records. Binance Spot's aggregate-trades endpoint combines quantities for executions at the same time, from the same taker order and price. A count of those records is therefore not interchangeable with another venue's raw execution count. Its depth endpoint separately returns bid and ask price/quantity pairs. These are Binance Spot field definitions, not universal exchange conventions. Binance Spot market-data documentation.
Also check collection integrity. Coinbase Exchange warns that its matches channel can drop messages and describes recovery using heartbeat trade IDs and REST retrieval. Its level2 updates supply the new size at a price level, not a change to add to the old size. Misreading that rule can manufacture depth. Coinbase Exchange channel documentation.
If the feed is incomplete, label the interval incomplete. A suspicious ratio calculated from mismatched windows is a collection problem before it is market evidence. The volume-confirmation guide provides the underlying checks for volume units and completed observation periods.
A worked cross-venue depth comparison
The following dataset is entirely hypothetical. Venues A and B are invented, both trading ABC/USDT spot. Reported quote turnover covers 12:00:00 through, but excluding, 13:00:00 UTC. Take 60 synchronized book snapshots, one at each minute from 12:00 through 12:59.
At each snapshot, calculate the midpoint as the average of best bid and best ask. Sum price multiplied by quantity for bids from 99% of midpoint up to the best bid, and asks from the best ask through 101% of midpoint. Add those two sides, then take the median of the 60 combined totals. Do not assume the median of a sum equals the sum of separate medians.
| Measurement | Venue A | Venue B |
|---|---|---|
| Reported one-hour quote turnover | 12,000,000 USDT | 6,000,000 USDT |
| Combined near-mid depth in 30 snapshots | 70,000 USDT | 560,000 USDT |
| Combined near-mid depth in the other 30 | 80,000 USDT | 600,000 USDT |
| Median combined depth | 75,000 USDT | 580,000 USDT |
| Hourly turnover divided by median depth | 160.00 | 10.34 |
For A, the depth median is the average of the two middle observations: 70,000 and 80,000. The turnover ratio is 12,000,000 divided by 75,000, or 160. For B, 6,000,000 divided by 580,000 is approximately 10.34.
A reports twice B's turnover while displaying much less nearby liquidity. Its ratio is approximately 15.47 times B's. This is a reason to investigate the discrepancy, not a finding that a certain fraction of A's trades is fake.
Volume measures activity over time; displayed depth is a stock at observation times. The same inventory can support repeated legitimate transactions as quotes replenish. Minute samples also miss events between snapshots, and the displayed book can change or disappear. There is no universal ratio above which these numbers prove wash trading.
Test the execution implication without sending an order
At one additional hypothetical snapshot, both venues have a midpoint of 10 USDT per ABC. Reconstruct the cost of buying 1,000 ABC by walking each venue's displayed asks in price order. Assume the following layers remain available throughout this calculation; later ask levels are irrelevant because these quantities complete the requested size.
| Venue | Ask layers consumed: ABC at USDT per ABC | Quote cost |
|---|---|---|
| A | 200 at 10.01; 300 at 10.03; 500 at 10.08 | 10,051 USDT |
| B | 400 at 10.005; 600 at 10.015 | 10,011 USDT |
A's cost is 2,002 + 3,009 + 5,040 = 10,051 USDT. Divide by 1,000 to obtain an average price of 10.051. Relative to the 10 midpoint, that is 0.51%, or 51 basis points. B's average price is 10.011, which is 0.11%, or 11 basis points above midpoint.
The venue with higher reported volume has the worse displayed buy estimate in this construction. This conclusion needs no allegation about who traded. It also remains a snapshot calculation: fees, latency, cancellations and new arrivals are excluded. Reconstruct the bid side separately for a sale; adding bid and ask depth does not make both sides available to a buyer.
On-chain transparency changes the evidence available
On-chain records can expose transaction paths and address relationships that a centralized public tape does not. They still require interpretation. Several addresses need not represent several independent people, while a shared service or contract need not represent one trader.
Before treating a pattern of swaps as repeated independent demand, reconstruct its route. Uniswap Labs documents splitting larger swaps across multiple pools or paths, as well as routes through intermediate tokens. One user instruction can therefore create several pool interactions. Counting those interactions as separate users would answer the wrong question. Uniswap Labs routing explanation.
The DEX aggregator split-routing guide explains how route legs fit together. The token-holder concentration guide addresses the related problem of interpreting address balances and control. Neither pool-event counts nor a holder list independently establishes collusion.
Record any address-clustering rule explicitly and retain its uncertainty. A transaction hash can substantiate a transfer; it does not, by itself, substantiate a claim about a person's motive.
Keep a read-only evidence worksheet
A useful audit can finish with a limited conclusion. Write the following fields before treating reported volume as evidence of broad participation or easy execution:
- Scope: exact venue, pair, product, quote unit and start/end timestamps.
- Integrity: raw or aggregated records, duplicate handling, gaps, book coverage and sampling cadence.
- Observations: turnover, side-specific depth, spread, fixed-size book-walk estimate and the actual repetitive pattern.
- Alternatives: order slicing, inventory recycling, routing, fee incentives and data-processing errors checked or still unresolved.
- Ownership evidence: what links counterparties, how that link was established, and what remains unknown.
- Decision: the specific volume or execution assumption the available evidence can support.
Self-trade prevention is a separate control. Coinbase Exchange documents that crossing orders from the same user do not fill one another. That documented boundary does not certify every participant relationship across a market. Use the self-trade-prevention guide to understand order outcomes without treating STP as proof of clean aggregate volume. Coinbase Exchange matching engine.
For the invented comparison, the defensible note is: “A reports more turnover but has less sampled nearby depth and a more expensive displayed buy estimate; common control and intent are unverified.” Save the inputs with that statement. It gives the next reviewer something concrete to check and keeps an execution warning from becoming an unsupported accusation.
