Skip to main content
Continuum has three moving pieces. Two live on-chain, one runs off-chain.
  • 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

Everything a user touches is protocol-native. There is no external AMM in the call path.

Minting and redeeming

The only program a regular user writes to for issuance is mint-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.
NAV is bound by a constant-product invariant: 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 the clp 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 the Pool 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 an Order 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_out miss refunds in full - terminal, not a revert loop.
  • cancel_swap refunds 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.
The frontend auto-switches to committed mode above $5k notional (overridable).

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

The user’s transaction is independent of the keeper - the keeper is never in the mint/redeem call path.

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.