Skip to main content

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.

Continuum’s protocol layer is split across five Anchor programs. They are deployed to devnet today; mainnet IDs will be added when mainnet launches.
ProgramDevnet IDRole
mint-redeem5MBjhNUUguLTPNR5WG6YBUUw7vUcxQ14ARw3NsS3rKu4User-facing mint and redeem at NAV; keeper-only single-sided ixns.
oracle5vxiCrDpFnQ2W5QtgZBC66K2XTC19bjVBjinGYYBsadCPyth/Hermes price observations, TWAP, risk-state machine.
clp8xauDRjw9XRyk4FE3hW1JKjD8nC87gfr59Xig1dJqLESCapital and Liquidity Provider - vaults, Meteora DLMM proxy.
registryREGnHqnJMxLoRAKX5RqPd9VJGcZBNgmg4xs5bVGGTapMarket registry (symbol → market PDA + pools).
faucet (devnet only)9tUeQAPEtVSB68NSfvFAqfwaB74GuVxm6Zbp1hrMiNKYDrip cUSDC for testing.
governance (scaffolded, not active)6es5KcjMWKGhVWrttUytYiZ3YELXe4HQyrmsMVdbVawTCNTM staking, listings, parameter votes (future).

How they relate

mint-redeem ─── reads NAV from ──► oracle
mint-redeem ─── checked by      ──► clp (OI cap, inventory)
clp ─── proxies CPI to ──► Meteora DLMM (pool ops)
clp ─── allocates to    ──► per-market vaults
registry ─── lists ──► market PDAs
faucet ─── mints ──► cUSDC (devnet only)

IDLs

IDLs (Anchor interface description language) are JSON files describing each program’s instructions, accounts, and types. You need them to build instruction calls from a TypeScript client. The canonical IDLs ship in the protocol repo at target/idl/<program>.json. After cloning the repo and running anchor build, they regenerate. They’re also packaged in frontend/lib/idl/ for the official frontend. Drop them into your project:
# From a clone of the protocol repo:
cp target/idl/mint_redeem.json my-app/idl/
cp target/idl/oracle.json my-app/idl/
cp target/idl/clp.json my-app/idl/
cp target/idl/faucet.json my-app/idl/
Then in your TypeScript:
import idl from "./idl/mint_redeem.json";
import { Program } from "@coral-xyz/anchor";

const program = new Program(idl, provider);
Anchor v0.32 derives types from the IDL automatically. No separate type generation step.

PDAs at a glance

ProgramPDASeeds
mint-redeemMarket[b"market", asset_symbol]
mint-redeemUserCollateralPosition[b"user_collateral", owner, market]
mint-redeemFeeWaiver[b"fee_waiver", donor, market]
oracleOracleConfig[b"oracle_config", market_id]
oracleOracleFeed[b"oracle_feed", oracle_config, pyth_oracle]
clpGlobalClp[b"global_clp"]
clpClp[b"clp", market_id]
clpAdminWithdrawWindow[b"admin_withdraw_window"]
registryRegistryState[b"registry"]
registryMarketEntry[b"market", symbol_padded_to_16]
faucetFaucetState[b"faucet", mint]
faucetDripRecord[b"drip", mint, recipient]

Authority model

Different operations require different signers:
AuthorityWhat it controls
Anyonemint_paired, redeem_paired, redeem_paired_with_waiver, donate_to_vault, faucet::drip
market.keeper_authoritykeeper_mint_single, keeper_redeem_single, update_risk_state, all clp_* Meteora-proxy ixns
market.authority (admin)update_market, update_keeper_authority, update_market_oracle, configure_*
globalClp.authority (admin)admin_fund, admin_withdraw, initialize_clp (per-market), update_oi_cap
oracle.admin_authorityupdate_oracle_config, configure_health_thresholds, force_price (devnet), emergency_pause
oracle.keeper_authorityupdate_price_observation
The keeper_authority and admin_authority are typically separate keypairs - a keeper rotation doesn’t require admin signature. Mainnet authorities will be Squads multisigs.

Errors

Each program exposes its own error catalog. Anchor maps them to numeric codes starting at 6000 per program. Full lookup table: Reference → Errors. Programs:

Choosing what to call

GoalProgramInstruction
Mint a paired positionmint-redeemmint_paired
Redeem at NAVmint-redeemredeem_paired
Read NAV / risk statemint-redeem (Market account)account fetch only
Read fine-grained oracle dataoracle (OracleConfig)account fetch only
Read OI cap / depthclp (Clp account)account fetch only
Get devnet cUSDCfaucetdrip
Operator: list a marketmint-redeem + clpinitialize_market then initialize_clp
Operator: fund treasuryclpadmin_fund
For trading L/S directly (not at NAV), use Meteora DLMM SDK - see Trade.

See also

mint-redeem

Paired mint/redeem; keeper single-side; market admin.

oracle

Price observations, TWAP, risk states.

clp

Capital vaults, DLMM proxy, OI cap.

SDK setup

Bootstrapping a TypeScript project against these programs.