market-addresses.json snapshot) to discover live markets.
Accounts
RegistryState PDA
MarketEntry PDA
"QQQ", the seed is b"QQQ\0\0\0\0\0\0\0\0\0\0\0\0\0".
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)
Legacy: mirrored external LP position pubkeys in v1. Unused since the v2 cutover to native books.
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
TypeScript
Why use the registry vs market-addresses.json
The frontend currently uses
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.

