Checklist · 4 minute read
Smart Contract Security Checklist
A smart contract is ready for deployment when its behavior is specified and tested, access control and privileged functions are minimal and governed, known vulnerability classes are addressed, upgradeability and pause mechanisms are deliberate, oracle and external dependencies are validated, an independent audit has been completed with findings resolved, and monitoring and incident response are in place.
Smart contracts combine two properties that make security decisive: they hold or control value, and they are difficult or impossible to change after deployment. The work done before deployment determines nearly everything. This checklist covers specification, access control, vulnerability classes, upgradeability, dependencies, testing, audit, and operations. It complements smart contract audit guide, smart contract development guide, and web3 security best practices, and reflects the practice of FISTA Solutions' blockchain team.
Who should use this checklist?
Protocol and application teams deploying contracts, security reviewers, and organizations commissioning contracts from partners.
Is behavior specified?
- A specification describes every function, state transition, and invariant.
- Roles and permissions are documented.
- Economic assumptions and attack scenarios are written down.
- Threat model covers users, privileged actors, dependencies, and external callers.
Reference: the spec-driven development for AI whitepaper for the same discipline applied elsewhere.
Is access control minimal and governed?
| Check | Evidence |
|---|---|
| Privileged functions enumerated with justification | Specification |
| Role-based access with least privilege | Code review |
| Multi-party control and timelocks on critical actions | Deployment configuration |
| Ownership transfer is two-step and guarded | Code review |
| Emergency pause scoped and governed | Design and tests |
| Privileged keys held in hardware or multi-party custody | Operations plan |
Reference: custodial vs non-custodial wallets.
Are known vulnerability classes addressed?
- Reentrancy: checks-effects-interactions, reentrancy guards, careful external calls.
- Arithmetic: safe math semantics, precision and rounding handled, overflow considered in assembly.
- External calls: return values checked, gas assumptions avoided, untrusted contracts treated as hostile.
- Access and authentication: no reliance on transaction origin, signature replay prevented, front-running considered.
- Denial of service: unbounded loops and griefing vectors removed.
- Token handling: approval patterns, fee-on-transfer and rebasing tokens, non-standard returns.
- Randomness and time: no reliance on manipulable block values for security-critical logic.
- Delegatecall and proxies: storage layout and initialization protected.
Is upgradeability deliberate?
- Decision documented: immutable, or upgradeable with rationale.
- If upgradeable: proxy pattern chosen with known safety; storage layout managed; initializers guarded.
- Upgrade authority under multi-party control with timelock and transparency.
- Upgrade procedure tested, including on forks.
Reference: smart contract upgradeability.
Are dependencies and oracles trusted appropriately?
- External contracts and libraries pinned, reviewed, and their trust assumptions documented.
- Oracles validated: staleness checks, deviation bounds, fallback behavior, manipulation resistance.
- Bridges and cross-chain components assessed for their own security.
- Composability risks with integrating protocols considered.
Reference: blockchain oracles explained and cross-chain bridges explained.
Is testing thorough?
- Unit tests with high coverage.
- Property-based and invariant tests for protocol rules.
- Fork tests against live dependencies and state.
- Scenario tests for economic and governance attacks.
- Fuzzing and static analysis in CI.
- Gas analysis for critical paths.
Reference: gas optimization techniques.
Has an independent audit been completed?
- Audit scope covers the deployed code version and its dependencies.
- Findings resolved or accepted with documented rationale.
- Re-review of fixes completed.
- Second opinion or contest considered for high-value deployments.
- Audit report published or available to stakeholders as appropriate.
Reference: smart contract audit guide.
Is deployment secure?
- Deployment scripts reviewed and tested on testnets and forks.
- Verified source published for the deployed bytecode.
- Parameters and roles set correctly and verified post-deployment.
- Keys used for deployment secured and privileges transferred to governed control.
- Deployment record with addresses, versions, and configuration.
Are monitoring and incident response ready?
- Event monitoring for privileged actions, unusual transfers, parameter changes, and oracle deviations.
- Alerts to named responders.
- Incident plan including pause procedures, communication, and recovery where possible.
- Bug bounty or disclosure channel.
- Dependency and ecosystem monitoring for upstream issues.
Reference: the ai incident response checklist for the general incident discipline.
Are legal and compliance considerations addressed?
- Regulatory classification of tokens or activities assessed with counsel.
- Compliance controls encoded where required, such as transfer restrictions.
- Terms and disclosures in place for users.
Reference: the real-world asset tokenization whitepaper. This checklist is general guidance, not legal advice.
How should gaps be handled?
Specification, access control, vulnerability class, and audit gaps block deployment. Monitoring and incident response gaps block mainnet launch beyond limited scope. Record accepted risks with rationale and owners.
What happens after the audit?
Remediate findings, obtain a re-review of the fixes, publish the report where stakeholders can read it, and schedule the next audit before the next material change rather than after it.
How FISTA Solutions secures smart contracts
FISTA Solutions builds contracts to this checklist within its blockchain practice: specification and threat model first, minimal governed access control, established patterns against known vulnerability classes, deliberate upgradeability decisions, validated dependencies, thorough testing in CI, independent audit with resolved findings, secure deployment, and monitoring with an incident plan. Web and mobile delivers the interfaces around contracts, AI agents support monitoring and compliance workflows, and forward deployed engineers work inside client teams. The record behind the approach is 150+ projects with 99.9% uptime.
To review a contract against this checklist before deployment, message FISTA on WhatsApp, or read defi development guide for the protocol-level context.
Share-ready article cover
Download the generated social format.
Clear answers
Questions raised by this field note.
Straightforward guidance for evaluating scope, fit, and the next step.
01What should a smart contract security review cover?
Specification and invariants, access control and privileged roles, reentrancy, arithmetic, and external call handling, token and approval handling, upgradeability and pause governance, oracle and dependency trust, gas and denial-of-service concerns, test coverage including property and fork tests, independent audit findings, and deployment and monitoring procedures.
02Is a smart contract audit enough?
No. An audit is a point-in-time review by an independent party and is essential, but it complements specification, thorough testing, secure deployment procedures, governance of privileged functions, and monitoring with an incident plan. Audits find issues; they do not prevent new ones.
03Should smart contracts be upgradeable?
It depends. Upgradeability allows fixes but concentrates power in the upgrade authority and adds proxy complexity and risk. Immutability limits risk but prevents correction. The choice is deliberate, documented, and governed, with multi-party control and timelocks where upgrades are allowed.
04How do you test smart contracts?
Unit tests for functions, property-based and invariant tests for protocol rules, fork tests against live state and dependencies, scenario tests for economic and governance attacks, fuzzing, static analysis, and coverage measurement, all run in CI before audit and deployment.
05What monitoring do deployed contracts need?
Event monitoring for privileged actions, large or unusual transfers, parameter changes, and oracle deviations, with alerts to responders and pre-defined responses such as pausing where the design allows, plus tracking of dependency and upgrade events.
Continue exploring
Related capabilities
Start with the hard problem
Need the outcome owned, not merely analyzed?
Tell us where delivery is constrained. We’ll map the fastest credible path from intent to verified production.