LVR Internalization Engine

RIPTIDE

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).

Start MakingStart Trading

0xRIPTIDE::LVR_INTERNALIZED · engine online

RBASE / RQUOTEMechanism 1 · volatility-indexed feeMechanism 2 · Dutch rebalance· sealed ·Base SepoliaThe Graph1inch Aqua + SwapVM· sealed ·RBASE / RQUOTEMechanism 1 · volatility-indexed feeMechanism 2 · Dutch rebalance· sealed ·Base SepoliaThe Graph1inch Aqua + SwapVM· sealed ·

The leak

Pools bleed to whoever is fastest

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

Keep the leak in the market

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.

Who it is for

01

Makers

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.

02

Takers

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.

03

Resolvers

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

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_MATH §2LVR_PAPER.pdf · arXiv:2208.06046

(σ,P)=σ2P22x(P)\ell(\sigma,P)=\frac{\sigma^{2}P^{2}}{2}\,\lvert x^{*\prime}(P)\rvertV=σ28\frac{\ell}{V}=\frac{\sigma^{2}}{8}LPTrebalancingT=feesT0T(σt,Pt)dtLP_{T}-\text{rebalancing}_{T}=\text{fees}_{T}-\int_{0}^{T}\ell(\sigma_{t},P_{t})\,dt

K3 · Mechanism 1

Break-even fee

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.

LVR_MATH §4FEESvLVR.pdf · arXiv:2305.14604

ϕ=σ2/8λQ\phi^{\ast}=\frac{\sigma^{2}/8}{\lambda_{Q}}feeTarget=clamp(ϕ107,  feeMin,  feeMax)\mathrm{feeTarget}=\mathrm{clamp}(\phi^{\ast}\cdot 10^{7},\;\mathrm{feeMin},\;\mathrm{feeMax})

K2 · Mechanism 2

β-split surplus

Surplus S is extra input versus the stale curve. The rebate is floored so the maker keeps at least βS. Sims use β = 0.95.

LVR_MATH §5DIAMOND_LVR.pdf · arXiv:2210.10601

S=executedInstaleInS=\mathrm{executedIn}-\mathrm{staleIn}payToResolver=(1β)S\mathrm{payToResolver}=\left\lfloor(1-\beta)\,S\right\rfloorretainToLP=SpayToResolverβS\mathrm{retainToLP}=S-\mathrm{payToResolver}\ge\beta SE[LVR to arbitrageurs](1β)L\mathbb{E}[\text{LVR to arbitrageurs}]\le(1-\beta)\,L

New wallet? Fund it first. RBASE and RQUOTE are mintable demo tokens on Base Sepolia — mint both from the Demo token faucet under “Demo tools” on Swap, Make or Resolve. Swapping, shipping and settling all move these tokens and will not go through without a balance.

Markets
0
Indexed volume
0.00
Cumulative β-recaptured
0.0000

Mechanism 1

Volatility-Indexed Fee

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

Dutch Rebalance + β-Split

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 Self-Reinforcing Loop

The auction’s revealed price feeds the volatility oracle, recalibrating the fee controller. A paid-for, incentive-compatible observation — reducing dependence on external oracles.

01

Resolver wins auction at market-revealed price

02

Price fed to RiptideVolatilityOracle

03

Volatility estimate (σ) updates via EWMA

04

Fee controller recalibrates for next swap

Ordinary AMM vs RIPTIDE
Ordinary AMMRIPTIDE
Fixed or manually tuned feeVolatility-indexed fee targeting LVR break-even
Arbitrage value leaks to mempool searchersAuctioned on-chain; LP retains β of surplus
Passive LP hopes fees > lossesActive strategy: charge + recapture structural cost
Custody vault or LP sharesSelf-custody in Aqua; one explicit strategy per maker
Forks the VM to add behaviourOne custom instruction via SwapVM’s own _instructions() override — no fork
Relies on external oracle aloneSelf-reinforcing loop from auction-revealed prices

How It Works

01

Configure

Choose a market, set fee and auction policies, and preview the volatility-indexed fee curve.

02

Ship

Approve tokens, publish the Aqua-backed strategy, and register both swap and rebalance legs.

03

Earn

Collect dynamic fees that track LVR while the rebalance auction returns surplus to your balance.

04

Iterate

Monitor controller telemetry, dock when needed, and republish with tuned parameters.

RIPTIDE · Base Sepolia

Built on 1inch Aqua + SwapVM · Indexed by The Graph