Continuum has five moving pieces. Three live on-chain, two run off-chain.Documentation Index
Fetch the complete documentation index at: https://continuum-ec12e897.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
The system at a glance
What each piece does
mint-redeem - the user-facing entry point
The only program a regular user ever writes to. Two instructions matter for normal use:
mint_paired(amount)deposits cUSDC, mints matched long + short tokens at NAV.redeem_paired(l_amount, s_amount)burns long + short (in independent quantities) and returns cUSDC at NAV.
oracle - price and risk
Maintains a per-market price observation buffer, a TWAP, and a risk-state machine. The keeper pushes observations every ~15 seconds. The oracle’s state (Active / Passive) and risk regime (Normal / ProxyMode / Stress / Recovery) gate user-facing operations: if prices stale, mints throttle; if oracle goes passive, mints close.
→ Risk states explained · Full reference
clp - Capital and Liquidity Provider
Owns the protocol’s LP capital. A CLP PDA per market signs Meteora DLMM CPIs, holds the long/short token ATAs that back each LP position, and routes profit back into a global vault. There’s no end-user interaction here - CLP instructions are gated by keeper authority or admin authority.
The reason this is its own program: Meteora positions have an owner field. By making the CLP PDA the owner, no individual keeper wallet has unilateral control over LP capital, and operators can rotate keeper signers without re-creating positions.
→ Full reference
Keeper bot - off-chain, owns the loop
A Rust async bot (the public reference implementation) that runs:- Oracle loop (15s) - fetch Pyth/Hermes, push observations.
- Arb loop (15s) - scan pool prices vs NAV, execute the profitable side.
- DLMM loop (120s) - open / rebalance / close Meteora positions via CLP CPI.
- Seeder loop (600s) - allocate from global vault to per-market vaults; recall when worst-edge.
keeper_authority - this gives it access to fee-free single-sided mint/redeem (used inside arb cycles) and CLP proxy instructions. Anyone can run a keeper, but only one signer at a time is the canonical authority on a given market. Future versions will support multiple authorities and operator-specified rotation.
→ Keeper overview
Meteora DLMM - the trading venue
Continuum has no in-house AMM. Long and short tokens trade on Meteora DLMM pools (one L/cUSDC pool, one S/cUSDC pool per market). The protocol is the sole LP for the MVP; user-side LP shares don’t exist yet. From a user’s perspective:- Want to enter without minting? Buy QQQL or QQQS directly on the pool.
- Want to exit fast? Sell on the pool.
- Want to redeem at NAV? Burn paired (or asymmetric) on the mint-redeem program.
End-to-end mint flow
End-to-end redeem flow
Why this design
| Question | Answer |
|---|---|
| Why no funding rate? | The constant-product NAV invariant L_NAV × S_NAV = const bounds combined pair value. Gains on one side mirror losses on the other. There’s nothing to redistribute. |
| Why no liquidations? | A paired position prepays full collateral. There is no margin to call. |
| Why no in-house AMM? | Meteora DLMM is mature, has dynamic fees, and concentrated-liquidity bins. Building one in-house added zero edge. |
| Why is the keeper privileged? | The keeper’s single-sided mint/redeem is fee-free at the protocol layer - used inside two-phase arb cycles that net back to cUSDC. A user with the same privilege could mint unbacked claims. |
| Why is the protocol the sole LP? | MVP simplification. The mechanics for user LP shares exist in git history; turning them on is a future-work item. |
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.
Oracle and risk states
The state machine that gates mint sizing and quote conservatism.
Keeper
What the keeper does, why it has elevated privileges, and how it’s bounded.

