智能合約 Solidity 教學 (中) - MetaMask 與以太坊測試網
📅 發布時間: 2025-01-29 🏷️ 標籤: Solidity, MetaMask, 以太坊測試網, 智能合約部署, Remix IDE
這篇文章繼承了上一篇智能合約 Solidity 教學 (上),將嘗試使用 MetaMask 連接測試網,如何領取測試幣,並且在前端整合:透過 Web3.js 連接你的 DApp 與合約。
目錄
- 智能合約 Solidity 教學 (上) - Solidity 基礎語法教學
- 智能合約 Solidity 教學 (中) - MetaMask 與以太坊測試網
- 智能合約 Solidity 教學 (下) - Web3.js 實際開發一個 DApp 去中心化應用前端
MetaMask 使用教學:從安裝到與智能合約互動
一、MetaMask 錢包
錢包,是 Web3 世界的身分證也是通行證
基本上所有與 Web3 互動都需要依賴錢包
今天我們將從最多人使用 MetaMask 開始
1. 什麼是 MetaMask?
MetaMask 是一款 以太坊數位錢包 (Ethereum Wallet),可以讓你:
- 管理你的 ETH 和其他代幣 (ERC-20, ERC-721 NFT)
- 連接 DApp,讓瀏覽器與區塊鏈互動
- 簽署交易,進行資金轉移或呼叫智能合約
- 切換測試網,在開發時使用「假幣」測試智能合約
它既是一個 Chrome/Firefox 擴充插件,也有 行動版 App 可用。
2. 安裝 MetaMask
Step 1:下載並安裝
- 打開官方網站 👉 https://metamask.io/
- 點擊「Download」,選擇 Chrome/Firefox 擴充功能或 手機版 App。
- 安裝後,你會在 瀏覽器右上角 看到 MetaMask 狐狸頭 🦊。
Step 2:建立新錢包
- 點擊 「開始使用」
- 「創建新錢包」
- 設定 密碼(這個密碼只用來解鎖你的 MetaMask)
- 保存助記詞(Secret Recovery Phrase)
- 這是你的「錢包私鑰」,一定要抄下來並存放在安全地方!
- 千萬不要與他人分享,丟失後無法恢復!
Step 3:完成設定
MetaMask 會自動連接 以太坊主網 (Ethereum Mainnet),
但我們在開發時,通常會用 測試網 來避免消耗真實 ETH。
3. 切換測試網 (Goerli / Sepolia / Polygon Testnet)
以太坊提供 測試網(Testnets),允許開發者使用「假幣」進行測試,而不會消耗真實資金。
目前常見的測試網:
- Sepolia Testnet(官方推薦)
- Goerli Testnet(即將淘汰)
- Polygon Mumbai Testnet(Polygon 測試鏈)
如何開啟測試網
- 打開 MetaMask,點擊 右上角的「網路選單」
- 點擊 「顯示/隱藏測試網路」
- 開啟「顯示測試網路」
- 選擇 Sepolia Testnet
現在,你的 MetaMask 已切換到 測試網,可以進行開發測試!
4. 如何領取測試幣 (Faucet)
測試網上的 ETH 不是實際貨幣,而是開發者測試時使用的「假幣」,
我們可以從 Faucet(水龍頭) 領取測試 ETH。
目前有 Alchemy Faucet 或 Infura Faucet 他們能一次領取較多,但需要綁定帳號
所以我們從最簡單的 Google Cloud for Web3 來領取
如何領取 Sepolia 測試 ETH
- 打開 https://cloud.google.com/application/web3/faucet/ethereum/sepolia
- 輸入你的 錢包地址(MetaMask 內複製)
- 點擊「Request ETH」領取測試幣
- 等候 1-2 分鐘,ETH 會發送到你的測試錢包
💡 測試幣用途:
- 部署測試合約
- 測試智能合約功能
- 測試 DApp 與合約互動
5. 如何讓智能合約與 MetaMask 互動
現在我們要將剛剛的 HelloWorld.sol 合約,透過 MetaMask 來 與前端互動!
💻 透過 MetaMask 部署 HelloWorld 智能合約到 Sepolia 測試網
🎯 學習目標:使用上次教學的智能合約程式碼在 Remix IDE 透過 WalletConnect 連接 MetaMask部署合約並確認 MetaMask 簽署交易觀察測試幣消耗並呼叫合約功能
步驟 1: 我們使用上次教學使用的智能合約程式碼來部署
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract HelloWorld {
// 儲存訊息的變數
string public message;
// 建構函式,合約部署時會自動執行
constructor() {
message = "Hello, Solidity!";
}
// 設定新的訊息
function setMessage(string memory _newMessage) public {
message = _newMessage;
}
}步驟 2: 在 Remix IDE 點擊 Deploy & Run Transactions 面板 選擇 WalletConnect

圖:在 Remix IDE 的 Deploy & Run Transactions 面板中選擇 WalletConnect 來連接錢包
步驟 3: 點擊連結錢包

圖:點擊連結錢包按鈕以啟動連接流程
步驟 4: 選擇我們剛剛創辦好的 MetaMask

圖:從可用錢包清單中選擇 MetaMask
步驟 5: 以這個錢包來部署該合約 這個合約會被部署到 Sepolia 網路上

圖:使用選定的 MetaMask 錢包部署合約至 Sepolia 測試網
步驟 6: 由於這是真的會消耗到你錢包中的錢錢!!! 所以會跳出 MetaMask 的提示框 本次部署合約將消耗快 6 美元(超貴 請注意是使用 Sepolia 來支付,那才是免費的測試幣

圖:MetaMask 彈出確認視窗,顯示 Gas 費用(使用 Sepolia 測試幣支付,避免真實 ETH 消耗)
步驟 7: 跟剛剛一樣,部署好以後 我們可以打開部署好的合約 然後重新 SetMessage 一樣要花錢 (0.3 美元)

圖:部署成功後,展開合約實例並呼叫 setMessage 函式,同樣需 MetaMask 確認交易