- Configure Hardhat in `hardhat.config.ts` with explicit `solidity.version` and `networks` settings — use TypeScript for type-safe config.
- Use `npx hardhat node` for a local development network and `npx hardhat test` to run your test suite against it.
- Write deployment scripts as Hardhat Ignition modules (`buildModule`) for declarative, idempotent deployments with automatic deployment tracking.
- Use `hardhat-toolbox` plugin bundle to get ethers.js, Chai matchers, gas reporter, and coverage in a single install.
- Use `ethers.getContractFactory("MyContract")` with `deploy()` in tests and deployment scripts — avoid hardcoding contract addresses.
- Enable `gasReporter` in the Hardhat config to track gas costs per function in test runs and catch regressions automatically.
- Use `@nomicfoundation/hardhat-chai-matchers` for `revertedWith`, `emit`, and `changeEtherBalance` assertions in tests.