The attack, in numbers
JIT runs at scale and is heavily automated: the measurement above traces most bundles back to a handful of searcher bots, and about 52,700 of them arrived through private relays, invisible in the public mempool until they landed. Passive LPs in shared pools compete with infrastructure they cannot see.
How a JIT bundle unfolds
- 1
Spot a large swap
A bot watches pending transactions for a large swap headed to a pooled AMM, then computes exactly where that swap will move the price.
- 2
Insert liquidity first
In the same block, right before the swap, it mints a tight position at that price, so for one moment it holds most of the active liquidity in the pool.
- 3
Exit with the fee
Immediately after the swap it burns the position and leaves with a large share of the fee, diluting the LPs whose liquidity sat in the pool all along. The swap itself is unharmed, and on average it even fills at a slightly better price. On Aqua the sequence cannot start: no external liquidity can be inserted into your position.
Why Aqua positions can't be sniped
In a pooled AMM, fees are shared among whoever is in the pool at the fee moment, including a bot that arrived in the same block, right before the swap. An Aqua position is single-owner: its fees are not shared with other LPs and no external liquidity can join it. The fee moment isn't shared, so there is nothing to snipe. What risks remain for Aqua LPs.