Deploy Phase 2 (TGE)
SeatToken, StakingPool, LpLocker, multi-desk wiring — the token-generation deployment and its double confirmation.
Planned
DeployPhase2.s.sol implements the Phase 2 token generation event. Code shipped, never deployed. The full design is in the repo's Phase 2 doc.
Guards
CONFIRM_MAINNET=I_UNDERSTANDCONFIRM_SEAT_TGE=I_UNDERSTAND- Chain
4663, official USDG,OWNER== broadcaster.
What it deploys / does
SeatToken— 1,000,000,000$SEAT(18 decimals) minted once toSEAT_HOLDER(defaults toOWNER). No mint function exists after construction.StakingPool—$SEATstaking with anaccUsdgPerSharereward accumulator.LpLocker— locks a Uniswap v3 position NFT for ≥ 365 days.- Extra desks —
LEADER_2andLEADER_3each get a desk if set; unset leaders are skipped. - Fee wiring — sets each vault's
stakerRecipientto the staking pool, activating the 70/20/10 leader/protocol/staker split. - Listing bond — factory
listingBondset toLISTING_BOND_SEAT(default100_000e18).
What it deliberately does not do
- No LP mint. If
SEAT_LP_USDGis set, the script logs the intent to seed a$SEAT/USDG pool at the cited NPM (0x7399…E0D3) — the actual position mint stays a manual operator step, then the NFT is locked viaLpLocker. - No router changes. Execution posture is unchanged by the TGE.
Configuration
env
# everything from the mainnet deploy, plus:
CONFIRM_SEAT_TGE=I_UNDERSTAND
SEAT_HOLDER=<token-recipient>
LISTING_BOND_SEAT=100000000000000000000000 # 100k * 1e18
LEADER_2=<second-leader> # optional
LEADER_3=<third-leader> # optional
SEAT_LP_USDG=<intended-lp-usdg-amount> # optional, log-onlybash
make deploy-phase2Post-TGE checklist
make write-addresses, commit.- Distribute
$SEATper the allocation — the buckets are post-TGE transfers fromSEAT_HOLDER, not mints. - Mint the LP position manually, then lock the NFT in
LpLockerfor ≥ 365 days. - Verify
stakerRecipienton every vault and a nonzerolistingBondon the factory.