As of 10 Oct 2026 the
RegistryState PDA (ED8joCbjr7hnWPgmiGspQ2LNpUJGfjobZYqEHD1PWyE1) has market_count = 0, and no MarketEntry accounts exist. The only venue type is MeteoraDlmm, so the registry can’t yet describe the native bin books that every market trades on.Accounts
RegistryState PDA
MarketEntry PDA
symbol_bytes is the symbol in uppercase, zero-padded to 16 bytes. "qqq" and "QQQ" both map to b"QQQ\0\0\0\0\0\0\0\0\0\0\0\0\0".
Instructions
Every instruction exceptinitialize needs the authority stored in RegistryState as signer. Any other signer fails Anchor’s has_one check (2001).
initialize()
Creates RegistryState once and records the signer as authority. The signer must be the program’s upgrade authority. Pass the program account as program and its ProgramData account as program_data. A ProgramData account that doesn’t belong to this program fails with InvalidProgramData; any other signer fails with UnauthorizedInitializer. Accounts: registry, authority, program, program_data, system_program.
register_market(symbol: String, params: MarketParams)
Creates the MarketEntry for symbol, sets is_active = true and increments market_count. MarketParams has seven fields: long_mint, short_mint, venue, long_pool, short_pool, long_position and short_position. The symbol is uppercased and must be at most 16 bytes (SymbolTooLong). Registering a symbol twice fails because its PDA already exists. Accounts: registry, market_entry, authority, system_program.
update_market(symbol: String, params: MarketParams)
Overwrites all seven MarketParams fields of an existing entry, so pass every field, including the unchanged ones. symbol and is_active stay as they are.
update_positions(symbol: String, long_position: Pubkey, short_position: Pubkey)
Overwrites only the two position fields.
set_active(symbol: String, is_active: bool)
Sets the is_active flag. No program checks the flag, so setting it to false pauses nothing.
transfer_authority(new_authority: Pubkey)
Replaces authority.
The published IDL carries no PDA seeds and no System Program address for this program, so a client must pass every account explicitly.
Errors
→ Full error catalog
TypeScript
Reading the registry works today and shows that it is empty.provider is set up as in SDK setup, and the IDL is published in continuum-docs/idl.
Where to get market addresses
Use Addresses or Live markets for mints, Market PDAs and bin-book pools. You can also derive the Market,Clp and Pool PDAs from their seeds, as shown in IDLs and PDAs.
See also
Live markets
Every devnet market with its addresses.
Addresses
Program IDs, mints, PDAs and vaults.

