phasis.
Phasis Docs
Developers

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

ConstantObject IDPurpose
PACKAGE_ID_TESTNET0xb776a222435ff8ccb5c612af7d3a9f7119df60225c9bf5782fb75dfa5bf2ffb2option_deepbook Move package
REGISTRY_ID_TESTNET0x37018b643482ad45c4bce1e5d3ffe9268af340262e19278a3eb0b8ad08542ecbSingleton OptionsRegistry (shared)
ACCOUNT_REGISTRY_ID0x5b6ca0125fb39530de62186f7e5973d60f6cf27c879a901ce6f415cdafe38704Shared AccountRegistry (book-only)

Markets

AssetObject ID
BTC market0xbac3cacd5169a741ab179f34e94011a3653835402732ebbfaad8bc18a5d8d264

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.

AssetObject ID
BTC0x513b72314c521cf4d20c31ace3f2e2a13e8813aa0c5a59700c02f5a39fc1f1d4
ETH0x3ad8fb0e53e9024bcfe86f044da79aea75919d49c8fc6fcb4082b2790f7fc160
SUI0x46221874fe3ef41cb773bf3b16e6c41044ba631266264644d137d1f061b9088b

The SDK exports the BTC snapshot as STRESS_SNAPSHOT_ID_TESTNET for convenience.

USDC (quote asset)

KeyValue
QUOTE_COIN_TYPE_TESTNET0x949572061c09bbedef3ac4ffc42e58632291616f0605117cec86d840e09bf519::usdc::USDC

This is a permissionless faucet USDC. Use the usdc::mint entry on the faucet registry to obtain test funds.

Pyth Lazer oracle

KeyObject ID
Lazer package0xacb76cbd636b83839153feff75b83157c400075717ce8c979fbbe88cf3564901
Lazer state0x7b570126bfdcc7f7b2b4028445d4ac1d35c41da498606a2b097c3973425698d3

Pyth Lazer feed IDs used by the protocol: BTC = 1, ETH = 2, SUI = 11.

LP vault (Phasis LP)

KeyObject ID / Type
Vault package0x24b23ca7375d30b729538a15ecc0483e38144b268631c08fc75395af5b37794f
Vault object0xe13a1175bc50f1d6f1495d16aa443e22ca40c8a1d1a49380280e0540566ebcc9
Vault account0xde1014619fa2842d8971a0334c9acb68f84816f1440eee5ccb3932dabb0c5685
PLP coin type0x24b23ca7375d30b729538a15ecc0483e38144b268631c08fc75395af5b37794f::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"
}

Connect a Wallet

No Sui wallet detected in this browser.

Install Sui Wallet

Phasis supports any wallet that implements the Sui Wallet Standard.