Skip to main content
The product label is precise and load-bearing: Inflexion sells an in-range convexity hedge, not “IL insurance.” Every word does work.
  • In-range — entry requires the position to be in range (Pa≤P0≤PbP_a \le P_0 \le P_b); out-of-range positions are rejected at creation.
  • Convexity — a Uniswap v3 LP holds a concave value function: they are short gamma, and impermanent loss is the realization of that short-gamma exposure. The hedge sells the LP the offsetting long-convexity leg.
  • Hedge — a collateralized derivative with a fixed maturity and an exact closed-form fair price, not actuarial mutualization.
The payout is capped at MaxIL, and that cap is the single most important honest framing in the protocol. This page explains why the cap is the right product rather than a defect, why loss beyond the range is out of scope by design, and why “convexity hedge” — not “insurance” — is the only label that survives a sophisticated reader.
This page is the conceptual home of the label. For the geometry that makes MaxIL the cap and the unit of risk, see MaxIL; for the closed-form fair price, see Fair value; for the structural payout-≤-collateral argument, see No bad debt.

The payoff, in one line

The protocol pays the LP, at expiry, from the underwriter’s pre-locked collateral: payout  =  min⁡(realized_IL, MaxIL)\text{payout} \;=\; \min\big(\text{realized\_IL},\ \text{MaxIL}\big) where realized IL is the guarded difference between holding the entry basket and the live LP value (the max(0, …) is invariant I3 — never an unchecked subtraction): realized_IL  =  max⁡(0, Vhold(PT)−Vlp(PT))\text{realized\_IL} \;=\; \max\big(0,\ V_{\text{hold}}(P_T) - V_{\text{lp}}(P_T)\big) and MaxIL is the maximum in-range IL of the specific position — pure geometry, frozen at creation: MaxIL  =  max⁡(IL(Pa), IL(Pb))\text{MaxIL} \;=\; \max\big(\text{IL}(P_a),\ \text{IL}(P_b)\big) Three facts fall straight out of this and are repeated on every LP surface in the app:
  1. At entry, PT=P0⇒Vhold=Vlp⇒realized_IL=0P_T = P_0 \Rightarrow V_{\text{hold}} = V_{\text{lp}} \Rightarrow \text{realized\_IL} = 0. No drift, no loss — and no payout. This is invariant I4: the LP never profits from the swap.
  2. While the price stays in range, the LP is paid back their realized IL exactly.
  3. Beyond the range, true IL keeps growing, but the payout is flat at MaxIL — that flat ceiling is the cap that makes the no-bad-debt guarantee hold by construction.

Entry requires Pa ≤ P0 ≤ Pb

A position is only protectable if it is in range at creation: Pa  ≤  P0  ≤  PbP_a \;\le\; P_0 \;\le\; P_b This is enforced at three layers, not assumed:
  • The Python reference raises ValueError if P0P_0 is out of range.
  • The on-chain Stylus pricer reverts OutOfRange when the normalized entry leaves the band — the gate is a ≥ 1e18 || b ≤ 1e18.
  • The app’s /protect empty-state says it in plain language: “Out-of-range positions are not protectable — entry requires Pa ≤ P0 ≤ Pb”, and each position row carries an in-range / out-of-range / oracle-degraded badge.
The requirement is both a correctness condition and a product-honesty condition.
The two results the product depends on only hold in range:
  • The convexity proof. IL(P)=Vhold(P)−Vlp(P)\text{IL}(P) = V_{\text{hold}}(P) - V_{\text{lp}}(P) is convex on [Pa,Pb][P_a, P_b], so its maximum while price stays in range is attained at a boundary. The proof: VholdV_{\text{hold}} is affine in PP; in range Vlp(P)=L(2P−Pa−P/Pb)V_{\text{lp}}(P) = L\big(2\sqrt{P} - \sqrt{P_a} - P/\sqrt{P_b}\big), so
d2VlpdP2  =  −14 L P−3/2  <  0\frac{d^2 V_{\text{lp}}}{dP^2} \;=\; -\tfrac{1}{4}\,L\,P^{-3/2} \;<\; 0⇒ VlpV_{\text{lp}} is strictly concave ⇒ IL=affine−concave\text{IL} = \text{affine} - \text{concave} is convex, and max⁡(0,IL)\max(0, \text{IL}) (a pointwise max of convex functions) is convex. A convex function on a compact interval attains its max at an endpoint. This holds for any entry, centered or not.
  • The cap. That boundary maximum is MaxIL — but only because the price is in range when the position is opened. An out-of-range entry has no well-defined in-range maximum to lock collateral against.

Why loss beyond the range is directional, not impermanent — and out of scope

This is the crux. Inside the range, an LP holds a price-dependent mix of both tokens, and the value function is concave: Vlp(PT)  =  {L (1/Pa−1/Pb)⋅PTPT<Pa(fully token0, linear)L (2PT−PT/Pb−Pa)Pa≤PT≤Pb(concave)L (Pb−Pa)PT>Pb(fully token1, constant)V_{\text{lp}}(P_T) \;=\; \begin{cases} L\,(1/\sqrt{P_a} - 1/\sqrt{P_b})\cdot P_T & P_T < P_a \quad(\text{fully token0, linear}) \\[4pt] L\,(2\sqrt{P_T} - P_T/\sqrt{P_b} - \sqrt{P_a}) & P_a \le P_T \le P_b \quad(\text{concave}) \\[4pt] L\,(\sqrt{P_b} - \sqrt{P_a}) & P_T > P_b \quad(\text{fully token1, constant}) \end{cases} Look at the regime above PbP_b. The position has fully rotated into token1, so VlpV_{\text{lp}} is constant — it cannot grow with price. Meanwhile VholdV_{\text{hold}} is affine and keeps growing linearly with PTP_T. So the gap between them widens without bound: absolute IL is unbounded beyond the range. Two things follow.
1

The unbounded tail is not 'impermanent' loss

At the range boundary the LP has fully rotated into one asset. From there on, the gap versus holding is foregone spot upside — a directional loss the LP would have taken on any one-sided position. It is no longer the impermanent loss the LP set out to hedge: the price-mixing concavity that produces impermanent loss only exists in range. Calling the beyond-range tail “impermanent loss” and promising to cover it would be mislabeling a directional bet.
2

Covering an unbounded tail cannot be trustless

Any product that promised to cover unbounded IL could not be fully collateralized — there is no finite collateral that bounds an unbounded payoff — so it could not be trustless. The cap at MaxIL is exactly what keeps the payoff finite, the collateral exact (collateralFULL=MaxIL\text{collateral}_{\text{FULL}} = \text{MaxIL}), and the settlement non-custodial.
3

LPs who want beyond-range protection re-cover after re-ranging

The honest path forward for an LP whose position drifts out of range is to re-range their Uniswap position and buy a fresh hedge against the new geometry. The protocol does not pretend a single capped claim covers an unbounded directional tail.
Limit → Why → Mitigation. The hedge does not pay beyond-range IL.
  • Why: above PbP_b (or below PaP_a) the LP is fully rotated into one asset, so the loss versus holding is directional (foregone spot), not the in-range impermanent loss the product hedges — and that tail is mathematically unbounded, so covering it could never be fully collateralized or trustless.
  • Mitigation: the cap at MaxIL keeps the payoff finite and the collateral exact; an LP who wants protection on a new range re-ranges their position and re-covers. Every LP surface shows the payoff-with-cap chart and the “in-range convexity hedge” label so the cap never surprises an LP at settlement.

The payoff-with-cap diagram

The shape of the payoff is the clearest single explanation of the product, and the app renders it on every LP and MM surface from the position’s geometry {Pa,P0,Pb}\{P_a, P_0, P_b\}. The chart’s visual language, axis by axis: Read left to right: the teal payout line tracks the true IL exactly while the price is in range, then detaches and runs flat along the amber MaxIL line as the dashed-red true IL keeps climbing into the uncovered region. The point where teal leaves red is the moment the cap binds — the visual statement of min⁡(IL,MaxIL)\min(\text{IL}, \text{MaxIL}). The curve is deterministic v3 geometry, normalized to % of V0V_0: IL(P)=max⁡(holdValue(P)−lpValue(P), 0),MaxIL=max⁡(IL(Pa), IL(Pb))\text{IL}(P) = \max\big(\text{holdValue}(P) - \text{lpValue}(P),\ 0\big), \qquad \text{MaxIL} = \max\big(\text{IL}(P_a),\ \text{IL}(P_b)\big) The app’s caption states the whole product in one sentence:
“You are paid your realized IL up to MaxIL (teal) while the price is in range. Beyond the range the true IL (dashed red) keeps growing but your payout is capped at the amber line — the cap that makes the no-bad-debt guarantee hold.”
The asymmetry in the chart is real and predictable: even for a ratio-symmetric range the convex IL curve is larger toward the upper boundary, so the cap typically binds first on the up-move. In the canonical fixture [80,100,125][80, 100, 125], MaxIL=IL(Pb=125)>IL(Pa=80)\text{MaxIL} = \text{IL}(P_b{=}125) > \text{IL}(P_a{=}80).

The cap is the product, not a deductible

A common misread is to treat MaxIL as an insurance deductible or coverage limit — a number chosen to bound the writer’s exposure. It is neither. MaxIL is pure geometry: it is the exact maximum in-range IL of the specific position, computed at creation from (Pa,Pb,L,P0)(P_a, P_b, L, P_0), frozen there, and identical across all three durations. Duration changes nothing about MaxIL — only fairRate, the fraction of MaxIL the claim is worth, moves with σ2T\sigma^2 T. Because collateralFULL=MaxIL\text{collateral}_{\text{FULL}} = \text{MaxIL} and covered_payoff=min⁡(realized_IL,MaxIL)≤MaxIL\text{covered\_payoff} = \min(\text{realized\_IL}, \text{MaxIL}) \le \text{MaxIL} by construction of the cap: payout  ≤  collateral  =  MaxIL\text{payout} \;\le\; \text{collateral} \;=\; \text{MaxIL} so FULL mode cannot produce bad debt under any price path — a structural invariant (I1, I2), provable by Foundry invariant tests and independent of the oracle and of whatever σ\sigma was (verified max_payout_frac = 1.000000 across a ±99% grid). The cap is the guarantee; remove it and the guarantee is gone. That is what “load-bearing” means here. MaxIL is therefore best read as a collateral / normalization unit, not a risk metric — two positions with identical MaxIL can carry very different risk profiles. The full treatment is on the MaxIL page.

Why “convexity hedge,” not “IL insurance”

The label is not branding — mislabeling the product as “insurance” is both a demand risk and a reputational / regulatory risk flagged in the external audit.
Insurance implies actuarial mutualization of a pooled, open-ended risk, with the attendant regulatory ambiguity. Inflexion has none of that: it is a European, fixed-maturity, capped claim priced by an exact closed-form, settled trustlessly from pre-locked collateral. The cvAMM pays claims in pre-locked USDC and mints nothing — it is explicitly not Bancor, no token-inflation reinsurance, no death spiral.
An “insurance” buyer reasonably expects to be made whole. But the payoff is truncated at MaxIL: the beyond-range tail is uncovered by design. A sophisticated LP who reads “insurance” and then sees the truncated tail will discount the product — and feel misled. Naming it a convexity hedge and showing the payoff-with-cap chart up front makes the truncation a feature the LP understands and prices, not a surprise at settlement.
A v3 LP’s value function is concave in price — they are short gamma / short volatility, and IL is the realization of that exposure. The academic anchor is the LVR literature: the AMM’s adverse-selection cost (LVR) is the theta of the replicating short option (Milionis–Moallemi–Roughgarden 2022), and an IL-protection claim is statically replicable by a strip of vanilla options (Lipton–Lucic–Sepp 2025). Inflexion sells the LP the offsetting long-convexity leg, capped at the in-range maximum, and prices it as the exact risk-neutral expectation of that capped payoff — the Φ-sum. “Convexity hedge” names exactly that transfer.
Not GammaSwap — that is perpetual vol trading needing active management. Not Panoptic — an options market for quants. On Inflexion the LP pays one number and the protocol computes everything else; the audience is the LP who wants certainty, including DAO / protocol-owned-liquidity treasuries that need predictable, reportable P&L.

What is hedged (precise)

The hedge covers gross in-range IL accruing from creation onward, not the LP’s net P&L. All entry quantities (P0P_0, the entry token amounts, LL) are snapshotted at swap creation, not at the LP’s original mint. Two consequences:
  • Any IL the LP already bore before covering stays theirs — the hedge starts the clock at creation.
  • The LP keeps Uniswap fee accrual during custody, so the LP’s total outcome is fees−IL+payout−premium\text{fees} - \text{IL} + \text{payout} - \text{premium}, which can be net positive. That is correct, not a leak: invariant I4 concerns the payout, which is 00 whenever IL is 00. The hedge is a hedge, not a lottery.
Settlement uses the liquidity LL stored at creation, never re-read from the NFT — invariant I6, so an external increaseLiquidity on the custodied NFT cannot inflate the payout above MaxIL.

The honest guarantee

LPs are always paid with no bad debt in FULL mode — qualified: capped payoff + solvent USDC + oracle/settlement liveness.The no-bad-debt guarantee is exact only under the full clause:
  • FULL collateralization — the underwriter has posted exactly MaxIL per swap, locked for the life of the position.
  • Capped payoff — the payout is min(realized_IL, MaxIL). The cap is load-bearing: it is what makes payout ≤ collateral hold by construction.
  • Solvent USDC — the collateral numeraire (dUSDC) holds its peg and remains redeemable.
  • Oracle / settlement liveness — the price oracle stays live and settle() runs within the protocol’s settlement window.
  • No rehypothecation breach — locked collateral stays instantly liquid; it is never routed to utilization-gated venues.
Stated without these qualifiers, the guarantee is not correct.
This is the LP-side claim only. It is a separate claim from the depositor / market-maker capital risk — never merge the two. For the underwriter side, see tranches and the no-bad-debt page; for the full settlement walkthrough, see the lifecycle.

MaxIL — cap and unit of risk

Why MaxIL is pure geometry, frozen at creation, and the unit that makes positions fungible to an underwriter.

Fair value — the Φ-sum

The exact closed-form price of the capped, in-range claim, published on-chain.

No bad debt (FULL)

How payout ≤ collateral = MaxIL holds by construction — and the full qualifying clause.

Protect your position

Buy an in-range hedge in the app: pick a market, preview the premium, read the payoff chart, settle at expiry.