Loading...
Hardhat compiles, tests, deploys, and debugs Solidity. It's the Next.js of smart contract dev.
bashmkdir my-contracts && cd my-contracts npm init -y npm install --save-dev hardhat npx hardhat init # choose: "Create a TypeScript project" npm install --save-dev @openzeppelin/contracts
contracts/*.sol — your Solidity sourcetest/*.ts — Mocha/Chai testsscripts/*.ts — deployment scriptshardhat.config.ts — networks, compiler settingsartifacts/ — compiled bytecode + ABIs (auto-generated)cache/ — incremental build cachetypescriptimport { HardhatUserConfig } from "hardhat/config"; import "@nomicfoundation/hardhat-toolbox"; const config: HardhatUserConfig = { solidity: { version: "0.8.24", settings: { optimizer: { enabled: true, runs: 200 } }, }, networks: { sepolia: { url: process.env.SEPOLIA_RPC || "", accounts: process.env.PRIVATE_KEY ? [process.env.PRIVATE_KEY] : [], }, }, }; export default config;
bashnpx hardhat compile # build npx hardhat test # run tests on local in-memory chain npx hardhat node # start a local devnet npx hardhat run scripts/deploy.ts --network sepolia
typescriptimport { expect } from "chai"; import { ethers } from "hardhat"; describe("KraftyToken", () => { it("mints 1M to deployer", async () => { const [deployer] = await ethers.getSigners(); const T = await ethers.deployContract("KraftyToken"); const expected = ethers.parseUnits("1000000", 18); expect(await T.balanceOf(deployer.address)).to.equal(expected); }); });
Answer what each Hardhat command does.