1. Long-only or short-only wrapper
The simplest integration. Most users want a one-click long or short, not “here’s a paired primitive”. Wrap it.pool_swap are atomic in one tx for book-sized amounts). For larger size, mint then commit_swap the unwanted leg - it fills at the next oracle print at NAV ± 10bps.
UX win: users don’t think about pair mechanics. They think “long” or “short”.
2. Arb bot
In v2 the venues self-peg (every venue prices off the same NAV), so the v1-style “race the pool back to NAV” bot is mostly gone. What remains:- The profit window is one keeper cycle (~30s) and the take is capped at the deliberately lean depth of the in-the-money bins - this is the protocol’s worst case by design, not a leak.
- Closing one-sided exposure risklessly requires the paired round trip, whose hurdle is the mint/redeem fee plus both spreads. Near NAV it rarely clears.
- Committed-order settlement (
settle_swap) is permissionless - cranking other users’ pending orders is a public good with no profit, but it means your bot never depends on the keeper’s liveness.
3. Structured products
Combine multiple Continuum positions to express more complex views.Dispersion: long index, short components
- Off-chain orchestrator: a TypeScript service that mints/sells across markets when a user clicks one button.
- On-chain wrapper: a program that bundles the multi-mint into one instruction (atomic, but heavier on accounts).
Delta-neutral basket
Equity-vs-FX cross
4. Portfolio analytics
L and S have on-chain NAV. P&L attribution is trivial: read the user’s L+S balances per market, computen_L × L_NAV + n_S × S_NAV, compare to deposit cost.
5. Custodial UX
A custodian (centralized wallet, broker, fintech app) takes user deposits and:- Mints Continuum positions on the user’s behalf.
- Reflects them in the user’s UI as “QQQ exposure” without exposing the paired primitive.
- Manages fees/slippage internally.
6. Liquidation-free leverage (off-protocol)
Continuum has no leverage. But you can synthetically leverage:7. Vault that auto-rebalances
A user deposits cUSDC into a program. The program:- Mints a target NAV-weighted basket of Continuum markets.
- Periodically (cron, or trigger-based via Switchboard) rebalances by mint/redeem to maintain target weights.
- Charges a management fee.
8. Cross-protocol routing
Aggregate Continuum’s mint/redeem with other DEX swap paths. For example, a user wanting to short QQQ has three paths:- Mint paired Continuum, sell the long leg on the book.
- Buy QQQS directly on the book or via a committed order (no mint).
- Borrow USDC on Kamino, buy QQQS, hold.
9. Predictive UI / pre-trade simulation
Use the on-chain NAV + your client-side knowledge of the constant-product invariant to simulate a trade before submission:10. Data product
Continuum’s on-chain state is rich - every mint/redeem, every TWAP push, every CLP allocation is on-chain. Indexers can:- Track keeper profitability over time (
deposit_profitix history). - Plot TWAP vs Pyth-spot divergence (where Continuum users got better/worse than spot).
- Aggregate per-user P&L across paired positions and pool trades.
Patterns we like
- Use NAV as the price-of-record. It’s on-chain, signed, and tamper-evident. Don’t roll your own price.
- Route by size. Small instant trades →
pool_swap. Anything that would walk the book →commit_swap(NAV ± 10bps at the next print, no size cap). Want the pair itself → mint/redeem. - Watch the risk state. Don’t queue mints during
Stress; surface to the user. - Don’t build keeper dependencies. Your integration shouldn’t break if the keeper is down for 5 minutes. Use NAV; redeem still works.
Patterns to avoid
- Don’t pre-mint and hold. Continuum positions are NAV-tracking; they don’t need pre-positioning. Mint at the moment of need.
- Don’t assume per-market NAVs are correlated. They are not - QQQ NAV is set by QQQ’s oracle, SPY by SPY’s. Your basket math should treat them independently.
- Don’t skip ATA creation. Idempotent ATA creation costs ~0.002 SOL once per (user, mint). Less than a transaction’s worth. Always pre-create.
- Don’t assume infinite OI. Each market has an
oi_cap. If your integration is cap-blowing for a small market, expect rejection. Surface this to the user.
Talk to us
If you’re building, drop a note in Discord - we’d love to feature your project and help with integration. Mainnet partner integrations get prioritized listing slots.See also
CPI integration
On-chain integration via Cross-Program Invocation.
Reading state
Pull all the data your integration needs.

