Skip to main content
This page answers nine common questions about the protocol, each with the exact framing that survives a follow-up. The answers do not soften the hard parts — they frame the caveat, then give the why and the mitigation. A naked limitation is a defect; every limit below is followed by its reason and its path forward. Two disclosures recur throughout and are never merged. Claim A — LPs are always paid in FULL mode, with no bad debt, qualified by the full clause — and Claim B — depositor and MM capital is not guaranteed for either tranche. They are both true; neither implies the other.
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.
Depositor capital is NOT guaranteed: the junior tranche is first-loss; the senior tranche is structurally protected from underwriting loss only, not systemic tail.Underwriting capital — whether supplied to the pooled cvAMM vault (Path A) or posted directly by a market maker (Path B) — is at risk:
  • Junior tranche — first-loss. Junior depositors absorb underwriting losses first and buffer the senior tranche.
  • Senior tranche — protected from underwriting loss, exposed to the systemic tail. The senior tranche is structurally shielded from ordinary underwriting loss while junior capital buffers, but it still takes the systemic tail once the junior buffer is exhausted.
No-bad-debt is a guarantee to the LP being paid (see the FULL-mode payout clause), not a guarantee that depositor or MM capital is preserved.
No — and the distinction is load-bearing, not cosmetic. Inflexion is a collateralized bilateral derivative: an LP pays a fixed upfront premium and at expiry receives min⁡(realized IL, MaxIL)\min(\text{realized IL},\ \text{MaxIL}) from an underwriter’s pre-locked USDC collateral. There is no actuarial mutualization, no shared loss pool that can be exhausted, and no regulatory ambiguity around the word “insurance.” The payout is mechanical geometry settled on-chain, not a discretionary claim adjudicated by an insurer.Three concrete reasons “insurance” is the wrong label:
1

It is an in-range CONVEXITY hedge, not loss cover

Entry requires Pa≤P0≤PbP_a \le P_0 \le P_b — out-of-range positions are rejected at creation. The product hedges the in-range short-gamma exposure of a specific Uniswap v3 position. An LP is structurally short an option (concave VlpV_{lp}); Inflexion sells the offsetting long-convexity leg. See the in-range convexity hedge.
2

The payoff is CAPPED — by construction, on purpose

Coverage is min⁡(realized IL, MaxIL)\min(\text{realized IL},\ \text{MaxIL}), never unbounded “IL insurance.” Above PbP_b the LP is fully rotated into one asset (constant value) while a hold position grows linearly, so beyond-range IL is unbounded and could never be fully collateralized. The cap is what makes the product trustless — see Why a cap? below.
3

It is NOT Bancor

The cvAMM pays in pre-locked USDC and mints nothing — no token-inflation reinsurance, no death spiral. Bancor v2.1’s IL protection minted new tokens to cover losses; Inflexion locks exactly MaxIL before the swap exists.
It is also not GammaSwap (perpetual vol trading needing active management) and not Panoptic (an options market for quants). Inflexion’s LP pays one number and the protocol computes everything else.
The reputational and demand risk of mislabeling is real, which is why we never use “insurance.” Sophisticated LPs discount a truncated tail, so calling a capped product “IL insurance” both over-promises and invites regulatory ambiguity. Every LP surface shows the payoff diagram and the “in-range convexity hedge” label so the cap never surprises an LP.
Path A has no matcher at all, and the Path-B matcher is strictly bounded — it can degrade liveness, never solvency.The off-chain matching engine exists for Path B only. Path A — the cvAMM pool — is pure on-chain pricing: no relayer, no keeper, no validity clock. An LP transacts directly against the pool, so the engine cannot censor Path A at all.For Path B, the engine’s power is bounded by what is enforced on-chain:The mitigations against the powers it does have:
1

Direct-to-contract fallback

Because EIP-712 verification is on-chain, any LP holding a valid signed quote can call createSwap directly, bypassing the engine entirely. A censoring operator simply loses that flow. The SDK exposes this path.
2

Append-only quote log

The engine publishes its full quote stream + match decisions to a rotating append-only log, making ordering auditable.
3

Deterministic FIFO / price-time matching

Match rules are deterministic, removing operator discretion at the matching layer.
The decentralization roadmap. An Arbitrum Orbit chain could host the Path-B quote book fully on-chain (the Hyperliquid pattern), removing the off-chain component entirely — the clean answer to “isn’t the matcher centralized?” And the cvAMM is already fully on-chain today. The FULL no-bad-debt guarantee is independent of matching: it is enforced at on-chain settlement regardless of how the quote was discovered.
A vol-oracle fault can cost depositors money but can never create LP bad debt in FULL — these are two separate guarantees, and the split is the whole answer. This is the single most important correctness distinction in the protocol.There are two oracles, with two very different roles:
σref\sigma_{\text{ref}} (the VolOracle) and the FairValueOracle are load-bearing for the I10 price cap and depositor solvency only. A wrong, too-low σref\sigma_{\text{ref}} makes the pool under-charge load → premium income stops covering payouts → NAV compresses → junior absorbs it first, senior in the tail. This costs depositors, by design — they are the volatility sellers. It does not touch the LP guarantee.Even so, σref\sigma_{\text{ref}} is conservative by construction: σref=max⁡(σshort, σlong, floor)\sigma_{\text{ref}} = \max(\sigma_{\text{short}},\ \sigma_{\text{long}},\ \text{floor}) The max⁡(⋅)\max(\cdot) is mandatory, not optional engineering: realized vol understates risk right before a regime change, so a single fast EWMA would collapse to a deceptively calm number exactly before a crash. The floor sits above calm ETH vol on purpose (floor = 0.50 > \approx 0.45), so the pool overcharges calm months. See σ-ref.
The crucial fact: the FULL no-bad-debt invariant (I1) is structural and oracle-independent. In FULL, collateral=MaxIL≥payout\text{collateral} = \text{MaxIL} \ge \text{payout} by construction, regardless of what σ\sigma was — so a wrong σref\sigma_{\text{ref}} cannot violate I1.
Limit → Why → Mitigation. Limit: the settlement oracle could be unhealthy at expiry. Why it matters: if no usable round ever exists, funds cannot settle. Mitigation: Fork 1 / I8 bounds this — a LIVENESS_WINDOW = 86,400s (24h) backstop unconditionally accepts the round-at-TT after the window, so funds can never lock indefinitely. settle() always succeeds within expiry + LIVENESS_WINDOW + MAX_STALENESS + GRACE_PERIOD. The window is symmetric for LP and MM, preserving fairness.
Yes. Capital is NOT guaranteed for either tranche — and we lead with this, never bury it. A cvAMM depositor is a volatility seller: they collect premium priced under the risk-neutral measure at the conservative σref\sigma_{\text{ref}}, and pay realized min⁡(IL,MaxIL)\min(\text{IL}, \text{MaxIL}) under the real measure. You earn the vol-risk premium in calm markets and absorb losses in crashes.
Depositor capital is NOT guaranteed: the junior tranche is first-loss; the senior tranche is structurally protected from underwriting loss only, not systemic tail.Underwriting capital — whether supplied to the pooled cvAMM vault (Path A) or posted directly by a market maker (Path B) — is at risk:
  • Junior tranche — first-loss. Junior depositors absorb underwriting losses first and buffer the senior tranche.
  • Senior tranche — protected from underwriting loss, exposed to the systemic tail. The senior tranche is structurally shielded from ordinary underwriting loss while junior capital buffers, but it still takes the systemic tail once the junior buffer is exhausted.
No-bad-debt is a guarantee to the LP being paid (see the FULL-mode payout clause), not a guarantee that depositor or MM capital is preserved.
The dual-tranche structure lets each depositor pick a risk dose:

Senior — convexity savings account

Base yield + a small premium slice; structurally protected from underwriting loss by the junior-first waterfall, low variance. Protected from underwriting loss only — never from the systemic tail (USDC depeg, oracle/settlement fault, contract bug).

Junior — pure vol-selling tranche

Most of the load, high APY, first-loss. Absorbs all underwriting loss before senior is ever touched.
The senior protection is a structural invariant — totalLocked ≤ juniorAssets, enforced at every lockCollateral. Since every payout ≤\le its MaxIL == its locked amount: Σ payouts≤totalLocked≤juniorAssets\Sigma\ \text{payouts} \le \text{totalLocked} \le \text{juniorAssets} so junior absorbs all underwriting loss before senior. With target sf=0.60sf = 0.60, this is exactly u≤0.40=1−sfu \le 0.40 = 1 - sf.The honest numbers (heavy run, bare unhedged single-pair ETH pool, gross of demand/competition/fees, leading with the geometric 3y CAGR):Junior worst month: −67%.
The honest headline — frame, don’t hide. Limit: a single-pair unhedged pool cannot meet the spec safety targets at any marketable load — 1-in-100 ≤ 10% and P(losing month) ≤ 15% are intrinsic to single-asset volatility selling. Why: you lose whenever realized vol exceeds implied, and a crash pays the whole synchronized book. Mitigation: the targets were not loosened — the structural levers are the honest answer. The utilization cap is the drawdown lever (u=0.40→u=0.40 \to P(DD>50%) 2.7% vs u=0.60→u=0.60 \to 18%); the senior/junior tranche gives senior P(loss)=0 (calibrated, while u≤1−sfu \le 1-sf); the pool hedge (roadmap) tightens the tail to 1-in-100 ≈−9.6%\approx -9.6\%. None makes a vol seller safe — that is impossible — but together they make it honest and viable for two audiences. See tranches and the depositor disclosure.
The verbatim disclosure tone is mandatory: “You earn the volatility risk premium in calm markets and absorb losses in crashes. In FULL the pool cannot become insolvent and cannot be run, but YOUR CAPITAL IS NOT GUARANTEED.” Never call it “stable” or “modest APY.”
In FULL mode, yes — but only under its full qualifying clause, and we never state it unqualified.
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.
The structural core is three lines: collateralFULL=MaxIL(locked at creation)\text{collateral}_{\text{FULL}} = \text{MaxIL} \quad\text{(locked at creation)} covered_payoff=min⁡(realized_IL, MaxIL)≤MaxIL(by construction of the cap)\text{covered\_payoff} = \min(\text{realized\_IL},\ \text{MaxIL}) \le \text{MaxIL} \quad\text{(by construction of the cap)} ∴ payout≤collateral=MaxIL(no bad debt — invariants I1, I2)\therefore\ \text{payout} \le \text{collateral} = \text{MaxIL} \quad\text{(no bad debt — invariants I1, I2)}This is orthogonal to the premium and oracle-independent: it holds for any price path and any (even wrong) σ\sigma. It is enforced in code at settlement — payout = realisedIL > maxIL ? maxIL : realisedIL — and both vaults defensively re-check payout ≤ lockedAmount.It is verified, not asserted: the heavy run found payout_frac=min⁡(IL,MaxIL)/MaxIL≤1.0\text{payout\_frac} = \min(\text{IL},\text{MaxIL})/\text{MaxIL} \le 1.0 on every simulated path across a ±99%\pm 99\% (and a widened −6…+6-6\ldots+6 log-move) grid — max_payout_frac = 1.000000, zero exceptions. The Foundry suite fuzzes I1/I2 over the whole price domain (256 runs).
Each clause is load-bearing — say it as one sentence. No bad debt is exact only under: (a) capped payoff (remove the cap and beyond-range IL is unbounded); (b) solvent USDC (a depeg is a disclosed shared risk, not a protocol bug); (c) oracle/settlement liveness (Fork 1 bounds it so funds are never permanently locked); (d) no rehypothecation breach (locked collateral must stay instantly liquid — never routed to a utilization-gated venue like Aave/Compound, a hard rule). Stated without these qualifiers, the guarantee is not correct.
PARTIAL mode (collateral < MaxIL) does carry real bad-debt risk and is roadmap-only, gated on the quant. In the shipped code, CollateralModel has {FULL, PARTIAL} but PARTIAL reverts UnsupportedModel. See the math of no bad debt and collateral models.
Because the cap is the no-bad-debt guarantee, not a defect — it is what makes the product fully collateralizable and trustless.MaxIL is the maximum in-range IL of a specific position. IL(P)=Vhold(P)−Vlp(P)\text{IL}(P) = V_{hold}(P) - V_{lp}(P) is convex on [Pa,Pb][P_a, P_b], so its maximum while price stays in range is at a boundary: MaxIL=max⁡(IL(Pa), IL(Pb))\text{MaxIL} = \max(\text{IL}(P_a),\ \text{IL}(P_b)) Proof sketch: VholdV_{hold} is affine in PP; in range Vlp(P)=L(2P−Pa−P/Pb)V_{lp}(P) = L(2\sqrt{P} - \sqrt{P_a} - P/\sqrt{P_b}), so d2Vlp/dP2=−14LP−3/2<0d^2 V_{lp}/dP^2 = -\tfrac14 L P^{-3/2} < 0 ⇒ VlpV_{lp} strictly concave ⇒ IL=affine−concave\text{IL} = \text{affine} - \text{concave} is convex, and a convex function on a compact interval attains its max at an endpoint. This holds for any entry, centered or not.The cap is correct as a product, not just as collateral math:
1

Beyond-range loss is DIRECTIONAL, not impermanent

At the range boundary the LP has fully rotated into one asset. IL beyond that point is directional loss — foregone spot upside — not the impermanent loss the LP set out to hedge. Capping at MaxIL hedges exactly the risk the product names.
2

Unbounded payoff cannot be trustless

Above PbP_b, VlpV_{lp} is constant while VholdV_{hold} grows linearly, so absolute IL is unbounded. No fixed collateral can back an unbounded payoff — so an uncapped product could not be fully collateralized, and therefore could not be trustless.
3

The cap is the unit of risk

Because MaxIL is pure geometry, frozen at creation, and identical across durations, it doubles as the collateral unit that makes positions fungible (see Why per-market quotes? below).
LPs who want beyond-range protection simply re-cover after re-ranging — the natural workflow, since a re-ranged position is a new geometry with a new MaxIL. See MaxIL and the MaxIL derivation.
Because MaxIL is the unit of risk that makes positions fungible — so an MM quotes once for an entire market, and any position in it fills. There is no tokenId in a SignedQuote.The chain of reasoning:
1

MaxIL is L-independent in the fair-rate sense

fairRate\text{fairRate} depends only on a=Pa/P0a = P_a/P_0, b=Pb/P0b = P_b/P_0, σ\sigma, TT — not on LL. MaxIL is pure geometry, frozen at creation, identical across the three durations. Premium is quoted as a % of MaxIL, so an underwriter’s ROC is range-agnostic.
2

Range-agnostic ROC dissolves adverse selection

If premium were X%X\% of V0V_0, a narrow range (tiny MaxIL) would give the underwriter enormous ROC and a wide range insufficient ROC → underwriters adversely select against wide ranges → liquidity fragments. With premium as X%X\% of MaxIL, the underwriter earns X%X\% ROC regardless of range width → indifference to width → full depth.
3

So a quote is PER-MARKET: a load + a MaxIL-ratio band + capacity

The MM expresses “I write positions whose MaxIL is 2%–7% of V0” once via minMaxILRatioBps/maxMaxILRatioBps, and the contract enforces it per-fill: ratioBps=MaxIL⋅104/V0∈[min,max]\text{ratioBps} = \text{MaxIL} \cdot 10^4 / V_0 \in [\text{min}, \text{max}] else RatioOutOfBand. Positions within the band are interchangeable.
The old “ratio band” adverse-selection story is VOID. v3 position parameters (token0/1, fee, tickLower/Upper, liquidity) are public on-chain via positions(tokenId). Both the pool and any MM read the exact geometry and price the specific position — so there is no information asymmetry for a band to manage. Post-pivot, the MaxIL-ratio band survives only as an optional convenience filter, never a pricing input.
A nuance worth stating deliberately: MaxIL is a collateral/normalization unit, NOT a risk metric. Two positions with identical MaxIL can carry very different risk (distance from current price, delta). Both rails price EQ[min⁡(IL,MaxIL)]/MaxILE_Q[\min(\text{IL},\text{MaxIL})]/\text{MaxIL} for the specific geometry. See the two rails and MaxIL.
Yes — it is an exact closed form, not a fitted surface, not Monte Carlo, not a lookup table, with no calibrated coefficients. This is the “first to price IL on-chain” claim.The capped v3 payoff min⁡(IL,MaxIL)\min(\text{IL}, \text{MaxIL}) is piecewise in the terminal price — three arms split by the range edges and the two cap-crossing prices: a linear arm below PaP_a, a convex (never-capped) arm inside [Pa,Pb][P_a, P_b], and a linear arm above PbP_b. Under risk-neutral GBM, PTP_T is lognormal, so each arm integrated against the density is a standard lognormal interval moment in the normal CDF Φ\Phi:E ⁣[PT p⋅1{K1<PT<K2}]=P0 p e12p(p−1)σ2T (Φ(d(K1))−Φ(d(K2)))E\!\left[ P_T^{\,p} \cdot \mathbf{1}\{K_1 < P_T < K_2\} \right] = P_0^{\,p}\, e^{\frac12 p(p-1)\sigma^2 T}\,\bigl(\Phi(d(K_1)) - \Phi(d(K_2))\bigr) d(K)=ln⁡(P0/K)+(p−12)σ2TσTd(K) = \frac{\ln(P_0/K) + (p - \tfrac12)\sigma^2 T}{\sigma\sqrt{T}}The arms use only p∈{0,12,1}p \in \{0, \tfrac12, 1\}. So FairPremium=EQ[min⁡(IL,MaxIL)]\text{FairPremium} = E_Q[\min(\text{IL},\text{MaxIL})] is a finite Φ\Phi-sum (≈6–10 terms, Black–Scholes class), evaluated live per quote. It is LL-independent: it depends only on aa, bb, σref\sigma_{\text{ref}}, TT. The two-layer factorization: fairRate=EQ[min⁡(IL,MaxIL)]MaxIL,FairPremium=fairRate⋅MaxIL\text{fairRate} = \frac{E_Q[\min(\text{IL},\text{MaxIL})]}{\text{MaxIL}}, \qquad \text{FairPremium} = \text{fairRate} \cdot \text{MaxIL} where fairRate\text{fairRate} carries all the vol/time dependence (an S-curve in σ2T\sigma^2 T) and MaxIL carries none.Verification — it cannot drift from the settle-path math:
The production pricer is the Stylus FairValueOracle (machine-precise; Stylus bans WASM floating point at activation, so its erf is integer fixed-point). The Solidity FairValueOracle is a revm-testable CI cross-check, not a second production oracle — its Abramowitz–Stegun erf is only ≈1.5×10−7\approx 1.5\times10^{-7}, which is why the Stylus oracle is production. The Φ\Phi-sum is NEVER reimplemented off-chain — the SDK reads the on-chain FairPremium (a hard rule). See the Phi-sum and fair value.
The one residual approximation — frame it. Limit: the Φ\Phi-sum is exact given the model; the only modeling assumption is risk-neutral GBM with μ=0,r=0\mu = 0, r = 0. Why: a nonzero carry would tilt the true forward off P0P_0. Mitigation: it is covered two ways — (1) the conservative σref\sigma_{\text{ref}}, and (2) the residual forward-vol premium is deliberately left as MM alpha, which is exactly the incentive that keeps forward-looking-vol MMs in the two-sided market. Sized and found economically negligible at launch scope (\le \1.30 on a \50k/±10%/30d position — at or below the $1 dust floor). Do not cite the often-repeated "6.7×10−156.7\times10^{-15}" figure for end-to-end accuracy — the defensible, code-verified figure is ≤10−12\le 10^{-12} on fairRate.
The contracts, the live RPC surfaces, and the subgraph (history/aggregates) are all real today — served via the hosted API. If a backing were absent, the surface would degrade to a typed pending state, never an error or a fake number.The protocol is live on Arbitrum Sepolia (chainId 421614), fresh full redeploy 2026-06-05, deploy block 274081134. A real create→settle lifecycle ran on both rails:
  • Path A (cvAMM): V0 $270,531, MaxIL $1,669.24, premium $9.70 (0.58% of MaxIL), realized IL $148.64, paid in full from the ConvexityVault.
  • Path B (routed to MM): createSwapRouted chose the MM because its premium $8.93 strictly beat the cvAMM’s $13.80; the MM’s own collateral ($3,215.65 MaxIL) was locked and paid the $245.66 settlement from UnderwriterVault.
This demonstrates floor/ceiling routing and the trust model end-to-end: the counterparty’s own collateral pays, not protocol funds.
  • Premium preview, payoff-with-cap chart, buy/settle (Path A), vault deposit/withdraw.
  • The current clearing-load surface (Signal 1) — live RPC multicall, the data moat’s hero.
  • σref\sigma_{\text{ref}}, market pricing, the on-chain book scan, coarse fills.
  • The two moat events SwapPriced / QuoteFilled and CvammPricing.loadComponents — emitted on-chain since the deploy block.
  • Off-chain telemetry sinks (DEMAND_LOG / COMPETITION_LOG) — capturing now, because they are unreconstructable retroactively (I7).
History and aggregates are live. The subgraph is deployed and indexing on The Graph Studio (slug inflexion-arb-sepolia), so every history/aggregate surface is served live via the hosted API — the contracts already emit every event the dataset needs, and the on-chain moat dataset begins at the redeploy block 274081134 (the subgraph startBlock). Graceful degradation remains a design property: if SUBGRAPH_URL were unset, each such surface would return a typed ApiPending envelope naming the exact route + GraphQL query it is served from, so history would degrade to a typed pending state, never an error. See state and limits and status caveats.
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 pending state — never an error.
One testnet caveat worth stating plainly: Arbitrum Sepolia has no Chainlink L2 Sequencer Uptime Feed (testnet, no SLA), so OracleManager treats sequencerFeed == address(0) as skip-check. Why it is safe here: it is a testnet with no sequencer SLA to enforce. Mitigation / path forward: this must be set before any mainnet deploy.The live addresses:Network: Arbitrum Sepolia · chainId 421614 · deploy block 274081134 (subgraph startBlock) · deployed 2026-06-05

Core protocol

Stylus & libraries

Oracles

Uniswap

Demo tokens / pool / LP

Lifecycle swaps

Live create→settle lifecycle (2026-06-05, short 300s fee-500 market 0xb8bbd684f213d5833886ade7b531a6949d85522249881a2b5d46a5cc76e439c2):
  • Path A (cvAMM convexity) — swapId 1, LP tokenId 3220 · V0 $270,531.28 · MaxIL $1,669.24 · premium $9.70 (0.58% of MaxIL) · settled payout $148.64 from ConvexityVault.
  • Path B (MM routing) — swapId 2, LP tokenId 3221 · MM beat cvAMM ($8.93 vs $13.80) · MaxIL $3,215.65 · MM collateral locked $3,215.65 · settled payout $245.66 from MM collateral.

Where to go deeper

What's live

The honest “it’s real” inventory, with on-chain numbers.

Depositor disclosure

Claim B in full, with the full risk panel.

The invariants

I1–I10: precise statement, why each holds, where enforced.