The experiment
Every figure below comes from one deterministic replay of the last full year on Ethereum: six Uniswap v3 pools, their daily swap volume, the liquidity that competed for it, the protocol fee switch from the exact day each pool activated it and each pool’s measured just-in-time share. The Aqua side answers the two questions that actually decide the outcome: how much flow would routing have sent to a strategy in your own wallet, and how much of it could your tokens have served once other strategies quote the same pair and a one-way day drains a balance?
- Window
- 2025-07-01 to 2026-07-01 UTC, entry on day one, held for the whole year
- Two venues, one deposit
- Inside the Uniswap pool every swap pays the position automatically. As an Aqua strategy the deposit earns only the flow that routing steers to it, at the fee the strategy itself quotes
- Price range
- One range per pair, sized in hindsight to cover the weighted daily swap span on 95% of days (the pegged pair quotes four times its median daily span instead), identical on both venues so the comparison isolates the venue, not the range pick
- The honest bracket
- Every Aqua figure spans two flow ends. Lower: only the measured aggregator-routed share of each pool’s volume can see a wallet strategy (10% to 36% per pool). Upper: every order compares venues before it executes
- Two competition states
- Sole strategy: yours is the only Aqua book on the pair, the upper end. Fully contested: competing strategies quoting the same fee hold a book as deep as the pool’s own, the floor. Live competition sits between the two, and no live per-pair data exists yet to pin it closer
- Everyone’s cut
- Uniswap side: the protocol’s share of LP fees from each pool’s activation day (a quarter on the 0.05% and 0.01% pools, a sixth on the 0.30% pools) plus the measured just-in-time share. Aqua side: the DAO’s share of each strategy’s fee (a quarter below the 0.12% boundary, a sixth above it)
- Not modeled
- Gas, rebalancing, compounding and intraday sequencing. Each pool’s volume and competing pool liquidity stay as measured, so extra size never invents extra flow
Who collects the fees today
The pools’ own history shows who actually collects the fees. We counted every position ever opened in the ten Uniswap v3 pools on Ethereum with the most lifetime volume: 348,993 positions as of July 2026. Positions of $10,000 or less are the single largest group by count, and together they collected less than one percent of everything those pools ever paid out. The median small position collected $10.84 over its whole life. The rest of this page shows what the same deposit can do when the tokens stay in one wallet and quote everywhere they fit.
Six pools or one wallet
Now the same budget goes portfolio-shaped, exactly as a cautious LP would spread it. The Uniswap shape splits $10,000 into six isolated deposits of $1,667 each: ETH/USDC 0.05%, ETH/USDT 0.05%, USDC/USDT 0.01%, ETH/WBTC 0.30%, WBTC/USDT 0.30% and WBTC/USDC 0.30%. The Aqua shape holds the very same $10,000 as four token balances of $2,500 (ETH, USDC, USDT, WBTC) and quotes all six pairs from them. Each pair draws on its two token balances, so each stands behind a $5,000 quote: $30,000 of standing quotes from the same $10,000, because the tokens are shared rather than parceled out. Three times the standing quotes is what drives everything below.
Does quoting more pairs from the same wallet collect more? The replay answers directly. Start with ETH/USDC alone, then add the next-biggest pair until the wallet quotes all six. A pair whose tokens already sit in the wallet splits nothing, so its flow is pure gain. A pair that brings a new token splits the budget across more balances, and here it still comes out ahead. At $10,000 the six-pair wallet collects 3.3 times what the single pair does on the upper end, and 4.1 times on the routers-only floor. The multiple barely cares who else quotes the pairs: fully contested, both endpoints halve and six pairs still collect 3.3 times one.
Head to head: $10,000 on ETH/USDC
One year back, $10,000 goes into the ETH/USDC 0.05% pool and earns $456 to $464 in fees. ETH fell 34.7% over the window, and net of the position’s repricing the pool position kept $95 to $103. The same $10,000 as an Aqua strategy quoting the very same 5 bps: as the only Aqua strategy on the pair, $42 for the year if only aggregator-routed flow ever saw it and $410 if every order price-optimized. With competing strategies holding a book as deep as the pool’s, the all-flow end drops to $205, about 44% of the pool position. And the aggressive undercut many would reach for first, a 0.005% fee, earned less rather than more: $22 to $222 as the sole strategy.
Why does the deep undercut earn less? Because earning is fee times flow. Quoting 0.005% instead of 0.05% wins more than five times the routed volume in this replay, but each routed dollar pays ten times less. And why does competition halve the take? Because an order that reaches Aqua splits across every book quoting the pair, so your share is your size against the venue’s whole book. The two ends of the Aqua strip are a fact about visibility, the two competition states a fact about crowding. Reality sits between the corners, and moves toward the strong ones as more flow price-optimizes and while few strategies quote the pair.
One asymmetry is already priced into these numbers. The measured just-in-time share is subtracted from the pool side, and it has no Aqua equivalent: a quote lives in your own wallet, so there is nothing to wedge in front of a fill and no fee moment to dilute. Why JIT sniping cannot happen to an Aqua position.
The break-even fee window
Sweeping the strategy’s fee from 0.1 to 10 bps answers the natural next question: is there a fee at which the wallet strategy beats the pool position outright? As the only strategy on the pair, yes, and it is a window, not a point. On the all-flow end every fee between 1.2 and 4.82 bps earned at least the pool position’s $464, and 3 bps earned the most: $727, roughly 1.6 times the pool. On the routers-only end no fee catches the pool at this size, and once competing strategies match the pool’s book no fee does either: the contested curve tops out at $287. The window is an upper end that says the binding constraints are visibility and crowding, not pricing.
The winning window is not an accident of this pool. Every fee level where competing liquidity stands is a boundary: quote below a venue’s fee and its flow becomes reachable, quote above it and that flow stays home. ETH/USDC has tier pools at 0.01%, 0.05%, 0.30% and 1.00%, so for a small strategy the useful quotes live between the 0.01% floor and the 0.05% home tier, exactly where the sweep found its window. Undercutting below the cheapest standing tier makes no new venue’s flow reachable. It only gives the rate away.
The six-pair year, replayed
Fees are half of the ledger. Repricing is the other half. This window was rough: ETH fell 34.7% and WBTC 44.6%, so two-sided liquidity on either venue repriced against simply holding the tokens. Net of that repricing the split ended -$28 to -$1 and the shared wallet -$26 to -$156. The shared side’s all-flow end is more negative for the same reason its fees are larger: $30,000 of standing quotes track three times the repricing of $10,000 of deposits. Standing size cuts both ways, and no venue choice removes market direction.
The same breakdown at the ladder’s top end shows what saturation does pair by pair. At $1B the shared wallet still collects more on five of the six pairs as the sole strategy, up to 1.6 times the pool deposit on ETH/USDC. The smallest pool flips: on the all-flow end the $166.7M USDC/USDT deposit collected $290,197 against the $500M standing quote’s $267,964, because a bigger quote cannot collect flow the pool never saw. Fully contested the totals stay about 5% ahead of the split while individual pairs go both ways. The routers-only floor sits far below the split book at this size on every pair. Visibility, not pricing, is the binding constraint at the top.
From $10K to $1B
The same two shapes replayed at sixteen budgets. As the sole strategy on every pair the shared wallet collects about 2.7 times the split book’s fees at $10K, still 2.6 times at $1M, compressing to roughly 1.4x at $1B as fee capture saturates against the flow that actually existed. Fully contested the wallet still collects about 1.3 times the split at $10K and stays about 5% ahead at $1B: sharing keeps its edge because the split book faces the same market. The break-even window tells the fee story. It stays put through roughly $25M, then narrows toward the pool tier as the strategy becomes most of the market.
Read the numbers with these limits
- This is a historical simulation, not live results and not an offer of future performance: one year, one chain, six pools, entry on one day.
- The Aqua side uses a routing model, not recorded Aqua fills: each order splits so the all-in marginal price equalizes across the pool and the strategy (the standard aggregator objective), with each day’s volume arriving as that day’s observed number of swaps at restored daily spot.
- Competing Aqua strategies are modeled at two computable states: none, and a book as deep as the pool’s at the same fee, split pro-rata (the expectation of the winner-take-all auction under symmetric quotes). Live competition sits between the states and moves as other LPs come and go.
- The lower flow end counts only volume a swap aggregator provably routed, a floor: solver and bot flow that self-optimizes across venues is not tagged by that measure. The upper end lets every order compare venues. Reality sits between the two.
- Quotes below the cheapest standing tier are modeled like any other fee, but in live markets they mostly attract arbitrage flow, the kind the repricing side of the ledger already counts against. The corridor between the pair’s tier boundaries is where undercutting stays defensible.
- Daily bars with the volume-weighted p05 to p95 span swaps touched each day, volume-weighted active liquidity and the day’s signed buy/sell volume split. Intraday sequencing and single-swap effects are averaged out.
- The modeled strategy is a slow quote, static price, static fee, no repricing, and the cost such a quote pays for going stale against arbitrage flow (loss-versus-rebalancing, intraday adverse selection) is not charged: fills happen at restored daily spot, while on the Uniswap side this cost is already embedded in the measured history. The omission flatters the Aqua side, so read its figures toward the lower ends. The break-even window is most sensitive, since an undercut attracts the most arbitrage-heavy flow. Fast-repricing live strategies can cut this cost, and this replay does not model them.
- The window is one strongly falling market (ETH -34.7%, WBTC -44.6%). A sideways or rising year rewrites every net figure. The venue comparison, not the market outcome, is the transferable part.
- Static positions and static fees: no rebalancing, no compounding, no mid-window fee changes, no gas.
- Wallet balances are finite and walked daily: fills exchange one token for the other at that day’s measured buy/sell mix, a day’s round-trip flow pays for itself and only the net one-way excess draws the paying balance down, capped at what the wallet holds. A drained side stops filling until flow turns, exactly like the product. Intraday sequencing inside a day is not observable at this grain.
- USD accounting uses each pool’s own stable leg. The ETH/WBTC pool converts through the same-day volume-weighted ETH/USD of the largest pool. No external price feed enters the arithmetic.
- Live Aqua mechanics (resolver competition, intent auctions) are richer than this flow model. The model here is deliberately the plainest defensible one, and both of its ends ship with the code.