Skip to main content
You can interact with Continuum from any Solana-compatible client - TypeScript / Anchor is the most-trodden path. This page sets up a minimal project end-to-end.

Stack

Minimal project

Get the IDLs:
(Mainnet release will publish IDLs to a CDN as well; for now use the repo source.)

Boilerplate (client.ts)

Anchor v0.32 derives types from the IDL automatically - no separate codegen step. The as any casts are for IDL types that don’t perfectly satisfy the strict Anchor 0.32 IDL schema; they’re a no-op at runtime.

Loading the right IDL

Each IDL embeds the program ID. After clone-and-copy, verify they match the cluster you’re targeting:
Devnet IDs are listed in Programs overview. Mainnet IDs (when launched) will differ - keep cluster-specific IDLs side by side.

RPC choice

Public devnet (https://api.devnet.solana.com) is fine for one-off scripts. For anything that polls or runs continuously, use a private RPC. Helius, Triton, QuickNode all work. Examples:
The reference frontend supports comma-separated lists for multi-RPC fallback. Roll your own if you need:

Wallet

For browser apps use Solana Wallet Adapter. For scripts, use a file-loaded keypair as above. If you’re testing as the keeper authority on devnet, the relevant keypairs are:
  • KEEPER_KEYPAIR - payer + arb signer.
  • CLP_AUTHORITY_KEYPAIR - separate keypair that signs CLP CPI instructions.
These should be different from the admin authority for mainnet operation.

Devnet fund-up

For cUSDC on devnet, use the faucet program.

First call: read a market

If this works, your provider is correctly wired and you have read access. The next step is a transaction.

Common pitfalls

Wrong IDL for the cluster. If the IDL’s embedded program ID doesn’t match the deployed program, every method call will fail with ProgramId mismatch or similar. Re-fetch IDLs after switching clusters. Missing ATAs. Mint and redeem instructions assume the user’s L, S, and cUSDC ATAs exist. Pre-create them with createAssociatedTokenAccountIdempotentInstruction to avoid AccountNotFound on first interaction. Anchor 0.32 type issues. Some IDLs need as any casts on new Program() due to strict typing introduced in 0.32. Runtime behavior is unaffected. Decimal mismatch. cUSDC and L/S all use 6 decimals. When computing display values, divide by 10**6. When constructing BN arguments to instructions, multiply by 10**6.

See also

IDLs and PDAs

Where IDLs ship, PDA derivation patterns.

Mint and redeem example

End-to-end script: drip cUSDC, mint, redeem, verify.