Skip to main content
Important: We do not provide financial advice or custody funds. All transactions occur on third-party platforms.

Deploy-Day Checklist

Before broadcasting a deploy: verify everything. Bytecode verification, parameter freezes, timelock setup, monitoring, runbooks, and the mistakes that have cost protocols nine figures.

30 min · expert · part of Solidity & Smart Contract Development

Why Deploy-Day Has Its Own Checklist

Deploys are the riskiest event in a smart contract's lifecycle. The code you've spent months auditing is finally exposed to mainnet, where every mistake costs real money and many are unfixable. Almost every nine-figure DeFi exploit in the post-2021 era has had a "we deployed wrong" component — either the deployment script had a bug, or the parameters were wrong, or critical setup steps were skipped, or the deployer's keys were stolen. This lesson is the checklist. None of these items are clever; all of them have been forgotten by real protocols, with real consequences. The checklist comes in four phases: 1. **Pre-deploy** — everything you do before broadcasting the deploy transaction. 2. **Deploy** — the actual broadcast, ideally automated and reproducible. 3. **Post-deploy verification** — confirming the contract is in the state you expected. 4. **Monitoring & response** — what runs continuously after launch. The temptation is always to skip steps under time pressure ("just ship it, we can fix it later"). The lesson from every post-mortem you'll read: there is no "later" for the worst class of bugs.

Also in this lesson

  • Pre-Deploy: Lock the Build
  • Deploy: Reproducible and Verified
  • Post-Deploy: Confirm Everything
  • Monitoring and Incident Response
  • The Mistakes That Have Cost Protocols Nine Figures

Key terms

Bytecode Verification
Confirming the bytecode at a deployed address byte-matches what your build produces. Catches build-config drift, wrong commit deployed, deploy-script bugs. Should be automated in every deploy.
Front-Run Initialization
Attack on upgradeable proxies: between deploy and initialize, anyone can call `initialize` and become admin. Prevented by atomic deploy-and-initialize (single transaction), which Foundry's Upgrades plugin does by default.
Timelock Controller
A contract that holds admin powers and enforces a delay (typically 24-48 hours) between proposing an action and executing it. Gives users time to exit if they don't trust the proposal. Standard for any non-trivial admin power.
Multisig (Gnosis Safe)
A contract that requires M-of-N signatures to execute any transaction. Standard custody for protocol admin keys. The threshold M is a trust-vs-availability trade-off — 3-of-5 is common.
Bug Bounty
A pre-arranged reward program for responsibly-disclosed vulnerabilities. Channels white-hat research toward you instead of toward black-market exploit buyers. Should exist before launch, not after the first incident.
Runbook
A written incident-response document. Specifies trigger conditions, decision-makers, communication channels, pause/unpause criteria, post-mortem templates. Written before incidents, not during.
Kill Conditions
Predefined automated triggers that cause an emergency pause. Examples: TVL drop >X% in an hour, single tx draining >Y% of treasury, oracle staleness >Z minutes. Better than human-paged reaction time.

Continue this lesson — 5 more sections in the CryptoBipto app.

Open lesson

Educational only — not financial advice.