Deploying and operating a production dApp is the final, unglamorous mile of Web3 development: the point where a working smart contract on your laptop becomes a live system that real users trust with real money. It sits at the intersection of blockchain-specific mechanics (immutable bytecode, gas markets, block explorers) and ordinary production-engineering discipline (CI/CD, monitoring, incident response, frontend hosting) that most Solidity tutorials skip entirely. The core mental model worth internalizing: once admin keys sit behind a multisig and a timelock, upgrades and emergency actions become deliberately slow, because speed is exactly what attackers exploit through social engineering and rushed decisions - while a contract with no upgrade path at all is permanently frozen the moment it lands on-chain. Getting deployment, verification, node access, upgradeability, and monitoring right is what separates a hobby project from something that survives contact with an adversarial, permissionless network.
What This Cheat Sheet Covers
This topic spans 13 focused tables and 126 indexed concepts. Below is a complete table-by-table outline of this topic, spanning foundational concepts through advanced details.
A jump-to index of every table row in this cheat sheet.
An interactive map of every table and concept in this topic.
Table 1: Compilation & Deployment Toolchain
Before any bytecode reaches a network it passes through a build tool that compiles, tests, and scripts its deployment; picking the right one and locking its settings is the foundation every later step depends on.
| Tool | Example | Description |
|---|---|---|
npx hardhat compile npx hardhat run scripts/deploy.js --network sepolia | JavaScript/TypeScript development environment for compiling, testing, and deploying Solidity via a plugin ecosystem; the most widely adopted toolchain for teams already in a Node.js stack. | |
forge build forge script script/Deploy.s.sol --rpc-url $RPC --broadcast | Rust-based toolchain that writes deployment scripts in Solidity itself instead of JS, making them faster to run and easier to keep in sync with contract types. | |
npx hardhat ignition deploy ignition/modules/Apollo.ts --network sepolia | Declarative deployment system built into modern Hardhat: you describe the desired end state of a deployment (contracts, args, dependencies) and Ignition figures out the ordering, with automatic resume-on-failure for multi-step deploys. | |
pragma solidity 0.8.24; | Pins an exact compiler version for deployments rather than a floating ^0.8.0 range, so production bytecode is never compiled with an untested patch release. |