Hardhat can make your smart contract development process easier to build, test, and deploy 🎉 … so what is it?
Hardhat is an Ethereum development environment that helps developers manage and automate the recurring tasks inherent to building smart contracts and DApps.
The two big selling points for me were: 1) It comes built-in with Hardhat Network, a local Ethereum network designed for development. 2) Solidity debugging, featuring stack traces, console.log() and error messages when transactions fail.
Best of all it’s easy to get started.
To install it, you need to create an npm project by creating a project folder, running npm init, and following its instructions. Once your project is ready run:
npm install --save-dev hardhat
Next to create a Hardhat project run
npx hardhat in your project folder and you should see something like this (below).
Select “Create a basic sample project” which will prompt you to install Waffle and Ethers and generate scaffolding to get you up and running with quickly.
npm install --save-dev @nomiclabs/hardhat-waffle ethereum-waffle chai @nomiclabs/hardhat-ethers ethers
If you run npx hardhat accounts you’ll see a list of test accounts Hardhat generated to support local smart contract testing.
The sample project includes a simple smart contract to get us started found in the contracts/ named
Greeter.sol. When you’re ready to test smart contract code you compile it using:
npx hardhat compile
The sample project comes with these tests that use Waffle and Ethers.js. You can use other libraries if you want. To test your smart contract code you can leverage
test/sample-test.js to get started by running:
npx hardhat test
Next, we can spin up an in-memory instance of Hardhat Network to locally deploy our smart contract by running:
npx hardhat run scripts/sample-script.js
Once you get the basics of Hardhat down, you can explore using Hardhat to deploy your smart contract(s) to a live network such as Rinkeby or even the Ethereum Mainnet and connecting them to real users and wallets. For information on this next step check out these Hardhat docs. The exciting part is once you’ve reached this point you can begin deploying smart contracts to the Ethereum blockchain and then building decentralized applications to interact with them or serve as a basic front-end like this example below.