mint-redeem- issues and burns paired long/short tokens against cUSDC collateral at NAV, and holds each market’s risk state and solvency target.clp- the protocol’s trading and treasury program. It hosts all three trading venues and the vaults that provision them.- The keeper - an off-chain bot that pushes oracle prices, manages the on-chain order books, settles committed orders, and routes collateral yield.
The system at a glance
Minting and redeeming
The only program a regular user writes to for issuance ismint-redeem:
mint_paired(amount)deposits cUSDC, mints matched long (L) and short (S) tokens at NAV.redeem_paired(l_amount, s_amount)burns long + short (in independent quantities) and returns cUSDC at NAV.
L_NAV = oracle price, S_NAV = K / L_NAV where K = initial_l × initial_s. As one side appreciates the other depreciates reciprocally, so a paired mint or redeem is solvency-neutral by construction. There is no path for a user to mint single-sided - see Solvency.
→ Paired tokens · NAV math · Full reference
The three trading venues
Trading individual legs happens on theclp program, which deliberately splits flow across three venues:
1. CLMM books - instant, small
Each market has one protocol-native pool per side (8 pools live: QQQ/SPY/VXX/XAU × L/S). Bins live inline in thePool account with a 2-zone geometry: fine core steps near NAV, wide wings further out (QQQ: 20 bps core, 300 bps wings). The keeper re-pins the book base to NAV when drift exceeds a per-market gate (20 bps for QQQ/SPY/XAU, 40 bps for VXX).
Standing depth is deliberately lean - sized to organic demand, not TVL, because toxic-arb loss scales with deployed depth. Books converge to roughly $5k of bids and ≤$7.5k of asks per side.
2. Committed orders - any size
The large-order path. You escrow your input into anOrder PDA; the fill executes at the first oracle print strictly after your commit, at NAV ± 10 bps. Because the price is set after you commit, there is no stale quote to pick off - latency arbitrage is impossible by construction, so there is no size or window cap. The bounds are oracle health, the collateral floor, and keeper-provisioned inventory.
- Settlement is permissionless; the keeper cranks it (typically 12-25 s end to end, bounded by the ~15 s oracle cadence).
- A
min_outmiss refunds in full - terminal, not a revert loop. cancel_swaprefunds unconditionally after the 180 s TTL and checks nothing else - funds are always recoverable regardless of oracle, keeper, or admin state.- Every terminal path closes the Order account and returns rent.
3. Oracle swap - the legacy facade
clp_swap fills instantly from pre-stocked CLP inventory at NAV ± a configured spread (30 bps), guarded by oracle-health breakers (60 s staleness, confidence, 25% deviation), a rolling notional window cap, and a collateral floor. It is retained for small instant trades; committed orders bypass it and do not consume its window.
End-to-end mint flow
End-to-end committed-order flow
Why this design
Where to go next
Paired tokens
Why mint is paired, how the long/short pair settles.
NAV math
The constant-product formula and what it implies for P&L.
CLP and the venues
Book geometry, committed-order mechanics, vault plumbing.
Keeper
Oracle push, book management, settlement crank, yield routing.

