mint-redeemissues and burns paired long and short tokens against cUSDC collateral at NAV. It also stores each market’s price, risk state and solvency target.clpis the protocol’s trading and treasury program. It hosts both trading venues and the vaults that stock them.- The keeper is an off-chain service run by the protocol. It pushes prices on-chain, manages the bin books, settles committed orders, and posts fees and volatility decay.
The system at a glance
Minting and redeeming
The only program a user writes to for issuance ismint-redeem:
mint_paired(collateral_amount)deposits cUSDC and mints matched long (L) and short (S) tokens at NAV.redeem_paired(l_amount, s_amount)burns long and short tokens and returns cUSDC at NAV. Both amounts must be above zero and are maxima: the program burns the largest value-balanced pair inside them, and the rest of the larger leg stays in your wallet.
P and a constant K = initial_l_price × initial_s_price. L_NAV = P and S_NAV = K / P × γ, where γ (at most 1) is the short leg’s volatility decay. So L_NAV × S_NAV = K·γ, and as one leg rises the other falls reciprocally. A paired mint deposits exactly the NAV value of the tokens it creates. No user path mints one side alone; see Solvency.
→ Paired tokens · NAV math · Full reference
The trading venues
Trading a single leg happens in theclp program, which has two venues of its own. Which one fills depends on whether the market’s price is live:
Every market has its two bin books. Since 11 Oct 2026, committed orders are switched on for every live market, and they are the only one of the protocol’s own venues that fills while prices are pushing.
pool_swap fails with PoolClosedWhileLive until the price is more than 300 s old outside Normal. The instant oracle swap (clp_swap) was retired the same day and always fails with SwapDisabled. The order book is a third venue. It is a Manifest book where traders trade with each other, reached through the trading program, and it is open at any hour, and while a market is closed the app shows its orders and the bin books’ quotes as one book.
1. Bin books: closed hours, small
Each market has one protocol-owned pool per side: 26 books across the 13 live markets. The bins sit inline in thePool account in two zones, with fine core steps near the centre and wide wings further out (QQQ: three 20 bps core steps, then 300 bps wings). The keeper centres each book on NAV plus a small inventory shift, and repositions it when NAV drifts past a gate of at most 20 bps.
Standing depth is deliberately lean. It is sized to organic demand rather than TVL, because the loss to toxic arbitrage grows with deployed depth. Depth is sized per market to measured demand, at least $500 a side. They fill only while the market’s price is stale: when mint and redeem freeze off-hours, the keeper replaces them with a demand-sized free-float book and pool_swap opens.
2. Committed orders: open hours, any size
This is the open-hours path, at any size. You escrow your input into anOrder PDA. The order fills at a keeper push made after your commit (not necessarily the first one), at NAV ± max(commit_spread_bps, 10) bps, where the keeper posts commit_spread_bps from the books’ volatility model. Because the price is set after you commit, there is no stale quote to pick off, so there is no size or window cap. The limits are oracle health, the collateral floor and the inventory the keeper has provisioned.
- Only the keeper can settle (
clp.authorityormarket.keeper_authority), at the first push it sees after the commit, so the owner can’t pick the price. - If a payout or refund can’t reach the owner’s recorded account, the order is held and a permissionless
claimpays the owner later. - A
min_outmiss refunds in full and closes the order, so it can’t loop on reverts. - After the 180 s TTL, anyone can send
cancel_swap, and the escrow goes back to its owner. The keeper does it about 5 s after expiry. It checks nothing else, so escrowed funds come back whatever the oracle, keeper or admin state. - Every terminal path closes the
Orderaccount and returns its rent to the user.
End-to-end mint flow
TwapNotAvailable when the last push is more than 300 s old.
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, volatility decay and what they imply for P&L.
CLP and the venues
Book geometry, committed-order mechanics, vault plumbing.
Keeper
Price pushes, book management, settlement crank, fee and decay posting.

