如果你刚刚踏入区块链开发,或想了解 Solidity 合约如何在测试网上「跑」起来,这份速通指南只需 15 分钟,就能带你完成从钱包到链上的全链路演示。
本文用 Hardhat + Alchemy + Sepolia 测试网,手把手教你如何:
- 创建钱包、领测试 ETH
- 编写并编译 Solidity 合约
- 一键部署,并在浏览器中验证
阅读过程中 常见问题 FAQ 已内嵌在多处以减轻踩坑。准备好开始了吗?
1. 预热准备:工具清单
在正式编码前,先把工具摆上桌:
- MetaMask:浏览器钱包
- Alchemy:免费节点与开发者面板(注册即得 300M 计算单元)
- Node.js + npm:本地运行时环境
- Hardhat:以太坊最佳实践脚手架
关键词:MetaMask、Sepolia、Alchemy、Hardhat、Node.js、Solidity、测试网
2. 连接到以太坊网络(硬编码极简流)
无需自建节点,Alchemy 提供 JSON-RPC 端点。
- 在 Alchemy 面板创建 App:
名称:HelloWorld
链:Ethereum
网:Sepolia - 点击 View Key,复制 HTTPS Endpoint(形如
https://eth-sepolia.g.alchemy.com…)。稍后塞进.env。
3. 钱包、代币、余额一条龙
3.1 创建 MetaMask 账户
- 安装扩展 → 新建钱包 → 记下助记词
- 网络切到
Sepolia Test Network。若未显示,在设置中 开启显示测试网。
3.2 领 5 枚测试 ETH
- 进入 Sepolia Faucet
- 登录 Alchemy 或用其他方式验证
- 粘贴钱包地址 →
Send Me ETH - 30 分钟到账后,钱包应显示
5 ETH
3.3 验证余额
打开 Alchemy Composer,选 eth_getBalance 方法,输入钱包地址即可返回 十六进制 wei。
👉 30 秒教会你用 Composer 查余额,比浏览器插件还直观!
4. 项目初始化:从 0 到编译就绪
4.1 创建文件夹
mkdir hello-world
cd hello-world
npm init -y4.2 安装 Hardhat
npm install --save-dev hardhat
npx hardhat选择 Create a JavaScript project,一路回车即可。
4.3 目录结构
执行:
mkdir contracts scriptscontracts/存放.sol源文件scripts/存放部署与交互脚本
5. 编写你的第一个 Solidity 合约
在 contracts/HelloWorld.sol 里粘贴:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract HelloWorld {
string public message;
constructor(string memory initMessage) {
message = initMessage;
}
function update(string memory newMsg) public {
message = newMsg;
}
}功能极简:部署时设定问候语,任何地址可调用 update() 改写内容。
6. 配置私享环境变量
6.1 安装依赖
npm install --save-dev dotenv @nomiclabs/hardhat-ethers ethers@^5.7.0若遇 ethers v6 peer 依赖报警,可加 --legacy-peer-deps 强制安装。6.2 .env 要点
文件根目录新建 .env:
ALCHEMY_KEY=ALCHEMY_HTTP_ENDPOINT_URL
PRIVATE_KEY=YOUR_METAMASK_PRIVATE_KEY- 私钥:MetaMask → 账户详情 → 导出私钥
- 切勿上传至版本控制,务必加
.gitignore
6.3 hardhat.config.js 关键段
require("@nomiclabs/hardhat-ethers");
require("dotenv").config();
module.exports = {
solidity: "0.8.18",
networks: {
sepolia: {
url: process.env.ALCHEMY_KEY,
accounts: [process.env.PRIVATE_KEY],
},
},
};7. 编译与部署脚本
7.1 编译
npx hardhat compile看到 Compilation finished successfully 即可忽略 SPDX 提示。
7.2 创建部署脚本
scripts/deploy.js:
const main = async () => {
const [deployer] = await ethers.getSigners();
console.log("Deployer:", deployer.address);
const HelloWorld = await ethers.getContractFactory("HelloWorld");
const contract = await HelloWorld.deploy("Hello, Web3 Explorer!");
await contract.deployed();
console.log("Contract deployed to:", contract.address);
};
main().catch((err) => {
console.error(err);
process.exitCode = 1;
});关键词:Hardhat 部署脚本、合约工厂、Sepolia
8. 上链!真实部署流程
命令行:
npx hardhat run scripts/deploy.js --network sepolia终端输出:
Deployer: 0xYour...
Contract deployed to: 0x123abc...复制合约地址备用。每笔部署相当于一次链上交易,可在 Sepolia Etherscan 查询。
👉 一次就学会如何“看”合约部署记录,教你 2 分钟找到交易细节!
9. 检查链上日志
Alchemy Dashboard → 选择刚才的 App → Explorer → 过滤 [eth_sendRawTransaction] 即看到部署写入。
核心字段:
from:MetaMask 地址to:留空 → 代表合约创建- 造林成功,Gas Used 约 400–600K wei!
10. 一键 FAQ:最常问的 5 件事
Q1. 为何我选不到 Sepolia?
A:打开 MetaMask → 设置 → 高级 → 开启“显示测试网”。
Q2. 水龙头排队太久,有其他方式吗?
A:可尝试公开备用水龙头(搜索“Sepolia Faucet List”),或找同行的测试币互助群。
Q3. 编译报 SPDX 警告要改吗?
A:只需在文件首行声明 // SPDX-License-Identifier: MIT 即可,不影响部署。
Q4. 想换地方重新部署,有什么快捷方式?
A:更新 deploy.js 里传递的新参数,或升级 --network goerli 即可链活期切换测试网。
Q5. .env 泄露会有什么后果?
A:私钥泄露即意味着钱包资金可被盗,请立即转移资产并用全新私钥启动新项目。
11. 下一步预告
- Part 2:与已部署合约交互,调用
update()修改问候语 - Part 3:将合约源码开源到 Etherscan,方便他人查阅 ABI 与读取函数
关键词:智能合约交互、开源验证, ABI、Solidity Explorer
祝你链上之旅首战告捷!完成后别急着退出,切记存好合约地址,教程第二部分很快上线。