K1 · cost
Instantaneous LVR
A CPMM leaks σ²/8 of pool value per unit time to informed flow — 1/8 per year at 100% vol, before any fee.
LVR Internalization Engine
RIPTIDE internalizes LVR: a volatility-indexed fee (Mechanism 1) plus a resolver rebalancing auction that returns β of the surplus to LPs (Mechanism 2), where the auction's revealed price re-calibrates the fee (the loop).
0xRIPTIDE::LVR_INTERNALIZED · engine online
The leak
A normal AMM does not know the street price. When the real market jumps, your pool still quotes the old number for a few blocks. Faster traders buy the cheap side and sell it elsewhere. You posted the inventory. They kept the difference. That money never comes back to the pool.
The fix
RIPTIDE charges a swap fee that rises when prices are wild, so quoting is not free during a storm. When the pool drifts, it auctions the right to push it back. Most of that leftover value returns to the liquidity that was sitting there — instead of leaving with a searcher.
You ship a strategy and keep custody in Aqua. Fees track how risky it is to quote, and most of a rebalance's surplus stays in your balance.
You swap against live pools. The fee is that day's turbulence — not a padded constant that overcharges on quiet days and undercharges when it matters.
You get paid to close the gap. Winning the Dutch auction is a posted job with a known split, not a private race in the mempool.
The identities
Fees must cover LVR; the rest is recaptured
An LP beats a frictionless rebalancing portfolio if and only if fees exceed accumulated LVR. Mechanism 1 raises fees with σ. Mechanism 2 recaptures a fraction β. The identities below are the on-chain finals.
K1 · cost
A CPMM leaks σ²/8 of pool value per unit time to informed flow — 1/8 per year at 100% vol, before any fee.
K3 · Mechanism 1
Break-even is the LVR rate divided by the maker’s flow-intensity set-point, then clamped into fee units. The provider steps toward that target — it is not a guessed constant.
K2 · Mechanism 2
Surplus S is extra input versus the stale curve. The rebate is floored so the maker keeps at least βS. Sims use β = 0.95.
Mechanism 1
The swap fee is not a fixed number. It automatically adjusts with realized volatility so that expected fee revenue tracks expected LVR — the structural cost of adverse selection.
Mechanism 2
When external price gaps, RIPTIDE auctions the right to re-price the pool. Resolvers compete in a declining-price auction; the LP retains ≥β of the surplus. β is set by the maker — the three live pools run 0.90, 0.95 and 0.97.
The auction’s revealed price feeds the volatility oracle, recalibrating the fee controller. A paid-for, incentive-compatible observation — reducing dependence on external oracles.
Resolver wins auction at market-revealed price
Price fed to RiptideVolatilityOracle
Volatility estimate (σ) updates via EWMA
Fee controller recalibrates for next swap
| Ordinary AMM | RIPTIDE |
|---|---|
| Fixed or manually tuned fee | Volatility-indexed fee targeting LVR break-even |
| Arbitrage value leaks to mempool searchers | Auctioned on-chain; LP retains β of surplus |
| Passive LP hopes fees > losses | Active strategy: charge + recapture structural cost |
| Custody vault or LP shares | Self-custody in Aqua; one explicit strategy per maker |
| Forks the VM to add behaviour | One custom instruction via SwapVM’s own _instructions() override — no fork |
| Relies on external oracle alone | Self-reinforcing loop from auction-revealed prices |
How It Works
Choose a market, set fee and auction policies, and preview the volatility-indexed fee curve.
Approve tokens, publish the Aqua-backed strategy, and register both swap and rebalance legs.
Collect dynamic fees that track LVR while the rebalance auction returns surplus to your balance.
Monitor controller telemetry, dock when needed, and republish with tuned parameters.