To execute your deployments, you need to use the
ignition deploy task. It takes a path to a module file as an argument:
npx hardhat ignition deploy ignition/modules/MyModule.js
Hardhat Ignition will load the Ignition Module exported by the file you provided, and deploy it.
Before starting to run the deployment, Hardhat Ignition will create a deployment folder under
ignition/deployments/. By default, the folder will be named
<chainId> depends on which network Hardhat is connected to.
You can customize the deployment folder name by providing an explicit deployment ID with
This folder will contain all the deployment results, and a journal file which records every deployment action executed, enabling recovery from errors and resuming deployments.
Read the Deployment artifacts section to learn more about the files in your deployment folder.
If you've previously executed a deployment and need to make adjustments, you can continue from where you left off by reusing the current deployment artifacts. Simply reconnect to the same network and keep the same deployment ID (either manually or by keeping the default).
You can add new
Future objects to your existing Ignition Modules, and you can also add entirely new modules. All of the additions can make use of the previously existing
Future objects and modules.
Hardhat Ignition will figure out how to pick up from where it left off last time, and continue with executing the new modifications.
Ignition Modules can define Module Parameters and use them programmatically. When you deploy a module using the
ignition deploy task you can provide a JSON file with their values. This section will focus on providing the parameters, while the Module Parameters section explains how to retrieve them within a module.
An example file could be called
./ignition/parameters.json and contain the following:
"name": "Saturn V"
This makes the
name parameter for the
Apollo module be
To execute a deployment using parameters, you need to use the
--parameters argument, like this:
npx hardhat ignition deploy ignition/modules/Apollo.ts --parameters ignition/parameters.json
npx hardhat ignition deploy ignition/modules/Apollo.js --parameters ignition/parameters.json
To pass a
bigint as a Module parameter, you can encode it as a string. Any string parameter value that matches the regex
/d+n/ will be converted to a
bigint before being passed to the module, for instance the
endowment parameter in the following example:
"endowment": "1000000000000000000n" // 1 ETH in wei
To check on the current status of a deployment, run:
npx hardhat ignition status DeploymentId
If you run it on the Quick Start guide project after executing the deploying, you'd see something like this:
$ npx hardhat ignition status chain-31337
[ chain-31337 ] successfully deployed 🚀
Apollo#Rocket - 0x5fbdb2315678afecb367f032d93f642f64180aa3