Providing concentrated liquidity is a negative-sum game
The complete paper; the original typeset version is a PDF.
The result in one chart
Over two years and 77.8 million swaps, the aggregate LP population of two Base pools collected less in fees than it paid in adverse selection. Not in one regime. In all fourteen.
| Fees collected | Adverse selection paid | Net | |
|---|---|---|---|
| ETH-USDC, 730 d | $3.30M | $6.41M | −$3.11M |
| cbBTC-USDC, 654 d | $0.93M | $1.74M | −$0.81M |
Everything below is how we measured that, what we tried to do about it, and why none of it worked.
Abstract
We present an empirical anatomy of why providing concentrated liquidity on Uniswap-v3-style venues fails for the liquidity provider: the mechanism, the measurements, the loss-minimizing geometry, and the capacity ceiling. The measurements cover five pairs on PancakeSwap v3 and Aerodrome Slipstream on Base (campaign April-July 2026, with a two-year on-chain replay window), through three evaluators of increasing fidelity built around a deliberately small live deployment: a calibrated block-bootstrap Monte-Carlo engine; a tick-by-tick event-replay engine reconstructing pool state from complete on-chain histories (77.8M swaps over two years) and reproducing 0.97-1.00 of the fees actually collected by production positions; and live forward paper-trading arms.
Four results emerge.
- Liquidity provision “for the fees” is structurally negative-sum against arbitrageurs: pool-wide LP fees of $374k versus $662k of realized adverse selection (markout) over 90 days, and the same inequality in 14 of 14 pre-registered market regimes over two years.
- Concentration aggravates the loss; the loss-minimizing geometry is a single wide (±10-15%) lazy range, the exact reversal of the calibrated simulator’s recommendation, confirmed forward by the live arms.
- The only positive revenue is protocol emissions, whose measured budget (≈$1.02M/yr across the farms studied) caps the opportunity: net-positive capacity versus buy-and-hold at product size is zero.
- A reusable taxonomy of measurement artifacts for empirical DeFi.
The detailed measurements are all from Base; BTR’s internal research on other chains and venues reached the same qualitative conclusion. Negative results are the point of the paper.
1. Introduction
Concentrated-liquidity automated market makers (CLAMMs), introduced by Uniswap v3 [3], let liquidity providers (LPs) allocate capital to arbitrary price ranges rather than the full price axis. The design multiplies fee income per dollar of capital by a concentration factor that can exceed two orders of magnitude, and it is now the dominant venue architecture for spot trading on Ethereum rollups. It also created an industry of automated liquidity managers (ALMs): agents that choose a range, monitor the price, and rebalance when the price escapes, with the stated goal of turning fee income into a yield product for passive capital.
This paper concludes a two-year research program (2024-2026) on automated liquidity management. Its earlier phases built the system whose measurements we report: the three-force market model, the range optimizer and its fitness functional, and the multi-chain R&D and a previous Rust engine implementation, both due to the second author, all predate the work described here. What this paper documents is the program’s final measurement campaign (April-July 2026), operating the ALM continuously on Base across five pairs on PancakeSwap v3 and Aerodrome Slipstream. The live deployment was kept at sandbox scale because its purpose was measurement, not income: every fee, emission, rebalance and gas cost was recorded on-chain and reconciled against benchmarks. Around this live anchor sit three independent evaluators of increasing fidelity:
- A Monte-Carlo engine driven by block-bootstrap resampling of five years of exchange returns, calibrated against the realized volatility and realized divergence loss of our own production positions.
- A tick-by-tick event-replay engine that reconstructs full pool state from complete on-chain event history: 77.8 million swaps over two years for our two PancakeSwap pools, with fee accounting reproducing the fees actually collected by our production positions to within 0.97-1.00.
- Live paper-trading arms running candidate strategies forward, in parallel with production, on the same pools and the same prices.
The findings are negative, and they are the point of the paper. On the pools we studied, providing concentrated liquidity “for the fees” is a structurally negative-sum game against better-informed arbitrageurs:
- Pool-wide, 90 days. LPs collected $374k in fees while losing $662k to adverse selection, measured swap-by-swap by markout.
- Per dollar of volume. The LP fee of 0.67 bp is dominated by a realized toxicity of 1.2 bp: roughly half a basis point of every traded dollar flows from LPs to arbitrageurs.
- Over two years and 77.8 million swaps. ETH-USDC: $3.30M of LP fees against $6.41M of toxicity. cbBTC-USDC: $0.93M against $1.74M. The inequality holds in every one of 14 pre-registered market regimes: bull, bear and sideways alike.
- Concentration hurts. Toxic flow strikes precisely at the active tick where concentrated positions hold their capital.
- Emissions are the only positive cash flow. CAKE and AERO turn range selection from yield maximization into loss minimization while farming emissions. Under that objective the optimal geometry is the least sophisticated one we tested: a single wide (10-15%) lazy range that waits when the price leaves and shifts minimally instead of recentering.
- The emissions budget caps the opportunity. All our PancakeSwap farms together emit $1M per year for all participants combined, and at a simulated position size of $50k every strategy we measured, including the best one, loses to buy-and-hold once emissions are included. Measured capacity of a scalable, net-positive-versus-holding product on these pools is zero.
Our detailed measurements are all from Base, where our event data is complete. BTR’s internal R&D on other chains and venues, conducted before and alongside this campaign, reached the same qualitative conclusion: passive concentrated liquidity loses to informed flow. We do not regard the result as an artifact of one chain, though we quantify it only where we can measure it.
These results are worth publishing precisely because the opposite claim is the premise of a large commercial ecosystem. Our contributions are:
- A negative-sum measurement. Using complete on-chain event histories, we measure realized flow toxicity (markout) against LP fee income at the level of the whole pool, per market regime, and per position geometry. LP fee income is strictly dominated by adverse selection in 14/14 regimes over two years (Section 4). The result is model-free: it uses only recorded swaps and subsequent pool prices.
- An evaluator hierarchy and a calibration standard. We document a three-tier measurement stack (calibrated Monte-Carlo simulation historical event replay live forward arms) together with the calibration criterion that made us trust it: the replay engine must reproduce the fees actually collected by live production positions (0.97-1.00 achieved). We show a concrete failure mode of the simulation tier, fee credit assigned by range width while per-tick adverse selection stays invisible, that led it to recommend a geometry the real data inverts (Section 3).
- A geometry reversal. On replayed real events, a single wide lazy range dominates nested, center-weighted allocations in 14/14 regimes (pooled two-year advantage of +106 APR points on ETH-USDC and +68 on cbBTC-USDC against the previously locked nested configuration), with a monotone ordering, the less capital at the center, the better, that is the exact inverse of the simulation-tier optimum. The live paper arms subsequently reproduced this hierarchy forward (Section 6).
- A capacity ceiling. We combine the negative-sum fee result with the measured emissions budget to bound the size of a viable product: emissions of $1.02M/yr across all our PancakeSwap farms, dilution-adjusted net returns at $50k of to %/yr on ETH-USDC (emissions included), and a scalable net-positive capacity of $0 (Section 7).
Provenance labels. Every quantitative claim is tagged with one of three labels, and we never blur them:
- measured: computed from on-chain events or from the production database of the live bot (real dollars, real fills).
- simulated: produced by an evaluator replaying history or sampling paths, typically at a virtual position size of $50k.
- live: produced by the forward sandbox or its paper arms running in real time at deliberately small, sandbox-scale position sizes.
Position sizes viable live at sandbox scale (a few hundred dollars) are demonstrably not viable simulated at $50k, and this size dependence is itself one of the paper’s results.
The Uniswap v3 mechanics, the notation, and the formal definitions of divergence loss, LVR and markout are in Appendix A. A reader who knows them can go straight on.
2. Experimental infrastructure
Measurements come from three physically distinct layers, kept terminologically separate throughout. Measured data is sparse but incontrovertible; simulation covers years but is a single draw of history; live capital is the only forward-looking instrument but accumulates evidence slowly.
2.1 The production system
The ALM operates five concentrated-liquidity positions on Base: ETH-USDC, cbBTC-USDC and WETH-cbBTC on PancakeSwap V3 pools [5], and SOL-USDC and EURC-USDC on Aerodrome Slipstream pools [4] (unstaked). This assignment held for the bulk of the April-July 2026 campaign, and the emission rates of Section 7 were measured under it. Each pair is deliberately capitalized at sandbox scale, a few hundred dollars. That was a design decision, not a constraint: execution defects on a money path are discovered by losing real but small dollars, while all size-dependent conclusions are delegated to the simulated $50,000 layer, where the position’s own dilution of pool liquidity is modeled explicitly (Section 3.2).
Every 15 minutes the system snapshots each pool and position into an append-only database and evaluates a signal pipeline built on three market forces, each estimated on several timeframes (15-minute, hourly, four-hourly) and blended into a weighted composite:
- a volatility force based on the Parkinson high-low range estimator;
- a momentum force based on RSI;
- a trend force based on moving-average geometry.
The composite proposes a candidate range, width driven by the volatility force and asymmetry by the trend bias. A Nelder-Mead optimizer refines the range parameters online against a fitness functional combining expected fee income with an LVR-type adverse-selection penalty in the spirit of [2], the exact impermanent-loss expression of [1], a first-exit-time probability, and a Hausdorff-distance penalty against the incumbent range. Fee income inside the fitness is not assumed but supplied by the empirical fee program : realized fee APR as a function of range width, measured continuously per pool by the probes of Section 2.3.
A proposed rebalance executes only if it clears a battery of gates: projected gas cost against expected benefit, minimum range shift, signal confidence and breadth, and a cooldown since the last action. Most cycles end in hold. Execution is a withdraw-swap-mint-stake sequence with aggregator routing (LI.FI primary, KyberSwap fallback) and explicit on-chain confirmation of every transaction; a submitted hash is never trusted as a completed action. Rewards are harvested, valued and sold automatically above a $3 threshold; external flows are journaled separately so performance attribution is never contaminated. Benchmarks are computed on the same 15-minute grid: HODL and HODL+Yield.
2.2 The paper-trading fleet
A separate process runs shadow arms: virtual portfolios consuming the same 15-minute price and pool feed as production, applying a candidate strategy’s rebalancing logic, and maintaining the same NAV-versus-HODL accounting including modeled swap costs and gas. Because every arm sees identical prices at identical instants, arm-versus-arm comparisons are matched by construction; arm-versus-production comparisons are clipped to a common start before any delta is reported. Ten arms ran concurrently by the end of the campaign.
Table 1: The paper-trading fleet and the passive on-chain probes.
| Instrument | Role |
|---|---|
| Channels (variants of the production mathematics) | |
| v1 | patch channel; re-exports the production math verbatim |
| v2 | quant channel (stable-pair overrides); frozen concentrated reference |
| v3 | Renko-bar feed + boosted-tree regime classifier; decommissioned |
| v3fit | fitness realism: optimizer rebalance model aligned to live gates |
| Mechanism arms (single-lever A/B against a control) | |
| armA | width damper: volatility force floored off its low-vol knee |
| armB | vol-scaled rebalance threshold (calm pairs; stables excluded) |
| armC | unmodified control |
| Constant-mix family (post-tournament) | |
| cmix / cmix_ih / cmix_dln | nested ranges: equal-weight / inner-heavy / log-normal leg weights |
| cmix_1range | single-range constant mix |
| Lazy family (post-replay reversal) | |
| cmix_lazyshift | minimal shift after a patient delay |
| cmix_w15 | single wide lazy range |
| Passive on-chain probes | |
| width probe | fee capture at five widths simultaneously; the empirical fee program |
| passive arm | fixed range, never rebalanced (prototype of the lazy optimum) |
| out-of-range arm | recenters only on range exit; the passive/active contrast |
| overlay | static width vs. vol-timed width, same pool, identical instants |
| new-pools probe | fee-capture screening of newly listed pools before any capital |
2.3 On-chain fee-capture probes
Between the sandbox (real but tiny) and the simulator (large but virtual) sits a third instrument. A probe is a fictitious position of $50,000 notional whose bounds are registered off-chain; at each 15-minute cycle it reads the pool’s feeGrowthInside accumulators on-chain for its tick range and converts the increment into the fees the position would have collected. Ground truth for fee capture, no fee model involved, at zero capital cost.
Five probe programs ran: the width probe reading fee capture at five widths simultaneously; a passive ±10% arm that never rebalances, in hindsight the prototype of the lazy optimum of Section 6; an out-of-range arm recentering only on exit; a -overlay probe holding a static-width and a volatility-timed arm on the same pool at identical instants, which refuted volatility timing at zero capital cost; and a new-pools probe screening newly listed pools before any capital decision.
For venue comparisons, probes ran on up to four pools of the same pair at identical instants, removing regime effects. As an example of resolution, the EURC-USDC probe (661 samples, 12.87 days, 99-100% in-range) measured a fee-capture gradient from 8.29% APR at the tightest width to 0.78% at the widest. The probes’ blind spot is their window, days to weeks; they are calibration targets and venue arbiters, never strategy verdicts on their own.
3. The evaluator hierarchy
The choice of evaluator is the result. Strategy questions were answered differently, sometimes with opposite sign, by a calibrated Monte-Carlo engine and by an exact replay of on-chain events, and only the latter agreed with live capital.
3.1 Calibrated Monte-Carlo engine (secondary)
Price paths come from block bootstrap of real Binance hourly returns (43,793 hourly bars per symbol, roughly five years), preserving the heavy tails and volatility clustering a parametric GBM misses. Paths are drawn within four disjoint historical regimes (bull 2021, bear 2022, chop 2023, bull 2024+), so verdicts report per regime as well as pooled. On each path a candidate strategy is evolved and scored as fees minus impermanent loss minus costs, with an optional reward overlay. Fee income is modeled through the empirical density measured by the probes rather than assumed. A typical verdict consumes roughly path evaluations.
Table 2: Calibration gates of the Monte-Carlo engine.
| Gate | Criterion | Result |
|---|---|---|
| Volatility | bootstrap vol vs. realized Binance vol | 4/4 pairs, < 1% rel. error |
| IL consistency | engine IL vs. independent empirical IL | exact (zero difference) |
| IL realism | modeled IL vs. production-realized IL | 4/4 pairs, ratio 0.63-0.85 |
The IL-realism ratio of 0.63-0.85 means the model is conservative: reality is slightly worse for the LP.
Why it failed for geometry. The engine credits fee income through the width-level density but never debits adverse selection at the tick level. Toxic flow strikes precisely where the fees are earned, at the ticks adjacent to the current price, and its marginal cost grows faster there than the fee density. An evaluator blind to per-tick toxicity therefore systematically overvalues capital concentrated near the price. It recommended an inner-heavy weighting of a nested four-range structure; the event replay reversed that in 14 of 14 dated regimes, and the live A/B sided with the replay. The engine was demoted to secondary: useful for aggregate fee/IL trade-offs and synthetic stress, never used alone for a placement or geometry question.
3.2 Tick-level event replay (primary)
The second evaluator removes the price model entirely and reconstructs the pool itself. Using HyperSync as the extraction layer, we fetched every Swap, Mint and Burn event of the studied pools: a 90-day pilot (3 April to 2 July 2026) comprising 10.7M events (6,227,440 swaps on ETH-USDC, 2,503,896 on cbBTC-USDC, zero empty days), then a two-year extension totalling 77.8M swaps, with the full mint/burn history since pool creation, so the liquidity resident in every tick is known exactly at every block. Each historical swap is re-marched through the tick map against the actual competing liquidity of that moment, with a virtual position inserted into the reconstruction.
Definition 3.1 (Pro-rata fee attribution per tick crossed). For a swap consuming input across tick segments , with the input consumed in segment , the aggregate active liquidity recorded on-chain, the pool fee rate and the protocol fee share, a virtual position holding liquidity active in segment collects
The virtual position dilutes the pool it is measuring: its own liquidity appears in the denominator. This is what makes the $50,000 simulations honest at size: at that notional the virtual position represents 25-43% of in-range liquidity on our pools, and self-dilution is a first-order effect (Section 7.3).
Adverse selection is measured on the reconstruction by markout (Definition A.6): each swap’s LP inventory change, fee excluded, revalued at the pool price later.
Strategy backtests run at the same 15-minute cadence as production, with costs of $0.05 gas per rebalance plus $0.05 per range leg and 2 bps on re-swapped notional, in-sample/out-of-sample splits, and 14 pre-registered dated regimes. Geometry comparisons are matched-control: competing structures forced to identical recentering instants and identical swap costs.
Table 3: Validation of the event-replay evaluator.
| Check | Result |
|---|---|
| Liquidity walk vs. event-reported liquidity | exact on 6.2M swaps (pilot; max err. ); 100.0000% on 61M swaps (2y, ETH-USDC) |
| Reconstructed per-tick input vs. actual swap input | ratio 0.9999991-1.0000004 |
| Protocol fee share (measured from events) | 0.330 (venue documentation: 32-33%) |
| 90-day volume vs. independent aggregator | ratio 1.003 (both pools); median daily ratio 1.0015 |
| Pilot to 2y splice consistency | 1.00000 |
| Live probe cross-check (7.6 h window, 21 samples) | < 1% at wide widths; worst 15.4% at the finest widths |
| Production-collected fees vs. reconstruction (90 d) | 0.990 (ETH-USDC, 29 positions) / 0.969 (cbBTC-USDC, 49 positions) |
The last row is the decisive one: fees actually collected on-chain by production positions match the reconstruction to 0.990 and 0.969. With the exact liquidity walk and the external volume cross-check, this establishes the replay as a measurement instrument rather than a model.
Blind spot. The replay is the past: one sample of history, with no counterfactual. Within that limitation it is exact, and it is the primary evaluator for every placement and geometry question here.
3.3 Live forward A/B (final judge)
The slowest evaluator, and the only one that cannot overfit history: shadow arms running forward against production and buy-and-hold under identical accounting. Its role is adjudication. When the replay contradicted the Monte-Carlo engine on geometry, arms implementing both sides were deployed and left to accumulate a common window. At campaign end (13-17 days), the live ranking reproduced the two-year backtest ranking (Section 6.4). A 13-17 day window in a single regime does not prove a law; it does discriminate between two evaluators that disagree, which is all that was asked of it.
3.4 The resulting epistemic protocol
The campaign’s reversals were not a random walk: each stage used the best evaluator then available, and each reversal was caused by a specific, subsequently identified blind spot. The protocol we recommend for any empirical DeFi strategy work:
- No conclusion is locked on the word of a single evaluator. Locking requires two independent evaluators in agreement plus forward confirmation by live capital.
- Every verdict cites its evaluator and that evaluator’s known blind spot: the Monte-Carlo engine is blind to per-tick toxicity; the event replay is a single draw of the past; the probes are short-windowed; the live A/B is slow.
- Any evaluator making size-dependent claims must model the position’s own dilution (Definition 3.1); any evaluator making placement claims must price adverse selection at tick resolution.
4. Main result: fee income is dominated by adverse selection
On the Base pools we operated (PancakeSwap V3, 1 bp fee tier), fee income earned by the aggregate LP population is systematically smaller than the adverse-selection cost imposed by informed order flow: in every dated regime of a two-year window, at every horizon we measured, and for every range geometry we replayed.
All headline numbers here are measured from raw on-chain events, except where tagged simulated.
4.1 Markout: a realized, model-free measure of adverse selection
Rather than the model-implied LVR of [2], we measure its realized counterpart: markout (Definition A.6), evaluated on the pool’s own event stream. The horizon price is the price of the last pool swap with timestamp , derived from sqrtPriceX96. Because the revaluation uses the pool’s own subsequent price rather than an external oracle, the measure requires no model of the efficient price and no off-chain data. We evaluate at s and s; results are insensitive to the choice.
Two caveats:
- Trader-side markout measures the trader’s gain against the pool; any CEX hedging leg is invisible, so aggregate positive markout is an upper bound on arbitrageurs’ realized profit.
- Markout at short horizons and realized impermanent loss per rebalancing cycle are distinct estimators of the same cost; in our data they agree in ordering across all strategies and in magnitude to within 5-20%.
4.2 Pool-level accounting
Define the pool-level fee yield and toxicity per dollar of volume:
On a 1 bp fee tier with a measured 33% protocol share, bp by construction. The empirical question is .
Table 4: Pool-wide LP accounting, 90-day pilot (measured, all LPs aggregated, s).
| Pool | Swaps | LP fees | Toxicity | Net |
|---|---|---|---|---|
| ETH-USDC | 6,227,440 | $247k | $428k | −$181k |
| cbBTC-USDC | 2,503,896 | $127k | $234k | −$107k |
| Both pools | 8,731,336 | $374k | $662k | −$288k |
Per dollar traded the LP population collects bp and pays bp (ETH-USDC) to 1.25 bp (cbBTC-USDC): roughly half a basis point of every traded dollar transfers from LPs to informed takers. The toxicity is not driven by large trades: the most toxic notional bucket is $1k-$10k (−1.24 to −1.37 bp), and the worst 1% of swaps account for 26-32% of total negative markout, consistent with high-frequency arbitrage rather than institutional block flow.
4.3 The two-year replay
A 90-day window is a single market regime, so we extended the fetch to full history and replayed 77.8M swaps: 730 days for ETH-USDC, 654 for cbBTC-USDC (that pool’s entire life since September 2024).
Table 5: Pool-wide LP accounting over the full replay window (measured). “Gross + markout” adds back the 33% protocol share: the counterfactual in which LPs keep 100% of swap fees.
| Quantity | ETH-USDC (730 d) | cbBTC-USDC (654 d) |
|---|---|---|
| Volume | $49.29B | $13.86B |
| Swaps | 60,975,796 | 16,867,874 |
| LP fees | $3.30M | $0.93M |
| Markout ( s) | −$6.41M | −$1.74M |
| Markout ( s) | −$6.67M | −$1.74M |
| LP fees + markout | −$3.11M | −$0.81M |
| Gross fees + markout | −$1.48M | −$0.35M |
| (bp of volume) | 0.67 | 0.67 |
| (bp of volume) | 1.30 | 1.25 |
Proposition 4.1 (Negative-sum result). Over the full replay window, the aggregate LP population of both pools paid more in adverse selection than it collected in fees: for both pools and both horizons. The result is robust to the fee split: even crediting LPs with 100% of gross fees, the net remains negative. On these pools, fee-only liquidity provision is negative-sum against the arbitrage sector regardless of any conceivable fee-rebate policy.
This is a statement about the pool, not about our bot: it is computed from raw events with no strategy involved. We measure the aggregate; we do not measure the cross-section, so we cannot exclude a profitable minority of LPs funded by a losing majority.
4.4 Regime robustness: a pre-registered segmentation
A pooled two-year total could hide profitable sub-periods. To rule that out without inviting the opposite bias, gerrymandering boundaries until the desired result appears, we fixed the segmentation before running any strategy backtest:
- Boundaries come from a zigzag algorithm with a 22% reversal threshold on the daily first-swap pool price: local price extrema of the actual traded series, not hand-picked dates.
- Each leg is labeled mechanically: bull or bear by sign, otherwise chop.
- The boundary file was frozen on 2026-07-03, prior to the strategy replays, and partitions the window exactly.
| Pool | Dated regimes | Return range |
|---|---|---|
| ETH-USDC | 8 | −63% to +228% |
| cbBTC-USDC | 6 | −50% to +84% |
The inequality holds in 14 of 14 dated regimes: in the +228% ETH bull leg, in the −63% bear leg, and in every chop segment, at both horizons, and under the 100%-fee-rebate counterfactual. Adverse selection here is not a bear-market phenomenon.
The segmentation controls price regime. It does not supply 14 independent samples of the arbitrage environment: the 14 legs come from two co-moving majors on one chain, one fee tier, and, as Section 5 shows, one dominant arbitrage contract active on both pools.
4.5 Concentration makes it worse, not better
The intuitive response to thin fees is to concentrate. The first half of that intuition is correct and we measured it: at a one-hour horizon, 72.5% (ETH) to 81% (cbBTC) of all LP fees accrue within ±0.5% of the prevailing price, and fee density falls by a factor of between the center and the 0.5-1% band, and by beyond.
The second half fails because toxic flow strikes the same ticks, so marginal toxicity grows faster than marginal fee as the range narrows. On the 90-day window, a single ±0.5% position of $50k on ETH-USDC collects fees at an annualized $202k rate but absorbs toxicity at $345k/yr; the four-band nested geometry our optimizer had converged to absorbs $114k/yr against $64k/yr of fees. Concentration scales both legs of a losing trade.
Every geometry is negative, and net APR is monotone in center weight across the six shapes tested: the tight actively-recentered band collects 2.3-4x more fees than the wide band and still loses an order of magnitude more. Section 6 develops this.
4.6 The oracle bound: the money exists, the forecast does not
Is the negative sum a physical inevitability, or a prediction problem? A clairvoyant sidestepper, an LP allowed to see 72 hours ahead and step out exactly when the position is about to lose, beats buy-and-hold on 4 of 4 pairs (simulated, Monte-Carlo tier). The gap to the best causal strategy:
| Pair | Oracle gap vs. best causal strategy |
|---|---|
| ETH-USDC | +164 APR points |
| cbBTC-USDC | +129 APR points |
| WETH-cbBTC | +100 APR points |
| SOL-USDC | +351 APR points |
The wall is not arithmetic. Note the tier limitation: this experiment runs on the Monte-Carlo engine, which under-charges per-tick adverse selection (Section 3.1), so the gap is likely an overestimate. It was not re-run on the replay tier.
Every implementable forecaster we tested captured none of it:
- Forward volatility forecasts (EWMA and trend variants driving a gate): negative on 4 of 4 pairs; best cell −59 APR points versus doing nothing.
- A perfect regime label: an oracle knowing the true chop/trend label at every instant still loses versus HODL. Only the P&L timing itself pays.
- Reactive sizing: trailing Parkinson volatility widens the range after the move, too late; vol-scaled width lost −25.5 points pooled against fixed width, despite a genuine but unexploitable +8-point timing residue under a shuffled control.
Remark 4.2. This is what an information-asymmetry account predicts. Toxicity arrives with the arbitrageurs’ private signal, the CEX price a few hundred milliseconds ahead of the pool. The public-state functionals we tested, trailing volatility, regime labels and band occupancy, captured none of the oracle gap. Section 5 identifies who holds the signal.
5. Who wins: measuring the arbitrage ecosystem
If LPs pay bp of volume into the game, someone collects it. The markout pipeline attributes every swap to its sender, which lets us measure the winning side directly. All quantities are measured on the 90-day pilot; an independent adversarial re-implementation reproduced the totals to the dollar (ETH-USDC positive markout $284,864 vs. $284,863).
5.1 Actor identification and concentration
Aggregating trader-side markout by sender yields a sharply bimodal population: a small set of dedicated contracts with systematically positive markout, and a long tail of routers and retail flow with negative markout. Three checks support the dedicated-arbitrage-bot reading: all top-10 positive senders are contracts (bytecode 0.3-22.7kB, verified on-chain); each has exactly one distinct swap recipient over the entire 90 days, a fixed treasury, whereas a public router would fan out to thousands; and their activity is continuous, around the clock, at to swaps per actor.
Table 6: Concentration of gross positive markout ( s), 90-day window (measured).
| Quantity | ETH-USDC | cbBTC-USDC |
|---|---|---|
| Distinct actors | 1,507 | 720 |
| Winners (positive markout) | 569 | 292 |
| Gross positive markout | $285k | $113k |
| Top-1 share | 38.2% | 57.5% |
| Top-3 share | 58.8% | 74.9% |
| Top-10 share | 83.9% | 93.5% |
The distribution is winner-take-most. The same contract (0x83d5…90d5, 22.7kB of bytecode) is top-1 on both pools simultaneously and alone captures 43.6% of combined gross markout: $173.6k over 90 days ($704k/yr annualized) on 1.99M transactions, 22,121 per day at a mean notional of $1,100, a per-swap gross edge of $0.07-$0.11, and a swap-level win rate of . Not clairvoyance per trade, but a small positive drift harvested at enormous frequency. Concentration is stable across two disjoint half-windows: structural, not a regime artifact.
5.2 The latency race
Base produces blocks every 2 seconds with first-come-first-served ordering by the sequencer, so stale-price capture is a pure latency race: the first swap in a block trades against the pool state left by the previous block. The top-1 bot lands first in the block in 45.5% (ETH) to 59.0% (cbBTC) of its transactions, against a negligible baseline for an unprivileged sender given a median in-block index of 129, and its winning markout concentrates in those swaps. Priority fees are not the instrument (median 0.066 gwei, p99 1.87 gwei): the competition is propagation latency to the sequencer and sub-second CEX feeds, not the fee market.
5.3 The pie, net of costs
Sampling 420 transaction receipts across the top actors (plus 240 disjoint receipts by the independent verifier) gives the cost side: median $0.024 per transaction. Costs consume 6.6% of gross markout in the pooled sample but vary strongly by actor (15-60% for followers; 29% for the top-1 bot, which nets $472k/yr across both pools).
- The whole game is small. The net-of-gas arbitrage pie of both pools is $0.2-1.1M/yr, the same order as the LP emissions budget of Section 7, and a ceiling, since the CEX leg is uncounted.
- The marginal entrant is priced out by the hedge. The dominant bot’s gross edge of 1-1.5 bp of notional is smaller than the 1-2 bp CEX taker fee needed to hedge. A profitable operation requires maker-tier or zero-fee CEX execution or warehoused inventory risk: infrastructure and balance-sheet advantages rather than strategy advantages. An entrant without them projects to under $10k/yr.
- Retail funds the winners. Aggregation-router flow, the closest observable retail proxy, has negative aggregate markout on both pools.
Table 7: The arbitrage economy of the two pools, 90-day window annualized (measured; the CEX hedging leg is not observable on-chain and may reduce all net figures further).
| Quantity | Value |
|---|---|
| Gross positive markout, both pools | $1.61M/yr |
| of which arbitrage-bot class | $1.54M/yr |
| Net of gas, arbitrage-bot class | $0.20-1.10M/yr |
| Top-1 bot alone, net of gas | $0.47M/yr |
| Top-1 gross edge per notional | 1.5 bp (ETH) / 0.98 bp (cbBTC) |
| CEX taker fee (hedging benchmark) | 1-2 bp |
| Aggregation-router flow markout (retail proxy) | −$10.3k (ETH) / −$3.8k (cbBTC) per 90d |
This settles the obvious strategic alternative: pivoting from liquidity provision to arbitrage is unattractive on these numbers. The durable output is the markout pipeline itself, a general instrument for measuring the toxicity of any V3-style venue before deploying capital to it.
6. The loss-minimizing geometry
Given the structural negativity of fee income, geometry can no longer be chosen to maximize a profit, only to minimize a loss while the position farms emissions. Our answer reversed when we moved from the calibrated Monte-Carlo evaluator to the event-replay evaluator. The reversal is itself a result: it quantifies the model error of an evaluator blind to per-tick toxicity, a blind spot we expect most simulation-based LP backtests share.
6.1 The simulated optimum: a nested, inner-weighted ladder
A systematic sweep on the Monte-Carlo engine (4 recentering policies x 3 weight profiles x 8 widths x 4 pairs, multi-regime, out-of-sample) selected a nested ladder of four concentric ranges with half-widths , recentered only when price exits the outermost band. Recycling inner legs on their own exits multiplied impermanent loss by 4-7x even at zero gas. It also selected inner-heavy capital weights from tightest to widest leg, improving fee-only net APR by +12.9 percentage points over equal weights, positive on all four pairs (ETH +16.7, cbBTC +9.7, SOL +18.3, WETH-cbBTC +6.5 pp).
This survived roughly a dozen adversarial attacks and was provisionally locked as the production target. Two refutations supplied a tool that proved decisive later.
Definition 6.1 (Matched-control protocol). Two geometries are compared only under (i) identical recentering instants, (ii) identical outer reach (the envelope is the same), and (iii) identical gas and swap-cost accounting.
Any comparison violating (ii) is discarded as a width confound: a wider envelope mechanically reduces rebalancing frequency and impermanent loss, so an apparent gain of a “smarter” shape can be reproduced by a plain scale-up of the baseline. This confound alone explained the apparent high-quantile gain of multi-horizon bands: a +0.118 APR-fraction advantage vanished and reversed to −0.10 pooled once the baseline was rescaled to the same outer reach.
6.2 The event-replay reversal
The replay evaluator, calibrated to 0.97-1.00 of fees actually collected by production, was run on the same question over the full two-year history. Both runs are simulated (a virtual $50,000 LP), but the prices, competing liquidity and order flow are measured on-chain history, not a model.
Table 8: Two-year event replay, fee-only net APR of a $50,000 position, matched-control protocol. w05/w10 denote base half-widths such that the outer envelope is ±4%/±8%.
| Geometry | ETH w05 | ETH w10 | cbBTC w05 | cbBTC w10 |
|---|---|---|---|---|
| Single ±8w (lazy) | −164 | −93 | −93 | −55 |
| Nested, outer-heavy | −217 | −124 | −128 | −74 |
| Nested, equal weights | −242 | −138 | −144 | −83 |
| Nested, inner-heavy (lock) | −270 | −153 | −161 | −92 |
| Nested, super-inner | −287 | −162 | −172 | −97 |
| Tight-active (single ±w) | −1149 | −647 | −667 | −347 |
Three facts:
- A single wide range beats the nested ladder in 14/14 regimes, across bull, bear and sideways markets, two pools, two widths and both years. Pooled, the advantage is +106 pp of APR on ETH at w05 (+60 pp at w10) and +68/+38 pp on cbBTC. The largest advantage occurs in the deepest bear regime (+178 pp during a −63% drawdown). Gas does not explain it: both sides pay roughly $70 per two years against annual deltas of $500-$1000.
- Equal weights beat inner-heavy weights in 14/14 regimes (+28 pp ETH, +17 pp cbBTC pooled), the exact opposite of the Monte-Carlo lock, on a comparison where only the weights differ.
- The ordering is monotone in center concentration across the six geometries tested. “Stay glued to the price to farm fees” is the catastrophic extreme, at −347% to −1149%/yr.
The mechanism is Section 4.5’s: fees concentrate at the price, but toxic flow strikes the same ticks and its marginal cost grows faster. We then adopted the rule that no geometry conclusion is locked unless two independent evaluators agree and a live forward arm confirms.
6.3 Searching within the lazy family
A second sweep explored 23 configurations of the lazy single range: half-widths ±3% to ±15%, patience timers (6/24/72 h), distance hysteresis, minimal-shift versus full recentering, and static asymmetry, each with negative controls (randomized triggers, sign-shuffled skews, seed repetitions establishing a noise floor of to APR-fraction).
Three components survived:
- Width ±10-15% is the dominant lever (ETH +42 pp, cbBTC +38 pp versus the ±8% baseline, monotone across both years and pools). Fine-tuning within the band is indistinguishable from noise: w10 and w11 differ by 2.9 pp.
- Patience in general (+22/+31 pp). A randomized delay of matched frequency performs the same as the calibrated 24-hour trigger (ETH −35.6% random vs −41.9% timed, within the noise floor), so the precise timer carries no information. What pays is rebalancing rarely.
- Minimal shift instead of full recentering (+18 pp ETH, +4 pp cbBTC, positive in all four year-halves), but only combined with patience; without it, shifting is harmful on ETH-USDC (−19 pp, a rebalance-spam effect).
Everything else died under its control: the exact 24-hour value, static and reactive asymmetry, distance hysteresis, and sophisticated weight profiles. The best configuration (±10%, 24-h patience, minimal shift) achieves a fee-only net of −42%/yr on ETH at simulated $50,000 against −93%/yr for the ±8% immediate-full-recenter reference, and −15.5%/yr on cbBTC against −54.5%. Note the sign: even the best geometry found by exhaustive search on two years of real events remains negative before emissions.
These are properties of the strategy family we searched: single and nested constant-mix shapes under one fitness functional. Families we did not test, JIT and block-conditional provision, or externally hedged provision, are not covered.
6.4 Live forward confirmation
Ten shadow arms ran forward on the five production pairs with real prices, simulated execution costs and the same NAV-versus-HODL accounting as production. Because arms were seeded on different dates, the honest comparison column is production’s performance over each arm’s exact window.
Table 9: Live forward arms at campaign end, July 2026 (live, sandbox scale).
| Arm | Window (d) | vs B&H (%) | delta prod (pp) |
|---|---|---|---|
| cmix_w15, single ±15%, lazy | 13.0 | −0.30 | +0.24 |
| cmix_lazyshift, ±10%, patient, shift | 13.0 | −0.48 | +0.06 |
| cmix, nested, equal weights | 17.9 | −1.30 | −0.59 |
| armC | 17.9 | −1.77 | −1.06 |
| armB | 17.9 | −1.78 | −1.07 |
| cmix_1range, single, optimiser width | 16.8 | −1.80 | −1.34 |
| armA | 17.9 | −2.13 | −1.42 |
| cmix_ih, nested, inner-heavy (ex-lock) | 16.9 | −2.02 | −1.49 |
| cmix_dln, derived log-normal weights | 16.8 | −2.17 | −1.71 |
| v2, legacy engine, tight active | 67.5 | −8.44 | −7.51 |
The live ranking reproduces the replay ranking: the two wide lazy arms are the only ones beating production, everything concentrating at the center trails, and the legacy tight-active engine is eliminated (−7.5 pp below production over 67 days). cmix_1range (single range at the optimiser’s tighter width) loses while cmix_w15 (same idea at ±15%) wins, confirming that the lever is width, not range count.
The limits, plainly: 13 to 17 days cover a single market regime; +0.24 pp is not statistically significant, and nearly all of cmix_w15’s residual loss traces to a single pair; the ordering between the top two arms is noise. What the live data establishes is the hierarchy, obtained by an independent forward-looking evaluator, and that even the best arm remains negative against buy-and-hold.
7. Emissions as the product, and the capacity ceiling
If fee income is structurally negative and geometry can only minimize the loss, the only positive revenue stream is protocol emissions. We measure that stream, derive its dilution law, and compute the capacity of the resulting product, which turns out to be the binding constraint.
7.1 Emission mechanics and the concentration law
Proposition 7.1 (Emission accrual). Let be a position’s liquidity and its in-range time fraction. CAKE accrued is proportional to , at a per- rate common to all positions in the farm. For a fixed dollar value , since for a symmetric range of half-width to first order, emission APR scales as .
Verified empirically: across our three staked positions the predicted-to-realized ratio was 0.98-1.05, and a counter-check on four unrelated third-party positions with widths spanning 86 to 10,987 ticks found the identical per- accrual rate to six significant digits.
This raises an obvious temptation: concentrate to farm more emissions. It fails, because the adversarial loss of Section 6 grows faster than as the range narrows. Tightening from the lazy optimum destroys more in toxicity and impermanent loss than the extra emissions are worth: tight-active nets roughly −530 to −740%/yr on ETH even with elevated accrual. The concentration law reinforces the wide-lazy geometry.
7.2 Measured emission rates
Table 10: Measured forward CAKE emission rates on production positions (incremental on-chain accrual, not protocol-advertised APRs).
| Farm | APR (%/yr) | Half-width |
|---|---|---|
| ETH-USDC | 30.7 | ±9.3% |
| cbBTC-USDC | 16.3 | ±8.9% |
| WETH-cbBTC | 14.0 | ±6.0% |
7.3 The dilution law and the capacity ceiling
Emissions are a fixed budget shared among stakers, so any entrant dilutes the rate. With the farm’s annual emission budget in USD, the incumbent in-range staked capital and the entrant’s capital:
Both and were measured on-chain per farm. The total for our three PancakeSwap farms is $1.02M/yr (ETH $519k + cbBTC $176k + WETH-cbBTC $329k) for all participants combined, at CAKE spot at time of measurement. Capacity scales linearly with the emission token price, which we do not model.
Gross capacity is not the relevant number. Combining the emission overlay with the loss-minimizing geometry on the two-year replay gives the net result versus buy-and-hold at $50,000 per pair.
Table 11: Net performance versus buy-and-hold at $50,000, CAKE included, two-year replay, lazy ±10-11% geometry.
| Pair | Net vs B&H (%/yr) |
|---|---|
| ETH-USDC | −12 to −22 |
| cbBTC-USDC | −2 to −4 |
| WETH-cbBTC | ≈ −8 |
Only cbBTC-USDC comes near breakeven.
On farms of this size, the capacity of a net-positive-versus-holding product is $0 over the two-year window: no size exists at which the strategy both matters commercially and beats holding the tokens. The binding input is the emission budget, not the geometry.
Size is the crucial variable, and it cuts both ways. At $50,000 the simulated position already represents 25-43% of in-range liquidity and dilutes its own fees and emissions; that is a pool-cornering position in a thin pool, not a neutral “product size”. At sandbox scale, self-dilution vanishes and the live system floats around buy-and-hold plus emissions, which is what production measured. Per-pool capacity therefore sits somewhere between a few hundred dollars and $50k, and we did not locate the crossing point or measure aggregate capacity across pools.
7.4 The Aerodrome door
Aerodrome’s Slipstream pools are the natural candidate for a larger emission budget, measured with the same pipeline (5.87M swaps over 71-91 days across six pools, independently re-measured by a second agent).
(a) Fees are net-negative on all six pools. Realized fees per dollar of volume are smaller than the adverse-selection cost, so an unstaked LP loses on net, the same conclusion as on PancakeSwap. Between 58.6% and 81.7% of volume arrives as the first transaction of its block, the signature of arbitrage bots.
Table 12: Aerodrome Slipstream pools, 71-91-day windows. Emissions annualized from gauge NotifyReward events at AERO = $0.56.
| Pool | Pair | Fee (bp/vol) | Net LP (bp/vol) | Emissions ($/yr) |
|---|---|---|---|---|
| 0x4e96… | cbBTC-USDC | 0.75 | −0.45 | 4.35M |
| 0x160d… | cbBTC-USDC | 1.80 | −0.53 | 3.71M |
| ETH pool | ETH-USDC | 3.96 | −0.53 | 8.18M |
| SOL pool | SOL-USDC | 3.50 | −0.96 | 1.21M |
| 0xf39b… | EURC-USDC | 0.66 | −0.34 | 0.41M |
| 0xc5e5… | EURC-USDC | ~0.70 | −0.55 | 0 (gauge dead 16 Apr) |
(b) The dynamic fee is a snapshot trap. Slipstream’s fee() is dynamic; a spot read is not a parameter. On pool 0x4e96…, a snapshot of 2.1 bp (read at a spike; the fee cycled 30 to 150 to 30 pips within 16 seconds) overstated the realized fee of 0.75 bp by 2.8x, because 75.6% of volume executes at the base fee of 30 pips. A venue-migration candidate modeled on the snapshot ( better capture) was refuted by realized measurement (0.77x actual). What attracts volume to a pool, a cheaper effective fee favored by aggregator routing, is precisely what destroys fee capture.
(c) Emissions are 8-18x the CAKE budget, and this is the open counterexample to Section 7.3. The six pools distribute M/yr of AERO (the ETH pool alone, $8.2M/yr). Run the dilution law on that budget and the deployable capital at a given gross yield is roughly seventeen times larger. Slipstream imposes an exclusive-or: a staked position earns emissions only, an unstaked position earns fees only. Fees being net-negative everywhere, staking is the only rational mode, and the position becomes a purchase of emission flow against toxicity, i.e. exposure to the AERO price rather than a yield. Whether that trade clears was not concluded to this paper’s evidentiary standard: single window, no forward test, exact staked-share replay incomplete. The capacity conclusion of Section 7.3 is arithmetic on a $1.02M/yr budget and does not extend to farms of this size.
8. A catalog of negative results
A systematic record of what does not work. We tested roughly twenty distinct levers: prediction signals, hedges, range geometries, reward-timing policies, venue migrations, and one strategic pivot. Each had a stated protocol, a matched control where applicable, and an identified evaluator. Verdicts: dead = refuted with evidence, kept = survived controls, open = not concluded. “pts” denotes percentage points of annualized return at the $50k reference notional. Evaluators: E = event replay, G = calibrated Monte-Carlo, L = live paper arms, P = on-chain probes.
| Lever | Verdict | Key figure | Cause of death |
|---|---|---|---|
| Ranging tournament, 13 methods | dead* | constant-mix ranked #1 (−4.2 pts fee-only, +12.4 with rewards); live bot 7th of 12 (G) | concentrating geometries lose to impermanent loss |
| Volatility-gate / vol-forecast ML | dead | forward prediction fails 4/4 pairs; best variant −59 pts (G) | signal is reactive, not predictive: widens after the move |
| Perfect regime oracle (chop/trend) | dead | loses to HODL even with oracled labels (G) | toxicity arrives within regimes |
| Clairvoyant P&L oracle | open | beats HODL 4/4 pairs; gap +164 pts (ETH), +351 pts (SOL) (G) | variance diagnostic on the demoted evaluator; no shuffle control |
| Option hedge (long gamma) | dead | −48 pts at no-arbitrage premia (G) | premium costs about what it saves |
| Delta-hedge / AAVE-blend / regime-timing | dead | −90 to −120 pts; worst of tournament (G) | hedging costs compound the fee deficit |
| Multi-timescale bands | dead | −3.9 pts pooled vs. geometric at ; gain reproduced by a width scale-up (G) | width confound |
| Derived log-normal leg weights | dead | +1.1 pts pooled; loses on ETH (G) | indistinguishable from noise |
| Vol-scaled width | dead | −25.5 pts pooled, loses 4/4; timing residue +8.4 pts vs. shuffled control, unexploitable (G) | breathing costs more than the timing earns |
| Asymmetric / trend-skewed placement | dead | directional signal +0.3 pts pooled; random-sign shuffle equal (G) | width artifact |
| Wider outer leg (1.5x/2x/3x) | dead | −9.8 pts pooled, monotonically worse (G) | confirms the ladder within the GBM world |
| Threshold / asymmetric recentering | dead | win collapses under all-leg fee accounting (ETH +0.724 to +0.576) (G) | idle-leg fee over-credit |
| CAKE harvest timing | dead | timing delta vs. random control = 0.00; high thresholds: 41-47% of paths lose (G) | no exploitable timing |
| USD-USD stable-pool niche | dead | realized fee APR 1.35-5.4%, below the 6% lending hurdle | disguised lending |
| Exotic stable + peg-guard | dead | headline 15.3% was a 24 h snapshot; sustained medians 0.09-2.2% | snapshot artifact |
| Venue migration to Aerodrome | dead | modeled 3x capture gave 0.77x realized; fee() cycling 30-150-30 in 16 s (E, P) | dynamic fee: snapshot overstated 2.8x |
| Heatmap-suggested placement | dead | loses in-sample once look-ahead removed (E) | look-ahead |
| Tight active range | dead | 2.3-4x more fees, net −350 to −1150 pts over 2 y (E) | toxicity grows faster than capture |
| Concentrated live family (v2, arms A/B/C) | dead | v2 loses vs. HODL 5/5 and vs. production 5/5; −8.44% vs. B&H over 67.5 d (L) | loses in simulation and forward |
| Arbitrageur pivot | dead | one bot takes 44% of gross; net pie $0.2-1.1M/yr; CEX hedge erases the edge (E) | latency race, not a capital game |
| Inter-pair capital allocation | open | +5 pts net APR, SOL zeroed in 200/200 resamples (G) | demoted evaluator; resampling one history is not out-of-sample |
| Lazy-range width and patience | kept | width 10-15% (+42/+38 pts), patience (+22/+31 pts) (E) | both 2-4x the noise floor |
| Minimal shift | open | +18 pp ETH, +4 pp cbBTC (E) | cbBTC effect sits inside our own noise floor |
| Aerodrome staked net yield | open | emissions ≈ $17.9M/yr across six pools | staked-share replay incomplete; no forward test |
* All 13 methods dead except constant-mix; predates the event-replay reversal.
Two observations structure the catalog. Every intelligence-type lever (prediction, timing, hedging, sophisticated geometry) died under controls; the survivors are levers of simplicity. And a large fraction of the initially positive results were artifacts, which motivates the taxonomy below.
A note on multiplicity: the comparison count is far larger than the row count. Section 6.1’s sweep alone is 384 cells, Section 6.3 is 23 configurations, plus 13 tournament methods, 10 arms and 5 probe programs. Multiplicity biases toward false positives, so it threatens the constructive claims in this table, not the negative-sum result.
9. Methodological lessons: an artifact taxonomy for empirical DeFi
The campaign’s most transferable output. Each artifact produced a spurious positive result before being caught by a specific guard.
| Artifact | How it manifests | Guard |
|---|---|---|
| Width confound | Any change that incidentally widens the envelope inherits a mechanical benefit (fewer recenterings, less gas, less realized IL) that masquerades as a strategy edge. The multi-timescale band thesis “won” at (+11.8 pts) until the control was rescaled to the same outer reach, after which it lost everywhere. | Never compare structures of different envelope width; rescale the control to matched outer reach. |
| Idle-leg fee over-credit | A multi-leg simulator tracking occupancy only for the innermost leg silently credits fees to legs the price has exited. Threshold and asymmetric recentering policies appeared to win solely through this channel; under all-leg accounting the ordering reversed. | Fee accrual gated on per-leg, per-period in-range occupancy. |
| Snapshot metrics | A stable pool advertised 15.3% fee APR that was two spike days out of ninety-nine (sustained median 0.09%); the dynamic Slipstream fee() getter overstated realized fees by 2.8x. | Realized quantities only: sustained medians over multi-week windows, fee income reconstructed from fee-growth deltas, never an instantaneous getter times a headline volume. |
| Look-ahead | A fee-density heatmap computed over a window suggests placements optimal for that window; deployed as a strategy, the tilt lost even in-sample once leakage was removed. The allocation study’s “all-in on the winning pair” was survivor bias, killed by resampling. | Pre-registered boundaries, IS/OOS splits, shuffle and random-sign controls, machine-verifiable no-look-ahead checks. |
| Unit errors | The most expensive analysis error of the project: net_apr fields are fractions (−0.42 means −42%/yr). One relayed headline was wrong purely on units; corrected, nothing beats buy-and-hold at $50k. | Re-derive any load-bearing number from raw data with one independent control division; rankings survive unit errors, levels do not. |
| Counter freshness | A long-running fetch died silently while its progress file was read as evidence of progress for nine days. | A progress counter is evidence only when paired with its modification time and a verified live process. |
| Locking rule | A calibrated evaluator that passes all its gates can still confidently lock a wrong answer. Adversarial verification caught a stale headline figure, a double-counted position, and two sub-claims that failed on-chain re-reading. | No conclusion locked on one evaluator: two independent evaluators in agreement plus forward confirmation, every verdict citing its evaluator’s blind spot. |
This taxonomy applies well beyond our pools: DeFi pipelines are unusually exposed to snapshot getters, dynamic parameters, unit-convention drift, and simulators well calibrated on aggregates yet blind to per-tick adverse selection.
10. Conclusion
Can Uniswap-v3-style concentrated liquidity provision be made profitable for the provider? On the pools we measured, no:
- Fee income is dominated by adverse selection in all 14 dated regimes of a two-year window, and the sign is robust to crediting LPs 100% of gross fees.
- Concentration aggravates the deficit across the six geometries we tested.
- Prediction of adverse flow failed under every signal we tested.
- The loss-minimizing geometry among those tested is the least sophisticated: a single wide (±10-15%) lazy range shifting minimally after patient delays.
- On farms of the size we operate ($1.02M/yr combined emissions), capacity net-positive against buy-and-hold at commercially meaningful size is zero.
The measurement pipeline that established this cost a fraction of what deploying the apparent optimizations of Section 8 would have lost.
What this does not establish
The scope of the claims is the scope of the data: one chain (Base), two venues, two pools measured at full standard, one fee tier, one two-year window, one sandbox-scale live deployment. Specifically:
- Flow composition is the axis that bounds the claim. On these pools the retail proxy is 2.4% (ETH) and 1.6% (cbBTC) of measured toxicity: these are arbitrage-dominated venues. Arbitrage dominance is not rare, and it is measurable ex ante without any of this machinery: between 58.6% and 81.7% of volume on the six Slipstream pools of Section 7.4 arrives as the first transaction of its block, and the two PancakeSwap pools carry the same signature. Any pool whose flow is majority-arbitrage by that test is covered by the result. We have not measured a pool with materially retail flow, and the markout pipeline exists precisely so such pools can be tested before capital is deployed. A reader wanting to know which side a given pool sits on should run the first-in-block share, not assume either answer.
- No uncertainty quantification. We report point estimates throughout. The margin is large (λ ≈ 2η), and an independent estimator agrees to within 5-20%, but we publish no confidence intervals and the 14 regimes are contiguous segments of two correlated price paths, not 14 independent draws.
- Levels at size are not identified. A $50,000 virtual position is 25-43% of in-range liquidity, inserted against an unchanged event stream. Arbitrage trade sizes are endogenous to depth, so the ratio λ/η survives but the levels in Tables 8 and 11, and therefore the capacity figure derived from them, are counterfactual.
- Untested strategy families. JIT and block-conditional provision, single-sided range orders, and externally hedged provision are not covered. Full-range provision was not run, so the geometry result reports a direction, not a located optimum.
- Larger emission budgets are not covered. Section 7.4 measures a budget 18x larger on the adjacent venue and does not conclude it.
Future work: pricing the flow
If a passive maker quoting a static fee against informed flow must lose, the designer’s remaining degree of freedom is not the maker’s geometry but the venue’s mechanism. Two families of remedy exist and we measure neither: pricing remedies, which charge for the information gap, and ordering remedies (batch auctions, MEV taxes, encrypted mempools), which remove the latency race that Section 5.2 identifies as the actual mechanism. Uniswap v4 hooks implement several pricing remedies inside a Uniswap-style venue without a new AMM.
Our own direction is BTR’s AIMM, an adaptive inventory market maker quoting around an explicit fair-value mark, widening with quote staleness and push latency rather than with trailing realized volatility, which Section 4.6 shows is reactive, and skewing with inventory rather than waiting for arbitrage to rebalance it. This paper measures no property of that design. The toxicity pipeline built here is what such a venue would need in order to price informed flow, which is the honest extent of the connection.
Competing interests. All authors are affiliated with BTR, which is building an AMM that competes with the venues measured here. A negative result on CLMM liquidity provision is commercially favourable to the authors. No claim about AIMM above is supported by measurement in this paper.
References
- M. Echenim, E. Gobet, and A.-C. Maurice, “Thorough mathematical modelling and analysis of Uniswap v3,” HAL preprint hal-04214315, version 2, 2023 (revised 2025). Available: hal.science
- J. Milionis, C. C. Moallemi, T. Roughgarden, and A. L. Zhang, “Automated market making and loss-versus-rebalancing,” arXiv preprint arXiv:2208.06046, 2022.
- H. Adams, N. Zinsmeister, M. Salem, R. Keefer, and D. Robinson, “Uniswap v3 core,” Uniswap Labs whitepaper, March 2021. Available: uniswap.org
- Aerodrome Finance, “Aerodrome documentation: Slipstream concentrated liquidity and gauge emissions,” 2024-2026. Available: aerodrome.finance
- PancakeSwap, “PancakeSwap v3 documentation: concentrated liquidity and MasterChef v3 farming,” 2023-2026. Available: docs.pancakeswap.finance
Data and code availability
The complete evidence base (the results ledger with every lever above, its protocol, controls and raw outputs; the event-replay pipeline and its calibration checks; the two-year backtest JSONs; the Monte-Carlo engine; probe time series; and the production and paper-arm databases) is maintained in the project repository, together with an audit report in which the twenty load-bearing figures cited here were re-derived from raw sources. That audit is internal, not third-party. Public pool addresses appear in the data registry; private operational details are withheld.
Appendix A: mechanics and notation
For a complete mathematical treatment of Uniswap v3 we refer to Echenim, Gobet and Maurice [1], whose notation we follow (writing for the square-root price), and to the protocol whitepaper [3].
A.1 Pools, price, and the tick grid
A pool trades a base (risky) token against a quote token , at spot price in units of per unit of . For volatile pairs such as WETH-cbBTC the quote token is itself risky; dollar values then come through the quote token’s own dollar price. Throughout, denotes the square-root price, the variable in which all v3 formulas are affine. Prices live on a geometric grid: tick corresponds to , so adjacent ticks are one basis point apart. Each pool constrains range endpoints to multiples of a tick spacing ( for the 0.01% pools traded here; up to on other tiers). A pool charges a fee rate on every swap input; a fraction may be diverted to the protocol rather than to LPs (we measure ).
A.2 Concentrated liquidity and position value
Definition A.1 (Position). A position is a triple with liquidity on the price range . Writing , , the token amounts at spot price are
where is the projection of onto . The projection encodes three regimes in one formula: below the range the position holds only ; above it, only ; in between, a mix that continuously sells as the price rises.
Proposition A.2 (Position value). The mark-to-market value in quote units, , is
is continuously differentiable, concave, and strictly concave on with .
Concavity is the structural fact behind everything in the paper: a concave payoff is short convexity, so the position systematically loses value under price movement relative to holding its instantaneous inventory. The concentration factor grows like as the range narrows; Section 4 shows the toxicity borne per dollar grows faster.
A.3 Fee accounting
Uniswap v3 credits fees through global accumulators. A position’s claimable fees are
where is the pool’s feeGrowthInside accumulator restricted to . Fee income is proportional to the position’s share of liquidity at the executed ticks, and is diluted one-for-one by competing in-range liquidity including the position’s own contribution. The equation is directly observable on-chain, which is what lets the replay engine be validated against fees actually collected, and what the probes of Section 2.3 exploit.
Both venues also pay emissions: CAKE on PancakeSwap v3, AERO on Aerodrome Slipstream. On Slipstream the two income streams are mutually exclusive: a gauge-staked position earns emissions only, its swap fees redirected to protocol voters [4], which invalidates any naive “fees plus emissions” sum on that venue.
A.4 Divergence loss and LVR
Definition A.3 (Divergence loss). For a position minted at and held to with no intervening liquidity change, with the value at of the initial inventory held unchanged,
Proposition A.4 (Closed form; Echenim et al. [1]). With the projection of onto ,
Path-independent: it depends only on endpoint prices. When both endpoints are in range it reduces to . Implemented verbatim in our production accounting.
Definition A.5 (LVR). With the external price a diffusion of instantaneous volatility ,
For the v3 position this rate equals while in range, and vanishes out of range. LVR prices adverse selection through an assumed volatility: right for simulation, but it cannot tell us what arbitrageurs actually extracted from a specific pool.
A.5 Markout
Definition A.6 (Markout). For swap at time , in which LPs receive the signed inventory change excluding the fee, and horizon :
We aggregate LP flow P&L over a window as , with . Flow is toxic when .
is an overlapping-window estimator of realized adverse selection, not an accounting identity: on these pools roughly 240 swaps fall inside a 300 s horizon, so each revaluation embeds subsequent flow. It is sign-robust and its level agrees with realized per-cycle impermanent loss to within 5-20% (Remark A.7). It is neither the LP’s realized P&L against a benchmark, which is DL, nor the arbitrageur’s gross gain, which would require the external price.
Remark A.7 (Relation between the three measures). DL is an accounting identity against buy-and-hold, exact per position. LVR is the model-implied adverse-selection cost, used inside the Monte-Carlo tier. Markout is the realized adverse-selection cost, computable only from full event history, and is the quantity in which the central result is stated. Rankings agree; levels differ by 5-20%. They are not interchangeable, and every number is labeled with the measure that produced it.
A.6 Notation summary
| Symbol | Meaning |
|---|---|
| , | base (risky) and quote token of a pool |
| , | spot price ( per ) and square-root price |
| , | tick grid and pool tick spacing |
| , | pool fee rate; protocol share of fees |
| position: liquidity and range bounds | |
| , ; | sqrt-range bounds; projection of onto |
| , ; | position amounts; position value |
in-range fee-growth accumulator (feeGrowthInside) | |
| , | divergence loss vs. buy-and-hold; loss-versus-rebalancing |
| , | markout at horizon ; LP flow P&L estimator |
| , | LP fee yield and toxicity per dollar of volume (bp) |