Mainnet Checklist
Last updated
ksUSD is not yet deployed to mainnet. This page is the launch checklist that gates the mainnet program-deploy transaction. One program, one vault, one mint.
Pre-deployment (v1). The perp venue is Phoenix Perps (Ellipsis Labs), USDC margin via Ember, integrated by on-chain CPI (Rise SDK). Before it can post margin, the vault's trader PDA needs its
CAN_DEPOSIT/CAN_WITHDRAWcapabilities enabled — a self-serve step against Phoenix's public endpoint, claimed byscripts/onboard/onboard.ts. The exchange still reports itself gated, so treat it as unproven until the first send lands.
The program deploy itself is one script — scripts/mainnet/deploy-mainnet.sh — which builds, preflights, deploys, verifies the on-chain binary against the local build, writes the IDL, and records the deploy. Run --check first (no transactions), and --rehearse against devnet to walk the identical path.
If any of the following occur in the first 90 days post-launch:
Audit reveals a missed critical issue
set_pause(true) immediately; if non-recoverable, init_wind_down and coordinate redeploy under new program ID
NAV drawdown exceeds 3% within a week
emergency_close + set_pause(true); investigate before resuming
Phoenix or Kamino announce a critical incident
set_pause(true) until the dependency is verified safe
Pyth feed instability for > 1h
set_pause(true); instant withdrawals stay open
LST depeg auto-trip
Vault is already paused by settle; admin investigates and either unpauses or emergency-closes
In all cases, instant withdrawals from the liquidity buffer remain available. Depositors can always exit during a pause.
Last updated
npm run mainnet:deploy:check # preflight only
npm run mainnet:deploy # the real thing
npm run mainnet:deploy:verify # re-verify on-chain binary vs local build