The deployment checklist
A production deployment of the protocol or a DAO launch follows a ceremony: a sequence of checks around just deploy. The canonical checklist lives in the Protocol Factory's README; other repos adapt it with their own specifics. Deployment is effectively irreversible, so each step verifies a concrete guarantee before the result is accepted.
The factory deploys everything atomically and then freezes into a read-only record, making these guarantees checkable onchain after deployment. The off-chain checklist verifies the code, configuration, and procedure used for that deployment.
The ceremony, step by step
A recommended run, in order, using the just-foundry recipes the repos ship. Each box maps to a guarantee below. This mirrors the canonical checklist in the Protocol Factory README; treat each repo's README as authoritative for its exact steps (some, e.g. token-voting, expose the same recipes as make targets rather than just).
Prepare, reviewed code + a clean key
- Clone the official repo and check out
main;git statusreports no local changes and matchesorigin/main. - Work inside a disposable Docker environment (e.g.
docker run --rm -it -v .:/deployment … debian:trixie-slim), installjust+git+ Foundry, thenjust init <network>. - Create a fresh burner wallet with
cast wallet newand use its key asDEPLOYER_KEY; you are the sole operator. - Set secrets via
vars(optional, recommended) or the root.env:vars set DEPLOYER_KEY,vars set ETHERSCAN_API_KEY. - Set the deployment parameters in the root
.env(e.g. management-DAO min-approvals, members file, metadata URIs). -
just env, confirm every resolved value and its source is correct. - The machine is on a trusted network with no exposed ports.
Rehearse, no surprises at broadcast
-
just test, the suite runs clean. -
just predeploy, the simulation completes with no errors. -
just balance, the wallet holds ≥15% over the simulated gas estimate. - Every member pulls
mainand reports the samegit log -n 1commit hash.
Broadcast
-
just deploy, runs the tests, broadcasts, verifies, and tees tologs/(the factory deploys atomically and revokes its own power as the final step).
Verify & attest
- Contracts are verified on the target network's block explorer.
- The
logs/deployment-<network>-<date>.log, the console output, and theartifacts/addresses-<network>-<timestamp>.jsonmanifest all agree; every member confirms the addresses. - Diff the verified onchain sources against the exact commit you deployed (and the audit it corresponds to) with EVM Mirror.
Close out
-
just refund, return leftover deployer funds to the address that funded the wallet. - Publish the log, the address manifest, and the broadcast file to a shared location, and sync the addresses into the per-network config so the ecosystem can find them.
The guarantees it enforces
- You deploy exactly the reviewed code. Deploy from the official repo's
main, with a cleangit status, and have every member of the ceremony independently confirm the same commit hash. Afterwards, verify the contracts on the block explorer and diff them (EVM Mirror) against the exact commit you deployed and the audit it corresponds to. These checks prove that the running code matches what was reviewed and audited, including the absence of local modifications. - The broadcast is rehearsed, funded, and tested. Simulate the deployment first (
predeploy), keep the test suite passing, and fund the wallet with margin over the simulated estimate. - The result is recorded and independently attested. The run is logged, and it emits an address-manifest artifact. Console output, log, and artifact must agree, and every member confirms the values before they're trusted. Together they form a tamper-evident, multi-party record of what was deployed.
- Clean exit. Refund leftover deployer funds to their source and sync the new addresses into the canonical per-network config registries. This closes out the deployment and lets the wider ecosystem find it.
Keep in mind
- Each item secures a specific property. Skipping it removes that guarantee: reviewed-code parity, key hygiene, a rehearsed broadcast, or an attested record.
- The canonical checklist lives with the code. Treat the Protocol Factory README as the source of truth for the exact steps. Other repos may require additional checks.
See also
- Protocol Factory — what a protocol deployment stands up, and the immutable onchain record the ceremony produces.
- DAO Launchpad — DAO-scale launches that follow the same discipline.
- Deployment overview.