Environment Variables

All VRAM HUB binaries are configured via environment variables. Copy .env.example to .env and fill in the required values.

Required for All Nodes

Variable Description
VRAMHUB_SUI_RPC_URL Sui RPC endpoint. Testnet default: https://fullnode.testnet.sui.io:443
VRAMHUB_WALLET_MNEMONIC 12 or 24 word BIP-39 mnemonic for your Sui wallet
VRAMHUB_PACKAGE_ID Deployed Move package object ID
VRAMHUB_PEER_REGISTRY_ID PeerRegistry shared object ID
VRAMHUB_ENCLAVE_REGISTRY_ID EnclaveRegistry shared object ID
VRAMHUB_SCORE_LEDGER_ID ScoreLedger shared object ID
VRAMHUB_ROUND_STATE_ID RoundState shared object ID
VRAMHUB_HPARAMS_ID Hparams shared object ID
VRAMHUB_REWARD_POOL_ID RewardPool shared object ID

Miner-Only

Variable Description Required
VRAMHUB_MINER_UID Your registered peer UID. Optional — auto-registered on first startup and saved to .vramhub-uid No
VRAMHUB_R2_ACCOUNT_ID Cloudflare account ID Yes
VRAMHUB_R2_BUCKET_NAME R2 bucket name for gradient uploads Yes
VRAMHUB_R2_ACCESS_KEY_ID R2 access key with read+write permissions Yes
VRAMHUB_R2_SECRET_ACCESS_KEY R2 secret access key Yes
VRAMHUB_BATCH_SIZE Training batch size (default: 4 for nano-GPT) No
VRAMHUB_DEVICE Training device override: cpu, cuda, cuda:0, cuda:1, metal (default: auto-detect) No
VRAMHUB_SIDECAR_URL Python sidecar URL when using --features sidecar (default: http://127.0.0.1:7070) No
VRAMHUB_SKIP_SEAL Set to true to skip Seal IBE credential encryption during testing No

Testnet / Points Tracker

Variable Description Required
VRAMHUB_TESTNET_MODE Set to true to enable testnet-specific behaviour (points accrual, genesis miner tracking). Automatically set when running against testnet RPC. No
VRAMHUB_POINTS_API_URL URL of the vramhub-points REST API (default: http://localhost:8080). VRAMScan reads this for the leaderboard and genesis-miners pages. No
VRAMHUB_EARLY_BONUS_END Unix timestamp (ms) when the 2× early-miner points bonus expires. Set to VRAMHUB_POINTS_GENESIS_MS + 7776000000 (90 days). If unset, early bonus is always active. No
VRAMHUB_MINER_BPS Miner share of per-window emission in basis points (default: 10000 on testnet, 7200 post-v0.5). No
VRAMHUB_VALIDATOR_BPS Validator share of per-window emission in basis points (default: 0 on testnet, 1800 post-v0.5). No
VRAMHUB_TREASURY_BPS Treasury share of per-window emission in basis points (default: 0 on testnet, 1000 post-v0.5). MINER_BPS + VALIDATOR_BPS + TREASURY_BPS must equal 10000. No

Validator-Only

Variable Description Required
VRAMHUB_VALIDATOR_UID Your registered validator UID Yes
VRAMHUB_NAUTILUS_URL Enclave HTTP endpoint (default: http://localhost:3000) Yes
VRAMHUB_SEAL_KEY_SERVER_IDS Comma-separated Seal key server object IDs Yes
VRAMHUB_SEAL_THRESHOLD Seal key server threshold t-of-n (default: 2) No
VRAMHUB_R2_ACCOUNT_ID Cloudflare account ID (for downloading miner gradients) Yes
VRAMHUB_R2_ACCESS_KEY_ID R2 access key Yes
VRAMHUB_R2_SECRET_ACCESS_KEY R2 secret access key Yes

Testnet Object IDs

All values are pre-filled in .env.example. Only VRAMHUB_WALLET_MNEMONIC and R2 credentials need to be set.

Object ID
Package 0x5c1d404ea378840dacf426275d01827bbc89de2b23861208c8a8afb180b063a6
PeerRegistry 0x8c8d41bade57edeb82f08063c1eeaa68297f87bb06ed177a10f947455cc8a009
ValidatorRegistry 0x438d0ce63d40210d4e621cca6aaaf5d5438adaa54dfd71383fe41a82692a2561
RewardPool 0x576ebeb78449ad46ef70dc3c5ca4e38d178846610bd7cf9f0764ae2f1dc0fe93

Example .env

# Sui — testnet
VRAMHUB_SUI_RPC_URL=https://fullnode.testnet.sui.io:443
VRAMHUB_WALLET_MNEMONIC=your twelve or twenty four word mnemonic here
VRAMHUB_PACKAGE_ID=0x5c1d404ea378840dacf426275d01827bbc89de2b23861208c8a8afb180b063a6

# Shared objects (pre-filled for testnet)
VRAMHUB_PEER_REGISTRY_ID=0x8c8d41bade57edeb82f08063c1eeaa68297f87bb06ed177a10f947455cc8a009
VRAMHUB_VALIDATOR_REGISTRY_ID=0x438d0ce63d40210d4e621cca6aaaf5d5438adaa54dfd71383fe41a82692a2561
VRAMHUB_REWARD_POOL_ID=0x576ebeb78449ad46ef70dc3c5ca4e38d178846610bd7cf9f0764ae2f1dc0fe93

# Miner
VRAMHUB_MINER_UID=            # leave blank — auto-registered on first run
VRAMHUB_R2_ACCOUNT_ID=your_cloudflare_account_id
VRAMHUB_R2_BUCKET_NAME=vram-gradients-yourname
VRAMHUB_R2_ACCESS_KEY_ID=your_r2_access_key
VRAMHUB_R2_SECRET_ACCESS_KEY=your_r2_secret_key

# Optional: GPU device (auto-detected if not set)
# VRAMHUB_DEVICE=cuda:0

# Optional: Python sidecar URL (only needed with --features sidecar)
# VRAMHUB_SIDECAR_URL=http://127.0.0.1:7070

# Testnet points tracker (vramhub-points binary)
VRAMHUB_TESTNET_MODE=true
VRAMHUB_POINTS_API_URL=http://localhost:8080
# VRAMHUB_EARLY_BONUS_END=    # set to genesis_ms + 7776000000 (90 days)
# VRAMHUB_MINER_BPS=10000     # testnet: 100% to miners; mainnet v0.5: 7200
# VRAMHUB_VALIDATOR_BPS=0     # mainnet v0.5: 1800
# VRAMHUB_TREASURY_BPS=0      # mainnet v0.5: 1000

# Validator
VRAMHUB_VALIDATOR_UID=
VRAMHUB_NAUTILUS_URL=http://localhost:3000
VRAMHUB_SEAL_THRESHOLD=2