DocsDeployment

Deployment Overview

The three deployment scripts, their guards, and the order of operations.

Deployment is Foundry scripts in contracts/script/, driven by Makefile targets. There are exactly three scripts, each with a distinct posture:

ScriptTargetGuardsPosture
DeployTestnet.s.sol46630none beyond a keyCash vault, no router ever, never deploys SeatToken
DeployMainnet.s.sol4663CONFIRM_MAINNET=I_UNDERSTANDCapped desk (50k USDG), no router, no TGE
DeployPhase2.s.sol4663CONFIRM_MAINNET and CONFIRM_SEAT_TGE=I_UNDERSTANDTGE (SeatToken, StakingPool, LpLocker), extra desks, staker fee wiring

Common flow

What every script deploys

  1. NavLib (library), FeeModule, RiskModule, ChainlinkOracle (mainnet only), SwapAdapter.
  2. DeskFactory wired to those modules.
  3. One bootstrap desk via factory.createDesk(leader) — the vault is created by the factory, not deployed directly.
  4. Risk parameters applied via configureDesk (mainnet only; testnet keeps constructor defaults).

Verification

The scripts do not run an explorer verification step. After deploy, confirm with cast:

bash
cast call $DESK_FACTORY "allDesks(uint256)(address)" 0 --rpc-url $RPC
cast call $DESK "navPerShare()(uint256)" --rpc-url $RPC

(Exact function selectors per the contract sources — see Contracts.)