Packages & Addresses
Networks & addresses
Where Automark lives on-chain: package IDs, shared objects, and faucets, per network.
Everything the runner and the SDK talk to is identified by an on-chain address. They're grouped by network; point your SUI_NETWORK at one and use the matching IDs.
Testnet is the only live network today. Mainnet IDs land here when the protocol ships.
Testnet
| What | Address |
|---|---|
| Automark package | 0x… *(pending publish)* |
| Vault primitive module | automark::vault |
| Strategy template package | 0x… *(pending publish)* |
| Predict package (venue) | 0x… |
| Oracle (shared object) | 0x… |
| Default RPC | https://fullnode.testnet.sui.io |
The SDK ships these defaults, so you rarely hand-wire them:
import { getNetworkConfig } from "@automark/sdk/network";
const cfg = getNetworkConfig("testnet");
// → { rpcUrl, predictServerUrl, packageId, ... }Your own IDs
Two addresses are *yours*, not the protocol's. They come from creating a vault, and you wire them into the runner's .env:
PLUGIN_<NAME>_VAULT_ID(e.g.PLUGIN_MY_STRATEGY_VAULT_ID): the vault your plugin operates. (The example ladder reads plainVAULT_ID.)OPERATOR_PRIVATE_KEY: the key authorized as that vault'soperator_address.
Faucet & explorer
- Faucet: testnet SUI for gas at faucet.sui.io (or
sui client faucet). - Explorer: inspect a digest or object on suiscan.xyz/testnet or suivision.xyz.
Concrete package IDs are filled in from the deployment manifest once the testnet package is published. Until then, the SDK's getNetworkConfig is the source of truth in code.