Smart contract audit checklist — the one we actually use
A checklist for the last days before mainnet: threat model, tests, fuzz, deploy, monitor — 30+ items we never skip.
A checklist for the last days before mainnet: threat model, tests, fuzz, deploy, monitor — 30+ items we never skip.
Reviewed by:Dezső Mező· Founder · Engineer, DField Solutions· 22 Mar 2026
A single re-entrancy bug cost $180M once. A single access-control miss zeroed out thousands of users. Blockchain doesn't forgive. This checklist is what we run on every project before the first mainnet transaction.
100% line coverage isn't the goal — the goal is a scenario test for every economic situation. Foundry or Hardhat, augmented with invariant tests.
// Foundry invariant test
contract TreasuryInvariants is Test {
function invariant_totalSupplyMatchesBalances() public {
uint256 sum;
for (uint256 i = 0; i < users.length; i++) {
sum += treasury.balanceOf(users[i]);
}
assertEq(sum, treasury.totalSupply());
}
}Tools don't find every business-logic bug. Read the contracts line by line. Focus: state transitions, permissioning, rollback, migration. Four-eye principle — two independent reviewers.
30–90 days of production monitoring: anomaly detection (flashloan patterns, TVL jumps, suspicious gas usage). Pager pipeline at threshold.
Never deploy to mainnet on a Friday afternoon. Ever. Not even for a 'small update'.
This list isn't complete, but it's the repeatable part of what we do. If you'd like, we can run it against your code — 2–8 weeks to a full audit report as PRs.

By
Founder, DField Solutions
I've shipped production products from fintech to creator-tooling — for startups and enterprises, from Budapest to San Francisco.
Keep reading