A-A Wash Trading Detection on Uniswap v2: A New Tool For Investors & Investigators
Solidus Labs demystifies the nuances of A-A wash trading in the DeFi ecosystem.
Cryptocurrency and NFT researchers have thoroughly documented the wash trading challenges that centralized exchanges and NFT marketplaces face – but surprisingly little has been written to date about the decentralized exchange (DEX) problem space.
Solidus Labs’ new DEX-based wash trading detector aims to fill that void, starting with the letter A.
What is wash trading, A-A wash trading, and AMM-based A-A wash trading?
Wash trading is a form of market manipulation in which one entity simultaneously and repeatedly buys and sells the same asset, manufacturing artificial market signals.
A-A wash trading is its most basic shape. In crypto, an A-A wash trade – also known as a self-trade – occurs whenever the cryptocurrency address of the buyer is identical to that of the seller. Self-trading prevention functionality is built into modern financial exchanges, including many centralized crypto exchanges.
Automated market maker (AMM)-based A-A wash trading occurs whenever the cryptocurrency address of the swapper on a DEX liquidity pool is identical to that of one of the pool’s liquidity providers. A liquidity pool is just another name for a trading pair, like PEPE-ETH or RAD-USDC.
How does crypto wash trading differ on an automated market maker versus a central limit order book?
A wash trade on an automated market maker (AMM) is not quite as black and white as a wash trade on a central limit order book (CLOB). On a CLOB, an entity can place and then fill their own limit order to execute an entirely fake trade at a fixed price. On an AMM – particularly one that does not support concentrated or one-sided liquidity provision, such as Uniswap v2 or PancakeSwap – wash trades have two divergent properties.
The first is that due to slippage, an AMM-based wash trade necessarily alters both the volume and the price of the less-established token in the liquidity pool. Unless a wash trader makes a concerted effort to rebalance the pool by executing an equally-valued countervailing swap in the same Ethereum block, AMM-based wash trading therefore acts as a form of price manipulation in addition to volume manipulation.
The second is that if a liquidity pool has multiple liquidity providers, an AMM-based wash trade exists on a spectrum between artificial and organic. Where on the spectrum this trade lies depends on what percentage of the pool’s outstanding liquidity provider (LP) tokens are held by the provider executing the swap. For example, if trader 0x123 owns 70% of a pool’s outstanding liquidity (and therefore 70% of all LP tokens), and then initiates a swap in that same pool, 70% of that swap’s volume is artificial, while the remaining 30% is organic.
Our A-A wash trading detector classifies an AMM-based trade as a wash trade if the trader in question holds at least 1% of the pool’s outstanding LP tokens at the time of their trade. That trade’s “wash volume” is then computed by multiplying the trade’s estimated USD value by the percentage of the pool that the trader then controlled.
Using the detector: A quick tutorial
To use the detector, all you’ll need is (1) a Dune account and (2) a Uniswap v2 pool address.
- Follow this link to sign up for Dune.
- To locate a token pair’s pool address:
- Go to the Uniswap v2 analytics website
- Enter one or both of tokens’ tickers or contract addresses into the search bar
- Select the relevant token pair from the dropdown
- Copy the pool address from the bottom of the page that loads next.
Some surprising takeaways
From the start, we were surprised by just how much A-A wash trading occurs on DEX liquidity pools, especially pools with just one major liquidity provider. If anything, we expected more obfuscation – cases in which a liquidity provider would send funds to a second address before swapping against their own liquidity to make those swaps appear organic. We found and documented this type of obfuscation in our Crypto Market Manipulation Report, to be sure, but we were surprised to learn just how big a slice basic A-A wash trades represented of the AMM-based wash trading pie. That’s part of the reason why we decided to make this dashboard!
Another surprise was just how sensitive the A-A wash trading detector’s “wash volume” output is to changes in the minimum percentage of outstanding LP tokens held requirement for a swap to be considered a wash trade. If a swap is 1% artificial and 99% organic, a case could be made that the swap is for all intents and purposes organic; at 50.1% to 49.9%, that case becomes less compelling. For that reason, we intend to make this 1% minimum threshold programmable in future iterations of the dashboard.
Solidus’ A-A wash trading detector for Uniswap v2: Now available on Dune
We’re thrilled to bring our new A-A wash trading detector to investors and investigators on Dune, starting with Uniswap v2 on Ethereum – which represents more than 90% of all Ethereum-based liquidity pools.
Solidus’ mission is to de-risk DeFi and Web3 to enable fairer crypto trading. We built this dashboard as part of our ongoing commitment to make crypto market integrity data more interactive and accessible to everybody.