chainId 421614), a full-fresh redeploy dated 2026-06-05. Every address on this page is read out of a single source of truth — the per-network address registry — which the SDK loads at runtime and hardcodes nothing. The table below is auto-generated from that same registry via the shared <AddressTable /> snippet, so the docs can never drift from the deployed reality.
One file, one truth. The contracts, the SDK, the frontend, the engine, and these docs all resolve addresses through the per-network address registry. If you are integrating, read that registry rather than copy-pasting from here — it is the canonical source. See Addresses & units for how the SDK consumes it.
The deployment metadata
Why a fresh redeploy on 2026-06-05? The Stylus
FairValueOracle carries a set-once init() that binds it to one VolOracle. The prior FVO had already been init()-bound to the old VolOracle, so reusing it would have orphaned the new vol’s σ_ref. The clean fix was to deploy a fresh FVO and init() it to the fresh VolOracle — which in turn meant a full-fresh stack so every contract points at the right neighbour. The same redeploy lowered optimizer_runs to 1500 and extracted the public libraries as delegatecall code, bringing InflexionCore to 23,934 B — under the 24,576 B EIP-170 limit.The live registry
How the addresses fit together
Settlement core
InflexionCore is the state machine and EIP-712 verifyingContract. It enforces invariants I1–I10 and runs strict-CEI settlement. Both rails feed into its single settle path.The production pricer
The Stylus
FairValueOracle publishes the exact closed-form Φ-sum on-chain — machine-precise to ~6.7×10⁻¹⁵. Never reimplemented off-chain.Price & vol oracles
OracleManager anchors entry/settlement price to Chainlink with sequencer, staleness, and lone-spike gates. VolOracle maintains σ_ref. See Oracles.Core protocol (Solidity stack)
These are the on-chain contracts underdeployment.core in the registry.
The Stylus FairValueOracle (the production fair-value pricer)
This is production — the exact closed-form
fairRate Φ-sum that yields FairPremium = fairRate · MaxIL, machine-precise to ≤ 1e-12 (≈ 6.7×10⁻¹⁵). It exposes fairRate / fairRateFromPrices / fairPremium / volOracle.
Deployed Solidity libraries (delegatecall-only)
Auto-deployed and linked during the deploy broadcast. Extracting these as public-library delegatecall code is part of what broughtInflexionCore back under the EIP-170 limit.
Oracles & external integrations
The Chainlink USD feeds (8-decimal) and Uniswap v3 deployment were verified against canonical directories.- Chainlink feeds (8 dec)
- Uniswap v3
Verified 2026-05-28 against the Chainlink reference-data directory. Testnet feeds tick faster (~120s) than mainnet (86,400s), but
OracleManager.MAX_STALENESS is set to 90,000s so the same value works on either chain.The demo pair, pool & LP position
There is no pre-seeded WETH/USDC v3 pool with material liquidity on Arbitrum Sepolia, so the demo deploys its own numéraire-correct mock pair, ordered so thatdWETH < dUSDC by address ⇒ token0 = dWETH, token1 = dUSDC = numéraire. dWETH is oracle-priced via the real Chainlink ETH/USD feed, so the demo moves with live ETH.
The deploy registers 9 markets = 3 fee tiers × 3 durations for the dWETH/dUSDC pair (
500/3000/10000 × 7d/30d/90d), all underwritten by the one ConvexityVault. The marketId is keccak256(abi.encodePacked(token0, token1, fee, durationSeconds)). See the full markets grid and how the id is derived identically on-chain and in the SDK (marketId parity).The live create→settle lifecycle (2026-06-05)
A live, no-time-warp create→settle ran on a short 300s fee-500 market0xb8bbd684f213d5833886ade7b531a6949d85522249881a2b5d46a5cc76e439c2, settled at the Chainlink round bracketing each expiry. All amounts are in USD (dUSDC, 6 dec). The fresh demo MM 0xe632B215120dD43A719458487bA3e03638fec953 deposited 5,000 dUSDC into UnderwriterVault, and its own collateral paid the Path-B settlement.
The 300s lifecycle market is a separate, extra market used only for this live create→settle proof. It is not one of the 9 production markets.
- Path A — cvAMM pool (swapId 1)
- Path B — routed to MM (swapId 2)
LP tokenId
3220, settled from the ConvexityVault:With
MaxIL ≈ 0.62% of V0 and a premium of just 0.58% of MaxIL, the LP paid $9.70 to cap $1,669.24 of in-range IL — the convexity-hedge signature. See the worked example.payout = min(realized_IL, MaxIL), paid from the counterparty’s own collateral, with the LP receiving payout and the counterparty keeping the residual collateral − payout. The lifecycle above demonstrates the trust model end to end: protocol funds are never at stake.
Hosted services
The off-chain surfaces are live. History, aggregate, and time-series queries are served from the deployed subgraph via the hosted API — no longer pending.On the free hosting tier the combined backend sleeps after ~15 min idle, so the first request after a quiet period incurs a brief cold start.
Subgraph status
The subgraph is deployed and indexing on The Graph Studio (sluginflexion-arb-sepolia), and the _deployBlock 274081134 is its startBlock — the on-chain moat dataset begins at exactly this redeploy and has indexed the on-chain history from that block, including the lifecycle swaps. History and aggregate surfaces are served live from the subgraph via the hosted API.
Mainnet & migration references
The values below are the mainnet Arbitrum One references cited in the spec for the eventual production deploy. They are not part of the live testnet registry — do not conflate them with the Sepolia addresses above.Arbitrum One Chainlink feeds (mainnet, for migration)
Arbitrum One Chainlink feeds (mainnet, for migration)
The sequencer feed above is exactly the value that must be wired before any mainnet deploy (it is
null on Sepolia).Arbitrum One Uniswap v3 + canonical tokens (mainnet, for migration)
Arbitrum One Uniswap v3 + canonical tokens (mainnet, for migration)
On mainnet the production markets would run on the real WETH/native-USDC pool — the demo mock pair (
dWETH/dUSDC) exists only because no material-liquidity testnet pool is available on Sepolia.Canonical Arbitrum Sepolia tokens (not used by the live markets)
Canonical Arbitrum Sepolia tokens (not used by the live markets)
These real testnet tokens exist but are not what the live markets use — the demo deploys its own mock pair instead (see above), because there is no pre-seeded WETH/USDC v3 pool with material liquidity on Sepolia.
- WETH
0x980B62Da83eFf3D4576C647993b0c1D7faf17c73(18 dec) - USDC (Circle native testnet)
0x75faf114eafb1BDbe2F0316DF893fd58CE46AA4d(6 dec)
Mainnet is roadmap. The live deployment is the Arbitrum Sepolia testnet stack. A mainnet deploy is a future migration — it requires, at minimum, wiring the sequencer-uptime feed, the real Uniswap pool, and native USDC, plus the standard production checklist. Track open items in status & caveats.
Related
Decimals & units
dUSDC = 6, dWETH = 18, feeds = 8, WAD = 1e18 — the numéraire conventions.
Markets grid
The 9 markets, their ids, and the marketId derivation.
SDK addresses & units
How the SDK loads this registry and resolves contracts.
Oracles
OracleManager + VolOracle: Chainlink anchoring and σ_ref.
The invariants
I1–I10, what each guarantees, and where it is enforced.
Status & caveats
Every pending state, its why, and its path forward.