Quickstart
Mint your first paired position on devnet in five minutes.
Concepts
The mental model: paired tokens, NAV, oracle, keeper, CLP.
Build
TypeScript SDK setup, IDLs, PDAs, end-to-end examples.
Programs
On-chain instruction and account reference.
What you can build
Long and short tokens are standard SPL tokens, so other programs and apps can use them directly. Some examples:- Wrapper UIs that offer long-only or short-only flows on top of the paired primitive.
- Structured products, such as delta-neutral baskets or dispersion trades, that combine several markets.
- Trading bots that trade the bin books when they drift from NAV.
- Portfolio analytics that value positions from on-chain NAV, with no off-chain feed.
- CPI integrations where another Solana program holds, mints or redeems Continuum positions as part of a larger flow.
How it works
A user callsmint_paired(collateral_amount) on the mint-redeem program. The program reads the price that the keeper last pushed to the Market account and takes the mint fee. It sends the deposit to the market’s collateral vault, except for a dev tax of 10% of the fee. Then it mints long (L) and short (S) tokens, each worth half of the deposit after the fee.
The long leg is priced at the asset price P, adjusted for any corporate action. The short leg is priced at K / P × γ, where K = initial_l_price × initial_s_price and γ is the short leg’s volatility-decay index. So L × S = K × γ, and as one leg rises the other falls. Mint and redeem also quote each leg against the user by the oracle confidence band. This worst-case quoting is on for every market except QQQ (as of 10 Oct 2026).
To exit, the user calls redeem_paired(l_amount, s_amount) with both amounts above zero. The program burns the largest value-balanced pair inside them, leaves the rest of the larger leg in the wallet, and pays collateral at NAV, less the redeem fee. In between, both tokens trade on Continuum’s own venues: committed orders while the market is open, and a bin book per leg for instant trades while it is closed. A committed order fills at NAV ± the posted commit spread (at least 10 bps), at a price pushed after the order was placed.
A keeper run by the protocol pushes prices and re-centres the books. Mint and redeem need a price pushed in the last 300 s, so they pause while the underlying market is closed or the keeper is down. The books trade then.
Where this doc lives in the stack
keeper_authority and book updates as the CLP authority. Your transactions go directly to the programs and never need its keys, but mint and redeem rely on its recent price push.
Core invariants you can rely on
- Paired mint and redeem. User mints always create both legs, and user redeems always burn both. The single-leg mint and redeem instructions require the keeper authority.
- NAV on chain.
L = PandS = K / P × γ. γ starts at 1, andset_s_gamma_indexrejects any write that raises it. - Fresh-price gate. Mint and redeem revert with
TwapNotAvailablewhen the pushed price is 0 or more than 300 s old. In theStressrisk state both are blocked by default. - No redemption race. If a vault ever falls below 100% collateralized, redeem pays each holder their NAV claim times the collateral ratio, so early redeemers cannot drain it.
What’s not here
- No funding rate. Nobody pays for being on the crowded side. The short leg’s volatility decay charges realized volatility instead, and never touches longs.
- No liquidations. Nothing can close your position; you hold the token.
- No leverage. You pay the full value of both legs when you mint.
- No outside AMM. Trading happens on Continuum’s own bin books and committed orders, and on a Manifest order book that traders reach through Continuum’s
tradingprogram. - No user yield vaults. The protocol funds the CLP’s capital itself, and there are no user LP shares.
Get oriented
- Just want to interact? → Quickstart
- Want the mental model first? → How Continuum works
- Want to start building? → SDK setup
- Want the on-chain instruction reference? → Programs overview

