Deploy runbook
Pre-flight:
- [ ]
.envpopulated, all secrets present - [ ] Praetor multisig has 3 of 5 signers reachable
- [ ] LINK balance on Aqueduct prefund wallet ≥ 100 testnet LINK
- [ ] CI green on the commit being deployed
Wave 1, foundation
praetor deploy --network arbitrum_sepolia --contract praetor-timelock- Record address in
deployments/arbitrum-sepolia.json praetor deploy --contract cofferpraetor deploy --contract portico-registrypraetor deploy --contract sigilpraetor deploy --contract edict- Wire addresses into
apps/verify/.env.localandservices/codex/wrangler.toml
Wave 2, core protocol
praetor deploy --contract plinth, pass coffer/sigil/portico/edict addresses to initializepraetor deploy --contract vigil, pass plinth/coffer addresses to initializepraetor deploy --contract postern-kill-switchpraetor deploy --contract research-attestation
Wave 3, adapters
- For each adapter: deploy, verify on Arbiscan, register in PorticoRegistry with bytecode hash
praetor multisig schedule --target portico-registry --call <abi-encoded registerAdapter call>- Wait 48h, then
praetor multisig execute --id <id>
Post-deploy smoke test
- Run
tests/e2e/full-journey.spec.tsagainst the live testnet - Verify Lantern publishes an attestation within 60 minutes
- Verify Scribe indexer is < 30s behind chain head
- Verify Codex /v1/venues/health returns all 6 venues