Read this first. Everything else in these docs sits on top of three pillars. Once you hold them, the rest of the protocol — the math, the lifecycle, the vaults, the data moat — reads as elaboration. The three are: (1) an on-chain published fair value (the truth), (2) the cvAMM pool (the floor of liquidity, always on), and (3) market-maker competition (the ceiling of price). One settlement core sits underneath both rails.
421614) — that lets a Uniswap v3 LP pay a fixed upfront premium to transfer the in-range impermanent-loss risk of a specific position to an underwriter. The underwriter posts collateral and is paid for taking the risk; at expiry the protocol pays the LP , trustlessly, from that collateral. This is an in-range convexity hedge, not “IL insurance” — and the cap is load-bearing.
The three pillars are how the protocol is organized. They map to three questions any market must answer:
What is it worth?
Pillar 1 — published FairValue. An exact, closed-form on-chain price for the claim. The truth both rails are measured against.
Is there always a price?
Pillar 2 — the cvAMM. A pooled, always-on, signature-free underwriter. The floor of liquidity — no cold start.
Can it get cheaper?
Pillar 3 — MM competition. Firm EIP-712 signed quotes that win only by beating the pool. The ceiling of price.
Floor + ceiling, one settlement core. The cvAMM is the floor of liquidity (it always quotes a code-capped price); the MMs are the ceiling of price (they win only by beating it); and a single, rail-agnostic settlement core pays the LP the same way regardless of who underwrote.
Pillar 1 — On-chain published FairValue (the truth)
The protocol does not just settle claims — it computes and publishes the fair value of the claim on-chain before anyone trades. That published number is the reference price every other part of the system is measured against. The genius is the factorization: the two terms carry orthogonal information.MaxIL — pure geometry
The maximum in-range IL of the specific position, computable at creation from . Frozen at creation, identical across all three durations. Duration changes nothing about MaxIL.
fairRate — all the vol/time
— the fraction of MaxIL the claim is worth under the risk-neutral measure. fairRate carries ALL the vol/time dependence; MaxIL carries none.
fairRate, the cvAMM publishes three different prices for the same position — one per duration — all backed by the same MaxIL collateral.
fairRate is an S-curve in
fairRate is an S-curve in : it is in calm/short regimes (price rarely leaves a wide range) and saturates toward in violent/long regimes (price almost surely exits the range). The single stochastic input is — see the sigma-ref estimator.
fairRate at σ = 60% (risk-neutral, from the Monte Carlo reference model) — note the ~2–4× movement across durations for a single width, and that it is MaxIL that stays fixed.
It is an exact closed form — not a fitted surface
This is the claim that makes Pillar 1 a truth and not a guess. The capped v3 payoff is piecewise — a below- linear arm, a convex arm inside , and an above- linear arm, split by the two cap-crossing prices. Each arm integrated against the lognormal density of is a standard interval moment in the normal CDF . So the whole expectation collapses to a finite -sum (~6–10 terms, Black–Scholes class):- No Monte Carlo, no lookup table, no calibrated coefficients. It is evaluated live, per quote.
- L-independent. The -sum runs in normalized units (), so it depends only on , , , and .
- Verified exact against the reference model — closed form ≡ quadrature ≡ MC — to ~5×10⁻¹¹ across width × σ × T.
Theory anchors vs. the pricer — a distinction to keep straight. Two 2025 academic results explain why this claim is priceable and hedgeable: Lipton–Lucic–Sepp (2025) (an IL-protection claim is statically replicable by a strip of vanilla options) and Milionis–Moallemi–Roughgarden (2022) (LVR has a closed form ∝ instantaneous variance). They are the theory anchors, not the pricer — the exact -sum is the pricer. Do not conflate them.
FairPremium. Read it in full at Fair value and the -sum; MaxIL has its own page at MaxIL — the cap and the unit of risk.
Pillar 2 — The cvAMM (the floor of liquidity)
A market that needs a counterparty to show up before it can quote has a cold-start problem. Pillar 2 removes it. The cvAMM is a pooled passive underwriter —ConvexityVault, an ERC-4626-style USDC vault with a dual-tranche SENIOR/JUNIOR structure from launch (deployed). It quotes algorithmically on-chain off the published FairPremium, posts collateral from the pool, and is always quoting. It is Path A — signature-free, fully on-chain (createSwapPathA).
It solves four problems at once:
Cold-start
There is always a price, with no MM present. The protocol is complete and solvent on Path A alone.
Overcharge
The price is capped in code by invariant I10 — — not by trust.
Intra-pair diversification
One pool writes many positions whose exits do not all cluster at the same price.
Depositor viability
Each depositor picks an honest risk dose — senior savings account vs. junior vol-seller. See tranches.
The price is capped in code, not by trust
The cvAMM quote isFairPremium lifted by a transparent, on-chain load stack and then hard-clamped:
totalLoad = min(baseLoad + util_skew + dispersion_skew, maxLoad), so the depositor pool can never overcharge the LP beyond the contractual cap. That clamp is invariant I10 — see the invariants and the load stack. None of these primitives is hardcoded; the regimes and curves come from the calibrated risk-parameter set.
This is why the cvAMM is the floor of liquidity: it guarantees a fair, code-capped price exists for every position in every market, at all times, with no external dependency. Deep dive at Path A — the cvAMM.
Pillar 3 — MM competition (the ceiling of price)
If Pillar 2 guarantees a price always exists, Pillar 3 guarantees that price can be beaten. Sophisticated market makers compete via firm EIP-712 signed quotes (with EIP-1271 contract-signer support) priced below the pool — Path B (createSwap). There is no last-look: a quote is a firm bearer instrument, protected only by deterministic on-chain checks at fill (oracle-anchored price band, short validity window, bitmap nonce). See firm quotes, no last-look.
MMs matter for two load-bearing reasons — state both:
1
Hedged MMs export short-gamma risk OUT of the system
A closed pool can only relocate short-gamma risk — without MMs the protocol becomes a closed pocket of ETH short gamma circulating against itself. An MM who hedges on the global options market (Deribit / Panoptic) makes the whole system’s risk smaller, not just moved.
2
Forward-looking-vol MMs correct the pool's backward bias
The pool prices off realized — a structurally backward-looking estimator. MMs price off implied / forward vol. They are the mechanism that incorporates forward information the pool structurally cannot see.
Floor + ceiling, one settlement core
The three pillars are not three products. They are two upstream rails — the pool (floor) and the MMs (ceiling) — feeding one downstream settlement core.settle() function, the cap, the MaxIL formula, the invariants I1–I9 — is identical regardless of which rail opened the swap. The FULL no-bad-debt guarantee is therefore independent of how the quote was discovered; it is enforced at on-chain settlement against the counterparty’s own locked collateral.
How createSwapRouted picks the cheaper rail
The router (createSwapRouted) is where floor and ceiling meet. It is the single best illustration of the whole architecture:
1
Pool must be wired (the floor must exist)
The market must be
cvammEnabled — there must be something to fall back to. Otherwise there is no floor and the call reverts.2
Price both rails off the SAME FairPremium
A single VolOracle poke refreshes , then both rails are priced off the same published
FairPremium: premiumA = _pricePathAFromFair, (usableB, premiumB) = _quoteUsableAndPremiumB.3
Evaluate the MM quote WITHOUT touching state
_quoteUsableAndPremiumB is the view, non-reverting mirror of Path-B’s gates. It returns (false, 0) for any defect — absent / wrong-model / over-load / expired / out-of-band / nonce-used / under-collateralized / bad-sig / dust — and never mutates a nonce, capacity, or lock, so an unchosen quote leaves zero trace (preserving capacity invariant I7).4
Route to the strictly cheaper rail (ties go to the floor)
useB = usableB && premiumB < premiumA — the MM wins only if it STRICTLY beats the pool. A tie resolves to Path A, the dependency-free always-on rail, so an MM cannot divert flow by merely matching.5
A bad MM quote falls back to the pool — it NEVER reverts
An absent / expired / stale / over-band / over-load / under-collateralized MM quote simply falls back to the floor. Only protocol-level failures (market / owner / range / dust / slippage / pool-unwired) can revert the call. Only the executed rail mutates nonce / capacity / lock.
SwapRouted(swapId, pathB, premiumA, premiumB), so the cheapest-wins decision is part of the data moat.
Seen live, both rails, one core
The 2026-06-05 redeploy ran a full create→settle on both rails through the one settlement core:- Path A — the floor
- Path B — the ceiling
Swap #1, V0 $270,531.28, MaxIL $1,669.24 → premium $9.70 (0.58% of MaxIL). Settled realized IL $148.64, payout $148.64 — paid from the
ConvexityVault. The pool quoted and settled with no MM present at all.Structures ship from day one; the full DYNAMICS (pool-vs-MM spread as a forward-vol signal) mature with multiple competing MMs and volume. The dataset begins at the single redeploy; the off-chain telemetry halves begin at the first interaction logged.What Inflexion offers today is the architecture and the first public view into the microstructure of the DeFi LP volatility-risk premium — not yet a mature dataset:
- Structures are present day-one. All five non-circular behavioral signals are defined and queryable from launch.
- Dynamics mature with volume. The richer signal — the pool-vs-MM spread read as a forward-vol indicator — only sharpens once multiple market makers compete and real flow accumulates.
- The dataset begins at the single redeploy, and the off-chain telemetry halves begin at the first interaction logged. History is served live from the subgraph via the API; if a backing (subgraph URL / RPC / telemetry) is absent, surfaces degrade to a typed
pendingstate — never an error.
The no-bad-debt guarantee — stated correctly
The cap from Pillar 1 (MaxIL) plus FULL collateralization is what makes the LP-payout guarantee a construction rather than a hope: by construction. But it holds only under its full qualifying clause — never state it unqualified. This is a separate claim from depositor risk (above). LPs are always paid in FULL (structural, code-enforced invariant I1); depositors and MMs can lose principal (volatility sellers in a crash). Both are true; neither implies the other — see no bad debt and the math.Where to go next
MaxIL — the cap and the unit of risk
Why MaxIL is both the load-bearing payout cap and the unit that makes positions fungible to an underwriter.
Fair value, on-chain
The published
FairPremium, the Stylus oracle, and why it is never reimplemented off-chain.The two rails
Floor and ceiling in depth — Path A, Path B, and the routed entry point.
The $\Phi$-sum
The exact closed form: piecewise payoff arms integrated against the lognormal density.
Tranches
Senior savings account vs. junior first-loss vol-seller — and why capital is not guaranteed.
The data moat
The five behavioral signals the floor + ceiling flow emits day-one.