The registry program is the canonical on-chain index of Continuum markets. It maps each asset symbol to the corresponding mints, Meteora pool addresses, and current position pubkeys. Frontends and bots query it (or the bundledDocumentation 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.
market-addresses.json snapshot) to discover live markets.
Accounts
RegistryState PDA
| Field | Type | Purpose |
|---|---|---|
authority | Pubkey | Admin signer for registry updates |
market_count | u32 | Number of registered markets |
MarketEntry PDA
"QQQ", the seed is b"QQQ\0\0\0\0\0\0\0\0\0\0\0\0\0".
| Field | Type | Purpose |
|---|---|---|
symbol | [u8; 16] | Padded ticker |
long_mint / short_mint | Pubkey | L and S SPL mints |
venue | enum | MeteoraDlmm (only one for now) |
long_pool / short_pool | Pubkey | Meteora DLMM pool addresses |
long_position / short_position | Pubkey | Current LP position pubkeys (mirror of CLP) |
is_active | bool | If false, the market is paused |
Instructions
All instructions are admin-only.initialize
Create the RegistryState PDA. One-shot.
register_market(symbol, long_mint, short_mint, long_pool, short_pool, venue)
Add a new entry. Symbol must be ≤ 16 chars.
update_market(...)
Update mints, pools, or venue for an existing entry.
update_positions(symbol, long_position, short_position)
Mirror current CLP position pubkeys into the registry. Called after a Meteora rebalance.
set_active(symbol, is_active)
Flip the active flag. Set false to soft-pause a market without modifying anything else.
transfer_authority(new_authority)
Rotate admin. On mainnet, this will be a Squads multisig.
Errors
| Code | Name | Cause |
|---|---|---|
| 6000 | SymbolTooLong | Symbol > 16 chars |
TypeScript
Why use the registry vs market-addresses.json
| Use case | Best path |
|---|---|
| Local development, fast prototyping | market-addresses.json (pre-computed snapshot) |
| Production frontend, must be live | Registry - markets can be added/paused without redeploy |
| Bot needs to detect new markets | Registry, polled |
| Operator scripts, controlled deploy | Either - the JSON ships with the protocol repo |
market-addresses.json for fast load + the registry as the canonical source it refreshes from.
See also
Live markets
Pre-computed table of every devnet market and its addresses.
Listing flow
How a new market gets added to the registry.

