前言
學習智能合約的過程中,開始使用 Hardhat 這套以太坊開發框架。它整合了部署、測試、模擬等核心功能,讓開發者能以更有系統的方式構建與驗證智能合約。後續會有一系列的文章,將分享我使用 Hardhat 的學習歷程與一些實際應用心得。
Hardhat功能簡介
Hardhat用於撰寫、測試、除錯並且部屬智能合約,具備著彈性以及擴展性,本則就先依照官網的流程先來安裝Hardhat,以及做一些簡單的介紹。
安裝 (macOS)
目前版本的是Hardhat 3.0版本,目前此版本需要使用到Node.js v22或是更高版本。安裝好之後可以使用npm,yarn,pnpm等package manager進行安裝。我自己基本都是用npm來安裝。
依據範例先建立資料夾再安裝:
mkdir hardhat-example
cd hardhat-example
npx hardhat --init
後續就開始選擇所需要的版本,可以選擇2.0或是3.0版本。
基本上之前在網路上看到的影片教材都還停留在2.0版本,為了追上潮流,我選擇3.0作為學習。Hardhat 3.0 之後,預設採用 Viem + TypeScript,取代過去的Ethers.js + JavaScript 架構。(為了理解這一點,我還特地去補了一下 TypeScript 的語法 😭)。
等安裝完之後可以執行下面指令確認是否安裝成功:
npx hardhat --help
架構
基本上init之後會有下面這幾個檔案
// 基礎檔案
hardhat.config.ts
node_modules
contracts // 放置solidity
├── Counter.sol
└── Counter.t.sol
test // typescript test
└── Counter.ts
ignition // 用於deploy
└── modules
└── Counter.ts
scripts
└── send-op-tx.ts
// compile後生成
artifacts
├── build-info
└── contracts
cache
└── compile-cache.json
Hardhat 測試流程與網路選擇整理
📌 測試分類
1. 單合約測試
- 工具:Solidity test (
.t.sol) - 用途:單一合約內部邏輯(函數輸入輸出、錯誤檢查)
- 執行:
npx hardhat test solidity - 網路:Hardhat in-memory network(本地臨時鏈,自動啟動 / 測完消失)
2. 多合約 / 前端模擬測試
- 工具:Node.js / TypeScript (test/*.ts)
- 用途:
- 多合約依賴測試(ERC20 + DEX、NFT + Marketplace 等)
- 模擬 DApp 前端行為(呼叫 function、交易流程)
- 執行:
npx hardhat test nodejs - 網路:
- Hardhat in-memory network(預設)
- localhost(npx hardhat node,常駐鏈,方便 React 連線)
3. 第三方合約整合測試
- 工具:Node.js / TypeScript (test/*.ts)
- 用途:與外部協議整合,例如 Uniswap、Aave、Chainlink
- 執行:
npx hardhat test nodejs - 網路:
- Hardhat Mainnet Fork(建議 ✅)
- 模擬真實主網狀態
- 不會花真錢,只消耗 RPC request
- Public Testnet (Sepolia, Goerli)
- 跟真實協議交互
- 需要水龍頭代幣,速度較慢
🎯 使用建議

結語
剛開始學習 Solidity 時,我是從 Remix 開始入門的。但當我想嘗試更複雜的專案時,就轉向學習 Hardhat。
由於目前網路上的教學大多還停留在 2.0 版本,甚至連 ChatGPT 在回答 Hardhat 3.0 的問題時,有時也會引用舊版資訊,所以我決定直接啃官方文件,一步步實作。
希望這篇文章能幫助到正在學習 Hardhat 的朋友。後續我會陸續分享從測試到部署的完整流程與心得,也歡迎有經驗或正在學習的朋友在留言區交流分享。
未來的文章會牽扯到Solidity,但這部分不確定寫相關文章,如果有興趣的朋友可以留言讓我知道,我就會把所學分享給大家。















