Emergent capital reallocation via range residuals in concentrated liquidity portfolios
Phase 1: Mechanism discovery and empirical validation
Author: Gancor (K. Ryan) Date: March 2026 Status: Phase 1 - 738-event dataset, 41.9 hours
Key findings
- Capital flows between independent CL positions at zero additional cost as a side effect of shared dust balances
- The flow is driven by range geometry, not swap friction (ρ = 0.976, 0.35% median price impact)
- Aggregate analysis gives the wrong answer; a Simpson’s paradox hides which predictors actually matter
- Acts as automatic IL mitigation during market stress, with no oracle or parameters
- Token graph topology determines where capital can and cannot flow. A new portfolio design primitive
- On ve(3,3) protocols, pool emission changes due to epoch transitions appear to steer which positions absorb and which donate
Abstract
The Geometric Siphon is a previously unidentified mechanism in concentrated liquidity portfolio management. When multiple CL positions share a depositor-level dust balance and are autonomously rebalanced, the geometric mismatch between consecutive tick ranges produces token surpluses and deficits that flow through the shared pool: capital transfers between independent positions, without oracles, governance or additional gas cost.
On-chain decomposition of 92 rebalance transactions on Aerodrome (Base) shows the flow is driven by range geometry, not swap friction: the range residual () almost perfectly predicts per-event capital flow (, rank correlation, ). Swap verification across all 738 events confirms 73% required an on-chain swap, but actual swap price impact is just 0.35% at median. The mechanism’s friction cost is well under 1%.
Stratified analysis across five groups (738 events, 1,192 rebalances, 22 positions, 41.9 hours) uncovers a Simpson’s paradox: aggregate statistics suggest volatility () negatively predicts flow magnitude (), but this reverses when portfolios are analysed individually. Two predictors, position-to-pool ratio () and , are complementary. dominates on diverse portfolios (); dominates on homogeneous ones (). Which predictor matters depends on how varied the portfolio’s composition is. Aggregate analysis cannot see this.
Five-phase analysis (stress → recovery → rally → post-rally → calm) shows the siphon acts as automatic, proportional IL mitigation during market stress, extracting capital from volatile positions into stable dust without any external trigger. Roles are not fixed: tokens that donate during sell-offs absorb during rallies. But token network topology constrains the flow: positions can only transfer capital through shared tokens. cbETH/cbBTC lost thousands to internal geometric leakage because cbETH had no siphon partner. The distinction between leakage and productive siphon flow is essential for portfolio design.
The mechanism requires cross-pool diversity: two identical positions in the same pool produce only oscillating transfers with net dissipation. On ve(3,3) protocols, preliminary evidence suggests emission governance steers siphon role assignment, creating a capital allocation channel that vault-per-pool architectures cannot access.
1. Introduction
1.1 The problem
Concentrated liquidity needs active management. Every major CL automation platform (Gamma Strategies, Arrakis Finance, Beefy CLM) uses a vault-per-pool architecture: one vault, one token pair. Leftover tokens from rebalances are reinvested into the same position.
Gamma/Arrakis: dustBalance[vault] → per-pool isolation
PM V6: dustBalance[depositor][token] → cross-pool sharing
Position Manager V6 (PM V6), a CL management contract on Base, takes a different approach. Leftover tokens sit in dustBalance[depositor][token], keyed by depositor address and token address, with no pool dimension. Every position under one depositor draws from the same balance per token.
This was a capital efficiency decision implemented to prevent dust leakage, but it unintentionally created cross-position capital flow.
1.2 Discovery
On 2 March 2026, a USDC/CHECK position had grown ~65% while a USDC/ODOS position in the same group had shrunk ~60%. They had no direct connection. CHECK was consuming USDC residuals left behind by ODOS rebalances through the shared dust pool.
The first assumption was slippage. On-chain decomposition proved otherwise: the transfers are driven almost entirely by the geometric mismatch between consecutive tick ranges. We term this the Geometric Siphon.
1.3 Scope of data
| Dataset | Events | Rebalances | Positions | Period |
|---|---|---|---|---|
| Diffusion log (instrumented) | 738 | — | 21 | 41.9h |
| On-chain decomposition () | 92 | — | 21 | 5.4h |
| Swap verification (tx receipts) | 738 | — | 21 | 41.9h |
| Rebalance counts (total) | — | 1,192 | 22 | 41.9h |
| Darwin experiment | 233 | 329 | 5 | 41.9h |
| TVL Control experiment | 161 | 164 | 5 | 41.9h |
Data completeness: σ 100%, V/L 98.6%, Δw 98.2%, old ticks 99.3%.
1.4 Contributions
- Capital flows between CL positions at zero marginal cost. The decomposition confirms it is geometric (). Median swap price impact is 0.35%; 27% of events required no swap at all.
- A Simpson’s paradox in CL portfolio analysis. Aggregate statistics give the wrong sign for volatility’s effect. and are complementary predictors: each dominates when the other lacks variance across positions.
- Automatic IL mitigation without oracles. During stress, volatile positions shed capital into stable dust proportionally, with no trigger. Roles reverse across market regimes.
- Token topology as a design primitive. Positions can only siphon capital through shared tokens. Isolated tokens create geometric leakage with only the originating position open for reallocation (§6.4). This reframes how CL portfolios should be constructed.
- Same-pool positions waste the mechanism. Two identical positions produce oscillating transfers with no net reallocation. The same slippage cost as a single position, but it does not produce useful cross-pool capital flow.
- Emission rate correlates with role assignment. Before the epoch flip, higher-emission positions absorbed and lower-emission positions donated. Three of four positions with post-flip data reversed roles at the epoch boundary, though the concurrent regime change makes it impossible to isolate the cause.
2. Related work
Adams et al. (2021) introduced concentrated liquidity in Uniswap V3. Milionis et al. (2022a) developed optimal rebalancing strategies for single CL positions (when to rebalance based on time or price thresholds), which is the theoretical basis for the individual rebalances that produce siphon flows. Their framework assumes positions are independent. We study what happens when they are not.
Willetts and Harrington (2026, arXiv:2602.22069) analyse QuantAMM rebalancing costs on Base CL positions: the per-rebalance transaction costs that the siphon redistributes across positions through shared dust.
Balancer (Martinelli and Mushegian, 2019) rebalances via its AMM invariant within a single pool. Set Protocol uses oracle-triggered swaps. Yearn deploys capital across strategist-managed yield strategies. All require either a shared pool invariant, external price feeds or manual intervention. The siphon needs none of these. The cross-position capital movement is a consequence of how the dust balance is keyed, at zero additional cost.
Maverick Protocol (Baxley, 2023) introduced directional liquidity modes where bins follow price movement automatically. Its “Mode Both” is the closest analogue to siphon-driven repositioning: continuous, automatic and no oracle. Maverick operates within a single position. The siphon operates across independent positions in different pools.
Milionis et al. (2022b) introduced LVR (Loss-Versus-Rebalancing) for quantifying AMM costs. Each rebalance in our system incurs LVR as swap slippage. Our decomposition (§4) shows this friction is small relative to the geometric residual that drives the capital flow.
3. Mechanism
3.1 The rebalance cycle
graph TD subgraph "Position A rebalances" A1[Withdraw from old range] --> A2[Surplus tokens enter dust pool] end subgraph "Shared dust pool" A2 --> DUST["dustBalance[depositor][token]"] DUST --> B1 end subgraph "Position B rebalances" B1[Shortfall drawn from dust pool] --> B2[Mint into new range] end style DUST fill:#4ecdc4,color:#000
PM V6’s rebalanceCL performs an atomic cycle:
- Withdraw: unstake NFT from gauge, decrease liquidity to zero, collect accumulated fees and AERO rewards
- Swap (optional): in-pool swap to adjust token ratio for the new range
- Mint: create new position at new tick range, drawing tokens from the dust balance
- Stake: deposit new NFT into gauge
Leftover tokens after minting enter dustBalance[depositor][token]. Shortfalls are drawn from the same balance.
3.2 The geometric residual
Consider a CL position with liquidity in tick range at current tick (where ). The position holds:
where . When the position is rebalanced from range to range :
- Withdrawal yields at current tick
- Deposit requires at current tick
- Residual per token:
The USD-valued geometric residual:
This residual is purely geometric, determined by the old and new range boundaries relative to the current tick, the liquidity amount and token prices. No swap has occurred.
An optional swap corrects token ratio imbalances, incurring slippage . The net dust flow:
When , surplus enters the shared pool (donation). When , the shortfall is drawn from it (absorption). Capital flows between positions through the shared pool.
3.3 Conservation
Across all positions sharing a dust pool:
where is the cumulative flow for position and is residual dust in the contract. The siphon redistributes value between positions, but each redistribution loses a small amount to swap slippage, which exits to AMM LPs. Price appreciation comes from the underlying markets; the siphon redirects where gains and losses land across the portfolio. The dust pool buffers the flow: when a token pumps hard, large geometric residuals push surplus into dust; when positions absorb heavily, it drains.
4. Empirical decomposition: D ≈ ΔR
Swap event logs from 92 on-chain rebalance transactions were decoded to extract actual swap amounts, converted to USD at concurrent token prices.
4.1 Core result
| Metric | Value | N |
|---|---|---|
| Spearman ρ(ΔR, D) | 0.976 | 72 |
| Spearman | 0.949 | 72 |
| Events with swap | 72 | — |
| Events without swap | 20 | — |
| Mean slippage S | $1.49 | 72 |
| Median slippage S | $0.41 | 72 |
| Maximum slippage S | $21.48 | 72 |
| Median swap size | $102 | 72 |
| Median swap price impact | 0.35% | 72 |
4.2 Slippage as fraction of flow
For events with > $0.50 ():
| Percentile | |
|---|---|
| 10th | 0.001 |
| 25th | 0.004 |
| 50th (median) | 0.042 |
| 75th | 0.136 |
| 90th | 0.560 |
In the 72 swap events, the geometric residual explains the vast majority of the flow: . Slippage is 4.2% of absolute dust flow () at median, but this overstates the real friction. Measured against the swap amount itself, the median price impact is 0.35% ($0.41 on a median $102 swap) and the mean is 0.99%. The denominator matters: swaps are larger than dust flows because they rebalance token ratios, not just the residual. The fat right tail (p90 = 0.56) comes from thin pools where price impact overwhelms position value. In 8 of 72 (11%), slippage exceeded the geometric residual and inverted the flow direction, all in pools with TVL below $100K. Twenty events in the 92-event subset required no swap at all (pure tick recentring, mean flow $0.58).
Checking transaction receipts across all 738 events: 536 (73%) had on-chain swaps and 202 (27%) did not. Swap events account for 97% of gross dollar flow. Extrapolating the mean $1.49 slippage per swap to all 536 verified swap events gives estimated total slippage of ~$800 over 41.9 hours, or ~$220 using the median. Against $36K TVL, this is 0.6–2.2%. The mechanism’s actual friction cost, measured as swap price impact, is well under 1%.
5. Experimental design
Twenty-two positions across five groups ran autonomously on PM V6 from 3–5 March 2026. Two groups (Darwin and TVL Control) were controlled experiments with uniform policies. The other three were observational portfolios with varied parameters that provided cross-validation data.
| Group | Positions | Pool examples | Policy | Design |
|---|---|---|---|---|
| 🧬 Darwin | 5 | USDC/DIEM, USDC/CARV, FLOCK/USDC (all CL100) | C=3, 15 min, 200–1200 ticks | 30× TVL spread, all share USDC |
| 🔬 TVL Control | 5 | tBTC/USDC, MOCA/USDC, RAVE/USDC (all CL200) | C=3, 15 min, 400–2400 ticks | 1.7× TVL spread, 183× emission spread |
| 👑 Main | 7 | USDC/CHECK CL100, cbETH/cbBTC CL10, USDC/cbBTC CL1 | Mixed: C=2–4, 2–30 min | Diverse: CL1/CL10/CL100 mix, 5 shared tokens |
| ⚗️ Ganclaw | 3 | SOL/USDC CL10, UP/USDC CL100, USDC/CLAWD CL200 | Mixed: C=3–4, 15–30 min | Similar across positions |
| 🏦 CL1 | 2 | EURC/USDC CL1 × 2 (isolated group) | C=2, 1 min, 30–60 ticks | Same-pool oscillation test |
Darwin (🧬) Five positions, $500 each, deployed 2 March. Pool TVL spread 30× ($24K–$728K). Every position shares USDC, forming a fully connected siphon graph with 10 pairwise connections. Identical rebalance policies isolate TVL as the only variable.
TVL Control (🔬) Five positions deployed 3 March. Pool TVL deliberately matched ($190K–$323K, 1.7× spread) while emission rates span 183× (7–1,279 AERO/day). Identical rebalance policies isolate emissions as the experimental variable. An Aerodrome epoch flip occurred 5 March 00:00 UTC, providing 11.7 hours of post-flip data.
Main (👑) Seven pre-existing positions spanning CL1, CL10 and CL100 tick spacings with five shared tokens. Policies varied by category. Not a controlled experiment but provides the most diverse siphon topology for predictive analysis (§6.2) and the largest absolute flows.
Ganclaw (⚗️) Three positions at similar ratios but different volatility profiles. Tests whether σ dominates as a predictor when variance is low.
CL1 (🏦) Two positions in the same EURC/USDC CL1 pool, isolated in a separate address. Tests same-pool oscillation dynamics.
Data collection termination
Data collection ended 5 March at 09:51 UTC when a contract vulnerability (missing pool validation in
depositUnstaked()) was exploited, corrupting depositor mappings for all 22 positions and halting autonomous rebalancing. All logged data is complete and unaffected. The exploit is documented separately.
5.1 Hypotheses tested
| ID | Hypothesis | Result |
|---|---|---|
| H1 | Higher rebalance frequency → more absorption | Rejected |
| H2 | Capital flows toward highest APR | Rejected |
| H3 | Flow follows price momentum | Rejected () |
| H4 | Magnitude is regime-dependent | Strongly supported |
| H5 | Epoch flips restructure roles | Partially supported (3/4 with post-flip data flipped) |
| H6 | Matched TVL produces symmetrical flows | Rejected |
6. Results
6.1 Final position snapshots
Darwin (41.9h, 329 rebalances):
| Position | Events | (cumD) | Pool TVL | Role |
|---|---|---|---|---|
| USDC/CHECK CL100 🧬 | 84 | +$114.43 | $728K | Absorber |
| ZORA/USDC CL100 | 27 | +$113.80 | $144K | Absorber |
| USDC/CARV CL100 | 15 | −$93.15 | $304K | Donor |
| USDC/DIEM CL100 | 60 | −$188.81 | $24K | Donor |
| FLOCK/USDC CL100 | 47 | −$223.64 | $175K | Donor |
TVL Control (41.9h, 164 rebalances):
| Position | Events | Pool TVL | Role | |
|---|---|---|---|---|
| tBTC/USDC CL200 | 31 | +$86.80 | $323K | Absorber |
| ACU/USDC CL200 | 41 | +$30.96 | $195K | Absorber |
| AVAIL/USDC CL200 | 29 | −$43.85 | $190K | Donor |
| RAVE/USDC CL200 | 23 | −$178.84 | $204K | Major donor |
| MOCA/USDC CL200 | 37 | −$299.75 | $237K | Catastrophic donor |
Cross-Group Summary (all groups):
| Group | Positions | Events | Key Finding | |
|---|---|---|---|---|
| 👑 Main | 6 active | 183 | −$1,492.94 | cbETH/cbBTC (−$2,413) dominates; ODOS (+$1,396, closed) masked losses |
| 🧬 Darwin | 5 | 233 | −$277.37 | CHECK/ZORA absorb; FLOCK/DIEM donate |
| 🔬 TVL Control | 5 | 161 | −$404.68 | MOCA catastrophic donor despite matched TVL |
| ⚗️ Ganclaw | 3 | 105 | −$251.01 | SOL only absorber (+$54); CLAWD largest donor (−$263) |
| 🏦 CL1 | 2 | 56 | −$349.77 | Same-pool oscillation; slippage without reallocation benefit |
All five groups show negative terminal cumD values. However, these include pre-logging flows; the 738 logged events themselves sum to +$286 across all groups (Main alone was +$1,372 during the observed period). Per-event conservation holds: geometric residuals redistribute within the portfolio while slippage exits as fees and to Aerodrome voters. The total slippage cost is small: $0.41 per swap event at median, an estimated $220–$800 total over the full period against $36K TVL. The large cumD values are driven by geometric mismatches.
6.2 Stratified predictive analysis
The aggregate picture is misleading. Pooling all 545 events (with > $0.50) gives for and for , suggesting volatility reduces flow size. It does not. This is a Simpson’s paradox.
Stratified by portfolio group, the picture inverts:
| Group | N | → | → | ||
|---|---|---|---|---|---|
| 👑 Main | 114 | 0.562 ★ | −0.362 ★ | −0.308 ★ | −0.002 |
| ⚗️ Ganclaw | 75 | 0.054 | 0.575 ★ | 0.503 ★ | 0.509 ★ |
| 🏦 CL1 | 55 | 0.210 | −0.082 | −0.045 | 0.054 |
| 🧬 Darwin | 178 | 0.171 | 0.086 | 0.091 | 0.084 |
| 🔬 TVL Control | 123 | 0.370 ★ | −0.321 ★ | −0.142 | −0.115 |
★ denotes .
and are complementary. Each one dominates exactly when the other lacks cross-position variance.
Main mixes CL1 (V/L ≈ 8%), CL10 (V/L ≈ 5%), and CL100 (V/L ≈ 0.3%), a 25× spread. V/L captures the signal (ρ = 0.562); σ is noise. Ganclaw has three positions at near-identical V/L, so the predictor goes flat (ρ = 0.054). σ, which does vary across the three pools, takes over (ρ = 0.575).
Why does aggregate σ have the wrong sign? High-σ pools tend to be thin. Thin pools have small positions, producing smaller dollar flows despite larger relative mismatches. The confound is pool size. Within a group of similar-sized positions (Ganclaw), the paradox disappears.
Anyone analysing CL portfolio dynamics from aggregate data will get the wrong answer.
6.3 Regime analysis
The 41.9-hour observation period spans five distinct market phases:
| Phase | Period | Events | Net $ | Key Character |
|---|---|---|---|---|
| P1: Stress | 03 Mar 17:49 – 04 Mar 06:00 UTC | 217 | −$196 | ETH $2,215→$1,984 |
| P2: Recovery | 04 Mar 06:00 – 12:00 UTC | 137 | +$960 | Vol subsides |
| P3: Rally | 04 Mar 12:00 – 20:45 UTC | 170 | −$240 | BTC → $71.4K |
| P4: Post-Rally | 04 Mar 20:45 – 05 Mar 04:34 UTC | 147 | −$323 | Consolidation |
| P5: Calm | 05 Mar 04:34 – 11:46 UTC | 66 | +$86 | Morning calm; diverse portfolios stabilise |
Per-Group Phase Flows:
| Group | P1 Net | P2 Net | P3 Net | P4 Net | P5 Net |
|---|---|---|---|---|---|
| 👑 Main | +$107 | +$1,205 | −$125 | −$36 | +$221 |
| 🧬 Darwin | −$38 | +$4 | −$16 | −$0 | −$4 |
| 🔬 TVL Control | −$193 | −$130 | +$4 | −$8 | −$78 |
| ⚗️ Ganclaw | −$100 | −$48 | −$11 | −$24 | −$3 |
| 🏦 CL1 | +$27 | −$71 | −$92 | −$256 | −$51 |
Four things stand out:
-
Roles flip with the market. The P3 rally reshuffled donors and absorbers entirely. Pumping tokens (CHECK, FLOCK) donated; stabilising tokens (DIEM, cbETH/cbBTC, EURC/USDC) absorbed. The geometry is direction-agnostic: bigger price moves create bigger range mismatches either way.
-
Diverse portfolios recover; homogeneous ones don’t. Main’s +$1,205 P2 recovery was driven by its mix of CL1/CL10/CL100 generating asymmetric flows as volatility dropped. Subsequent phases partially reversed it (P3: −$125, P4: −$36) before a late +$221 recovery in P5 as CHECK reverted to absorber. Ganclaw and Darwin, with less varied composition, showed no comparable recovery.
-
Calm markets expose degeneracy. CL1 same-pool oscillation dominated P4 (−$256, 79% of phase total). In calm conditions both positions rebalance frequently with minimal geometric differences, so the mechanism churns. Darwin went flat (−$0), reaching a self-sizing equilibrium: positions had shrunk enough that their per-event flows became negligible.
-
Self-sizing is a buffer. FLOCK recovered +$52 during P2 calm (cumD: −$297 → −$245) as reduced capital produced smaller mismatches. Then two P3 events (−$81 and −$132) drove it to a −$371 peak. It recovered steadily through P4 (+$76 to −$295) and P5 (+$71 to −$224 terminal). Two volatile events undid what five hours of calm had built.
6.4 Token topology
The siphon operates through shared token dust pools. Capital can only flow between positions that share at least one token. Main’s token graph has three disconnected siphon clusters:
graph LR LINK ---|WETH| VIRTUAL VIRTUAL ---|WETH| VVV CHECK ---|USDC| cbBTC-CL1 cbETH/cbBTC ---|cbBTC| cbBTC-CL1 cbETH["cbETH ❌ isolated"] style cbETH fill:#ff6b6b,color:#fff
A WETH hub (LINK ↔ VIRTUAL ↔ VVV), a USDC hub (CHECK, cbBTC-CL1; ODOS closed, KRWQ dormant), and a single cbBTC bridge connecting cbETH/cbBTC to cbBTC-CL1.
cbETH has zero siphon partners. No other Main position holds cbETH. The cbETH side of cbETH/cbBTC is completely isolated from the siphon network. Its −$2,413.49 cumulative flow is internal geometric leakage, with no cross-position donation channel available. The position lost value due to correlated-pair ratio volatility on tight CL10 spacing (cbETH/cbBTC ratio moved only 0.5%, but CL10’s 0.1% per tick amplifies this into large mismatches). The adaptive engine never widened ( for all 26 events) because absolute ETH/BTC volatilities appeared moderate.
Compare that to Darwin and TVL Control, where every position shares USDC: fully connected star topologies with 10 pairwise siphon paths each. These are true siphon portfolios: capital can flow from any position to any other.
Token selection is a design primitive. A USDC-hub portfolio is a fully connected reallocation network. Isolated tokens create dead-end dust pools with no outflow path. The portfolio’s token graph is its reallocation topology.
6.5 Boundary cases
Same-pool oscillation (🏦 CL1): Two EURC/USDC CL1 positions produced oscillating flows (terminal cumD: −$144.88 and −$204.89) with consecutive events showing opposite signs 62% of the time (28/45). Whoever rebalances first captures or deposits dust, then the second one adjusts. Net effect is pure dissipation with comparable slippage to a single combined position, but none of it produces useful cross-pool reallocation. P4 dissipation (−$256) confirms this accelerates during calm conditions.
Self-sizing (FLOCK trajectory): As a position shrinks, its per-event flows shrink proportionally, creating a natural dampener. FLOCK’s full trajectory (§6.3, point 4) shows this works during calm phases but is overwhelmed by two large events during volatility.
Correlated pair leakage (cbETH/cbBTC): Correlated pairs on tight spacing (CL10) suffer geometric leakage when ratio volatility exceeds the adaptive engine’s detection threshold. cbETH/cbBTC donated −$2,413.49 over 26 events (58% donation rate) with only 0.5% ratio movement. CL10 amplifies tiny movements into large mismatches. This is the riskiest configuration in the system.
6.6 Epoch-flip observations
The epoch flipped 5 March 00:00 UTC, approximately 10 hours before experiment termination, providing 11.7 hours of post-flip data (154 events). TVL Control per-event averages before and after:
| Position | Pre-Flip $/event | Post-Flip $/event | Role Change |
|---|---|---|---|
| RAVE | −$11.45 | +$2.65 | Donor → Absorber ✅ |
| ACU | +$3.52 | −$5.93 | Absorber → Donor ✅ |
| AVAIL | −$2.20 | +$0.65 | Donor → Absorber ✅ |
| MOCA | −$8.93 | −$5.09 | Donor (reduced) |
| tBTC | +$2.80 | — | No post-flip data |
Three of four positions with post-epoch data flipped roles (tBTC’s last rebalance was 3 hours before the epoch boundary).
Pre-flip, role assignment correlated with emission rate: the two absorbers (ACU: 1,279 AERO/day, tBTC: 329) had the highest emissions; the two worst donors (MOCA: 17, RAVE: 46) had the lowest.
On-chain gauge snapshots captured emission rates 1.5 hours before and 15 minutes after the epoch flip:
| Position | Pre AERO/day | Post AERO/day | Change | Pre role | Post role |
|---|---|---|---|---|---|
| ACU | 1,279 | 1,238 | −3% | Absorber | Donor |
| RAVE | 46 | 404 | +771% | Donor | Absorber |
| AVAIL | 7 | 31 | +364% | Donor | Absorber |
| MOCA | 17 | 64 | +271% | Donor | Donor (reduced) |
| tBTC | 329 | 434 | +32% | Absorber | No data |
RAVE’s emissions jumped 9× and it flipped from the group’s worst donor to an absorber. AVAIL went 5× and also flipped. Both support the emission-driven thesis. MOCA received 4× more emissions but remained a donor, though at reduced magnitude (−$8.93 → −$5.09/event).
ACU is the outlier: its emissions barely changed (−3%) yet it flipped from absorber to donor. This flip is better explained by the concurrent P4→P5 regime transition than by emission changes.
Caveats: The epoch flip coincided with the P4→P5 regime change. RAVE and AVAIL’s flips align with both explanations (emission increase and calmer conditions). ACU’s flip, despite stable emissions, suggests the regime change alone can drive role reversals. With 6–12 post-flip events per position, the sample cannot statistically separate the two effects. The pre-flip correlation between emission rank and role is clear; whether emissions cause the role assignment needs more epochs to answer.
7. Discussion
7.1 Comparison to existing rebalancing mechanisms
| Property | Balancer | Set Protocol | Yearn | Geometric Siphon |
|---|---|---|---|---|
| Scope | One pool (AMM) | Multiple assets | Single asset, multi-strategy | Independent CL pools |
| Marginal cost | IL / LVR | Gas + slippage | Gas + slippage | Zero beyond rebalance |
| Oracle | No (endogenous) | Yes (Chainlink) | Implicit | No |
| Governance | No (invariant) | Yes (manager) | Yes (strategist) | No |
| Direction | Mean-reverting | Target weights | Strategy-driven | Stochastic |
| Efficiency | Variable | Variable | Variable | >99% (0.35% swap impact) |
No existing mechanism achieves cross-asset rebalancing at zero marginal cost without oracles or governance. The siphon does, as a side effect of rebalances that happen anyway, with 0.35% median price impact on the swaps that drive it. The trade-off is control: direction is stochastic and tails are fat (cbETH/cbBTC lost $2,413 in 26 events).
In traditional finance, rebalancing towards target weight costs 0.5–2% annually in transaction fees, requires timing decisions and creates taxable events. CPPI (constant-proportion portfolio insurance) provides automatic drawdown protection but needs explicit floor parameters and can gap through the floor in fast crashes. Risk parity strategies need continuous model-driven rebalancing with leverage. The siphon achieves elements of all three: (a) continuous rebalancing, (b) automatic drawdown extraction, (c) risk-proportional capital movement — at zero marginal cost, with no parameters, models or decisions. TradFi mechanisms target explicit allocations; the siphon’s direction is emergent and stochastic.
7.2 Why existing CL managers don’t exhibit this
Gamma, Arrakis and Beefy all use vault-per-pool architecture. Residual tokens stay within the vault for the same pair. The siphon condition can be met at two architectural layers, with different implications.
Position manager layer (current). PM V6 stores residuals in dustBalance[depositor][token], one layer above the pool contracts. This works on existing Slipstream (or any V3-style) pools without modifications to the AMM, factory or governance. The siphon emerges from a storage layout choice in a peripheral contract.
Pool layer (V4 hooks). Uniswap V4 (Adams et al., 2024) introduces a singleton contract with flash accounting and hook callbacks. A V4 hook managing multiple CL positions with shared token balances would produce the same mechanism at the pool level. However, V4’s core contracts are under the Business Source License until June 2027, and cross-pool hook coordination (a single hook contract managing positions across multiple pools, settling net balances atomically) is architecturally non-trivial.
The position manager approach is simpler: it is deployable now, on any V3-fork CL protocol. Any protocol that moves from vault-per-pool to depositor-level multi-pool management will encounter this mechanism whether they build for it or not. It is an emergent feature of this form of dust accounting.
7.3 ve(3,3) emission governance
On ve(3,3) protocols (Aerodrome, Velodrome), gauge emissions are directed by veToken voters on a weekly epoch cycle. The TVL Control data suggests that emission rates correlate with siphon roles: before the epoch flip, the two highest-emission positions (ACU: 1,279 AERO/day, tBTC: 329) were absorbers while the two lowest (MOCA: 17, RAVE: 46) were donors. After the flip, three of four positions with data reversed roles, and the two biggest emission jumps (RAVE +771%, AVAIL +364%) both went from donor to absorber.
If that relationship holds at scale, it opens a governance channel that pool-level hook architectures cannot replicate. veToken voters already steer which pools receive emissions. With the siphon, they would also be steering how capital redistributes across a connected portfolio with the right topology: higher emissions attract more rebalancing activity, generating larger dust flows, which creates absorption pressure. Capital would reallocate not through explicit rebalancing decisions but as a side effect of the emission-driven rebalance frequency. In the TVL Control data, RAVE’s per-event flow swung from −$11.45 (donor) to +$2.65 (absorber) when its emissions jumped from 46 to 404 AERO/day.
This has several practical implications:
- Bribe markets gain a second effect. In ve(3,3), bribers pay veToken voters to direct gauge votes toward a specific pool. Voters earn the pool’s swap fees plus the bribe; LPs earn the AERO emissions those votes generate. The briber’s goal is deeper liquidity, tighter spreads and more volume. With the siphon, a briber also buys capital reallocation: higher emissions drive more frequent rebalances, which produce larger geometric residuals, which pull dust from other positions in any connected portfolio. The briber’s spend now buys both liquidity (via emissions) and capital gravity (via the siphon).
- Portfolio construction becomes emission-aware. Weight toward pools with growing emissions, because the siphon will feed those positions at the expense of shrinking ones.
- veToken utility deepens. Gauge voting already controls fee distribution and emission direction. Adding capital allocation steering to this creates a tighter flywheel: more veToken utility → more locking → higher protocol control → better emission allocation → stronger siphon portfolios.
These implications are extrapolated from 33 post-flip events across 5 positions. The emission–role correlation is clear in this sample but the causal mechanism requires longer observation across multiple epoch cycles. What the data does establish is that the siphon interacts with emission governance in a way that vault-per-pool architectures cannot.
7.4 IL mitigation
During market stress, each rebalance extracts a slice of value from the volatile position and parks it as stable dust (typically USDC). This has four properties that no existing rebalancing system matches:
- Proportional: higher volatility means bigger mismatches, which means faster extraction.
- Gradual: each rebalance takes a fraction rather than being a binary stop-loss.
- Position-preserving: the position stays open and earning emissions on reduced capital.
- Self-calibrating: extraction accelerates as conditions worsen. No parameter tuning required.
Friction is low (§4): estimated total slippage of $220–$800 over the observation period on $36K TVL. The mitigation is not permanent; subsequent regime changes can and do reverse prior recoveries (Main’s +$1,205 P2 recovery was partially reversed over P3/P4). But as an automatic buffer during drawdowns, it has no current equivalent.
7.5 Design implications
- Circuit breakers on (leakage ratio): pause rebalancing if single-event hits .
- Connected token graphs with concentration awareness: share tokens across positions in a connected graph for effective siphon flow. Pair volatile positions with deep-pool positions for recovery dynamics, but watch individual flows; diversity also exposes portfolios to isolated-token leakage (§6.4).
- monitoring: the strongest predictor on diverse portfolios. Position sizing relative to pool depth is actionable.
- TVL floors ($200K+): thin pools create slippage inversion risk.
- Avoid same-pool duplication: multiple positions in one pool create pointless oscillation with the same slippage cost.
- Correlated-pair spacing limits: correlated pairs need ratio-volatility-aware width minimums on tight tick spacing (CL1, CL10).
8. Limitations
- Single multi-phase regime. All data comes from one 41.9-hour window covering stress through calm. Extended calm or euphoria are unobserved.
- 41.9-hour observation window. Five distinct phases and stable group-level findings, but no data on behaviour across full market cycles.
- No isolated-dust control. A true control would be identical positions with per-position dust accounting.
- Stablecoin-pair bias. Most positions are USDC-paired. Non-stablecoin pair interactions are limited.
- Single DEX, single chain. Generalisability to Uniswap V3, Velodrome or other CL implementations is untested.
- Adaptive engine feedback loop. PM V6’s adaptive engine creates a circular dependency: determines , which determines swap size, which determines . The variables being measured also influence the inputs.
- Full decomposition limited to N=92. The decomposition covers only the first 5.4 hours. Transaction receipt confirmed swap presence across all 738 events (536 with swap, 202 without), but the full vs decomposition was only computed for the initial subset.
9. Conclusion
Keying dust balances by depositor and token rather than by pool creates a mechanism that passively reallocates capital across independent CL positions.
Six findings from 738 events across 22 positions and 5 groups, 41.9 hours:
-
Capital flow is driven by range geometry, not swap friction. ; actual swap price impact is 0.35% at median. Transaction verification across all 738 events confirms the geometric residual dominates.
-
and are complementary predictors. Each dominates when the other has low cross-position variance: reaches on diverse portfolios; reaches on homogeneous groups.
-
Roles are regime-dependent. Five-phase analysis shows pumping tokens donate and stabilising tokens absorb. The same position can cycle through multiple roles as market conditions shift.
-
Token topology determines siphon connectivity. cbETH/cbBTC’s −$2,413.49 is primarily internal geometric leakage because cbETH has no siphon partner, so the flow has nowhere productive to go. Effective siphon portfolios need connected token graphs.
-
Same-pool positions waste the mechanism. Two identical EURC/USDC CL1 positions produced oscillating flows with no net reallocation. Slippage is comparable to a single combined position, but none of it drives useful cross-pool capital flow.
-
Emission rate correlates with role assignment. Before the epoch flip, emission rank predicted role (higher emissions = absorber). Three of four positions with post-flip data reversed roles at the epoch boundary, though the concurrent regime change makes it impossible to isolate the cause.
The siphon costs nothing beyond the rebalances already happening, needs no oracle, mitigates IL automatically and loses just 0.35% per swap to friction. These properties make it a candidate primitive for intentional CL portfolio design.
Phase 2 will deploy fresh positions with intentional topology design, extend observation across multiple Aerodrome epoch cycles, and directly test whether emission governance causally steers siphon role assignment.
References
Adams, H., Zinsmeister, N., Salem, M., Keefer, R. and Robinson, D. (2021). Uniswap v3 Core. Uniswap Labs Technical Whitepaper.
Adams, H., Zinsmeister, N. and Robinson, D. (2024). Uniswap v4 Core. Uniswap Labs Technical Whitepaper.
Baxley, B. (2023). Maverick Protocol: Dynamic Distribution AMM. Maverick Protocol Documentation.
Martinelli, F. and Mushegian, N. (2019). A non-custodial portfolio manager, liquidity provider, and price sensor. Balancer Labs Whitepaper.
Milionis, J., Moallemi, C.C., Roughgarden, T. and Zhang, A.L. (2022a). Strategic liquidity provision in Uniswap v3. arXiv:2106.12033v5.
Milionis, J., Moallemi, C.C., Roughgarden, T. and Zhang, A.L. (2022b). Automated market making and loss-versus-rebalancing. arXiv:2208.06046.
Willetts, M. and Harrington, S. (2026). QuantAMM: Empirical analysis of rebalancing costs in Base concentrated liquidity positions. arXiv:2602.22069.
Appendix A: PM V6 contract interface
// Position Manager V6 (Base)
mapping(address => mapping(address => uint256)) public dustBalance;
function rebalanceCL(
address pool, uint256 tokenId,
int24 newTickLower, int24 newTickUpper,
uint256 amount0Min, uint256 amount1Min,
uint256 deadline, SwapParams calldata swapParams
) external returns (uint256 newTokenId);