用 Hardhat 在 Sepolia 部署并验证你的第一份 Hello World 智能合约

·

预计完成时间:15 分钟
核心关键词:Solidity 入门、Hardhat 开发环境、Sepolia 测试网、智能合约部署、以太坊 API、Metamask 配置、Alchemy 节点


为什么要学 Hardhat

如果你是区块链新手,或者想亲手体验 Solidity 智能合约从代码到链上全过程,本文的 16 步流程将教会你如何在 Sepolia 测试网 上完成最常见的开发闭环:编写 → 编译 → 部署 → 上链。整套方案依赖 Solidity + Hardhat + Alchemy + Metamask,组件透明、开源,而且一分钱真币都不用花。


准备工作总览

  1. 注册 Alchemy 账户(Web3 云端节点)
  2. 生成 API Key,指向 Ethereum Sepolia
  3. 安装 Metamask 浏览器钱包,切换至 Sepolia 网络
  4. 领取测试 ETH(Sepolia Faucet)
  5. 在项目文件夹初始化 Node 环境,引入 Hardhat 与 Ethers.js

动手实战 16 步流程

第 1 步:连接以太坊网络

注册并登录 Alchemy,创建应用,选择 Ethereum 主链 & Sepolia 网络,即可拿到 RPC 根节点 Endpoint

第 2 步:创建应用与 API Key

在 Dashboard → Apps → Create App,命名「Hello World」,链 Ethereum,网络 Sepolia。复制 HTTPS URL,后续会被写入 .env.

第 3 步:建立以太坊账户

浏览器安装 Metamask,创建/导入钱包后,将网络切换至 Sepolia Test Network。若列表未出现,请在 Settings > Advanced 开启 Show Test Networks

第 4 步:领取测试 ETH

打开 Sepolia 官方水龙头,粘贴钱包地址,点击 Send Me ETH。到账时间 5–30 分钟不等,足够后续部署费用。

第 5 步:查看余额

使用 Alchemy Composer,填写地址并调用 eth_getBalance,可即时验证余额是否正确(单位:wei,需除以 1e18 换算为 ETH)。

第 6 步:项目初始化

mkdir hello-world && cd hello-world
npm init -y

第 7 步:安装 Hardhat

npm install --save-dev hardhat

第 8 步:创建 Hardhat 项目

npx hardhat
# 选择 "create an empty hardhat.config.js"

第 9 步:创建文件夹结构

mkdir contracts scripts

第 10 步:撰写合约

新建文件 contracts/HelloWorld.sol,粘贴代码:

//SPDX-License-Identifier: None
pragma solidity ^0.8.9;

contract HelloWorld {
    string public message;

    constructor(string memory _initMessage) {
        message = _initMessage;
    }

    function update(string memory _newMessage) public {
        message = _newMessage;
    }
}

第 11 步:环境变量管理

安装 dotenv,保存私钥与 RPC URL:

npm install dotenv

新建 .env

PRIVATE_KEY=你的Metamask私钥
SEPOLIA_RPC_URL=https://eth-sepolia.g.alchemy.com/v2/你的API_KEY

⚠️ 切记将 .env 加入 .gitignore,避免泄露。

第 12 步:安装 Ethers.js

npm install --save-dev @nomiclabs/hardhat-ethers ethers

第 13 步:配置 hardhat.config.js

将以下代码覆盖原配置:

require("@nomiclabs/hardhat-ethers");
require("dotenv").config();

module.exports = {
  solidity: "0.8.9",
  networks: {
    sepolia: {
      url: process.env.SEPOLIA_RPC_URL,
      accounts: [`0x${process.env.PRIVATE_KEY}`]
    }
  }
};

第 14 步:编译合约

npx hardhat compile

顺利会出现两个新文件夹:artifacts/cache/

第 15 步:编写部署脚本

新建 scripts/deploy.js

const hre = require("hardhat");

async function main() {
  const HelloWorld = await hre.ethers.getContractFactory("HelloWorld");
  const message = "Hello, Sepolia!";
  const contract = await HelloWorld.deploy(message);
  await contract.deployed();
  console.log("Contract deployed at:", contract.address);
}

main().catch((error) => {
  console.error(error);
  process.exitCode = 1;
});

第 16 步:正式部署

处理后运行:

npx hardhat run scripts/deploy.js --network sepolia

成功日志示例:

Contract deployed at: 0xAbCd...1234

保存该地址,跳转到 Sepolia Etherscan 搜索即可查看交易详情。若你看到 Contract Creation,说明合约已上链。

👉 不熟悉验证流程?点击了解如何 30 秒内在区块浏览器中验证合约源码。


常见问题 FAQ

Q1:部署时提示 “insufficient funds”?
A:确认 Sepolia 地址中有 ≥ 0.2 测试 ETH。若水龙头延迟,可尝试其他公开 Sepolia 水龙头或等待网络通畅。

Q2:怎样快速查询完整 Hardhat 命令?
A:npx hardhat --help 查看所有内置任务;需要自定义脚本时,阅读官方 Hardhat 文档 即可。

Q3:Solidity 有更新版本,是否要修改?
A:本文使用的 pragma solidity ^0.8.9 已支持近两年内所有新特性;如需更高版本,只需在 hardhat.config.js 和源码头同步替换,再复执行 npx hardhat clean && compile

Q4:我想让团队成员一起开发,如何协作?
A:将项目推送到私有 Git 仓库,成员各自新建 .env 填入个人私钥。注意切勿把原私钥文件加入版本控制。

Q5:出现 “Error HH8: There are one or more errors in your config file” 怎么办?
A:检查 .env 是否存在、是否拼写错误,或私钥前缀是否缺少 0x;删除空行并重启终端再次执行。


下一步:与合约互动

部署只是我们故事的一半,真正的 Web3 体验集中在 交互验证。在 Part 2 中你将学习如何用 CLI 或前端 DApp 调用 update 方法修改 stored message;接着 Part 3 把源代码公开到区块浏览器,任何人都能直接读写你的合约。

👉 深入研究合约交互技巧,确保你的 DApp 顺利升级并节省 Gas。


祝你「Hello World」成功上链,从此迈出 Solidity 与以太坊生态的坚实第一步!