Deployment addresses
Public testnet object IDs and coin types for the Phasis options protocol on Sui.
All IDs below are for Sui testnet. They are public and safe to hardcode in testnet integrations.
The canonical source of truth for these values is deployments/testnet-public.json in the Phasis repository. The SDK re-exports the most frequently used IDs as named constants from @phasis-lab/sdk (see the constants module).
IDs may change on a protocol upgrade or fresh redeployment. Always pull from the JSON source of truth rather than copying from secondary sources.
Core protocol
| Constant | Object ID | Purpose |
|---|---|---|
PACKAGE_ID_TESTNET | 0xb776a222435ff8ccb5c612af7d3a9f7119df60225c9bf5782fb75dfa5bf2ffb2 | option_deepbook Move package |
REGISTRY_ID_TESTNET | 0x37018b643482ad45c4bce1e5d3ffe9268af340262e19278a3eb0b8ad08542ecb | Singleton OptionsRegistry (shared) |
ACCOUNT_REGISTRY_ID | 0x5b6ca0125fb39530de62186f7e5973d60f6cf27c879a901ce6f415cdafe38704 | Shared AccountRegistry (book-only) |
Markets
| Asset | Object ID |
|---|---|
| BTC market | 0xbac3cacd5169a741ab179f34e94011a3653835402732ebbfaad8bc18a5d8d264 |
Additional asset markets (ETH, SUI) will be listed here as they are deployed.
Stress snapshots
Stress snapshots are per-asset shared objects used as input to margin recomputation and trade gating. Pass the appropriate snapshot when calling placeTrade, cancelOrder, or refreshAssetMargin.
| Asset | Object ID |
|---|---|
| BTC | 0x513b72314c521cf4d20c31ace3f2e2a13e8813aa0c5a59700c02f5a39fc1f1d4 |
| ETH | 0x3ad8fb0e53e9024bcfe86f044da79aea75919d49c8fc6fcb4082b2790f7fc160 |
| SUI | 0x46221874fe3ef41cb773bf3b16e6c41044ba631266264644d137d1f061b9088b |
The SDK exports the BTC snapshot as STRESS_SNAPSHOT_ID_TESTNET for convenience.
USDC (quote asset)
| Key | Value |
|---|---|
QUOTE_COIN_TYPE_TESTNET | 0x949572061c09bbedef3ac4ffc42e58632291616f0605117cec86d840e09bf519::usdc::USDC |
This is a permissionless faucet USDC. Use the usdc::mint entry on the faucet registry to obtain test funds.
Pyth Lazer oracle
| Key | Object ID |
|---|---|
| Lazer package | 0xacb76cbd636b83839153feff75b83157c400075717ce8c979fbbe88cf3564901 |
| Lazer state | 0x7b570126bfdcc7f7b2b4028445d4ac1d35c41da498606a2b097c3973425698d3 |
Pyth Lazer feed IDs used by the protocol: BTC = 1, ETH = 2, SUI = 11.
LP vault (Phasis LP)
| Key | Object ID / Type |
|---|---|
| Vault package | 0x24b23ca7375d30b729538a15ecc0483e38144b268631c08fc75395af5b37794f |
| Vault object | 0xe13a1175bc50f1d6f1495d16aa443e22ca40c8a1d1a49380280e0540566ebcc9 |
| Vault account | 0xde1014619fa2842d8971a0334c9acb68f84816f1440eee5ccb3932dabb0c5685 |
| PLP coin type | 0x24b23ca7375d30b729538a15ecc0483e38144b268631c08fc75395af5b37794f::plp::PLP |
SDK usage
import {
PACKAGE_ID_TESTNET,
REGISTRY_ID_TESTNET,
STRESS_SNAPSHOT_ID_TESTNET, // BTC snapshot
QUOTE_COIN_TYPE_TESTNET,
} from '@phasis-lab/sdk';
// Or fetch dynamically at startup
import { getRegistry, getAccountRegistryId } from '@phasis-lab/sdk';
const registry = await getRegistry(client, REGISTRY_ID_TESTNET);
const accountRegistryId = await getAccountRegistryId(client, REGISTRY_ID_TESTNET);Full deployment JSON
{
"network": "testnet",
"package_id": "0xb776a222435ff8ccb5c612af7d3a9f7119df60225c9bf5782fb75dfa5bf2ffb2",
"registry_id": "0x37018b643482ad45c4bce1e5d3ffe9268af340262e19278a3eb0b8ad08542ecb",
"account_registry_id": "0x5b6ca0125fb39530de62186f7e5973d60f6cf27c879a901ce6f415cdafe38704",
"markets": {
"BTC": "0xbac3cacd5169a741ab179f34e94011a3653835402732ebbfaad8bc18a5d8d264"
},
"stress_snapshot_ids": {
"BTC": "0x513b72314c521cf4d20c31ace3f2e2a13e8813aa0c5a59700c02f5a39fc1f1d4",
"ETH": "0x3ad8fb0e53e9024bcfe86f044da79aea75919d49c8fc6fcb4082b2790f7fc160",
"SUI": "0x46221874fe3ef41cb773bf3b16e6c41044ba631266264644d137d1f061b9088b"
},
"usdc_type": "0x949572061c09bbedef3ac4ffc42e58632291616f0605117cec86d840e09bf519::usdc::USDC"
}Deposit, trade, withdraw
Step-by-step SDK examples for opening an account, depositing USDC, placing option trades, cancelling orders, refreshing margin, and withdrawing.
Reading market & account data
SDK reader functions for registry state, markets, series, accounts, orderbook levels, and stress snapshots.