Cluster
Program IDs
The program source is not public. IDLs generated from the deployed source are published in the docs repo, and each one is also available raw at
https://raw.githubusercontent.com/continuum-markets/continuum-docs/main/idl/<name>.json. Mainnet IDs will differ.
The registry is deployed and initialized, but it holds no markets and nothing reads it yet. Take market addresses from Addresses.
cUSDC (devnet collateral)
EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v).
Faucet
Thefaucet program drips 1,000 cUSDC to a wallet once every 24 hours. The live FaucetState has drip_amount = 1000000000 and cooldown_seconds = 86400.
In the app, click Get 1000 cUSDC on /faucet. From code, call the drip instruction; see Faucet program. The recipient pays rent for its DripRecord account on the first drip, and a second drip inside 24 hours fails with CooldownNotElapsed.
Live markets
Thirteen markets are live on devnet (MSTR was closed on 12 Oct 2026). All their addresses (mints, books, vaults) are on Addresses.
OIL was withdrawn on 30 Aug 2026. Its
Market account is still marked active, but the keeper no longer prices it, so mint and redeem on it revert. VXX was delisted in June 2026. Both left bin books on chain; ignore them.
How prices work on devnet
The keeper pushes every price
Every devnet market runs in theProxyMode risk state, which multiplies fees and the confidence band by 1.5. In ProxyMode the programs price from Market.user_twap_price, which the keeper writes with mint-redeem update_risk_state_v2, together with twap_updated_at. Despite its name, user_twap_price is a spot price, scaled to 1e6 and adjusted for corporate actions. The oracle program’s OracleConfig is not updated on devnet, so do not read it for live prices.
Pyth’s public price endpoint now requires an API key, so the devnet keeper prices markets from a free public quote source. A GJR-GARCH volatility model sets the confidence band. Each price is checked against Hyperliquid before it is pushed, and a disagreement blocks the push. Hyperliquid can veto a price but never sets one; if it is unreachable, the price goes through unchecked. Mainnet will use Pyth (Pyth Pro).
Committed orders while open, bin books while closed
Since 11 Oct 2026 every live market’sClp account has swap_guards.enabled set, so committed orders work on all 13. The instant oracle swap (clp_swap) was retired the same day and reverts with SwapDisabled everywhere. The bin books (pool_swap) don’t check the flag, but fill only while a market’s price is more than 300 s old, which on devnet’s ProxyMode markets means while the underlying is closed. Otherwise they fail with PoolClosedWhileLive.
No fresh price, no mint or redeem
Mint and redeem revert withTwapNotAvailable when user_twap_price is 0 or twap_updated_at is more than 300 s old. There is no fallback to initial_l_price. A keeper restart or outage longer than 300 s pauses mint and redeem in the same way.
Off-hours
The keeper withholds a market’s push once its source price is more than 120 s old. That happens when the underlying market closes: outside regular US trading hours for stocks and ETFs, and mainly at weekends for FX and metals. 300 s after the last push, mint and redeem freeze. The bin books open. The keeper replaces each book with a free-float book: each side in one bin within 1% of the last price, sized to measured demand ($500 a side until the keeper has measured flow), and limited by a risk cap on that market’s share of the treasury. When other venues show the price has moved, it pulls the bins on the stale side. The first fresh push reopens mint, redeem and committed orders, closes the books to trading and re-centres them.Explorers
Reporting issues
- Discord: join the server and post in #help. New members can post ten minutes after joining.
- Errors in these docs: continuum-markets/continuum-docs.

