摘要:用 ethers.js v6 的 JsonRpcProvider 连接 Sepolia 测试网,只读查询 chainId、区块高度与公开地址余额。本文含可运行脚本与真截图,不碰私钥、不发交易。

写以太坊 DApp,第一步往往不是发交易,而是连上节点、把链上状态读出来。ethers.js v6 里这件事由 Provider 完成:它只负责查询(区块高度、余额、合约 call),不持有私钥。本文在 Sepolia 测试网用公共 RPC 跑通「读余额」脚本——不碰主网资金、不写私钥、不广播交易。

Provider 是什么:只读连接

打开 ethers.js Docs · Providers。文档写明:Provider 提供与区块链的连接,可查询当前状态、模拟执行,也可(在配合 Signer 时)发送交易。新手第一步请只用 Provider 读;需要签名发交易时才引入 Signer / Wallet(后续专题,本文不做)。

ethers.js 连测试网:Provider 与读余额第一步-程序旅途
图1:docs.ethers.org/v6/api/providers:Provider 是链上连接的基础组件;界面为英文
角色 做什么 本文是否用到
Provider HTTP/WebSocket 连节点,读状态 是:JsonRpcProvider
Signer / Wallet 持有密钥,签名并发交易 否:不碰私钥
Contract 按 ABI 读写合约 否:下一步专题

主网 Gas 字段对照可看 以太坊 Gas 费怎么算;确认数概念见 以太坊确认数与最终性。

为什么用测试网:无真金价值

打开 ethereum.org 中文 · 网络。文档说明:测试网 ETH 本应没有实际价值;Sepolia 是应用/合约开发常用的公共测试网。练习读余额、写脚本时默认连 Sepolia(chainId 11155111),避免误操作主网资产。

ethers.js 连测试网:Provider 与读余额第一步-程序旅途
图2:ethereum.org/zh/developers/docs/networks:测试网 ETH 无真金价值、Sepolia 等说明;界面为简体中文

自托管可用 欧易 Web3 钱包(创建时可填推荐码 CHENGXULVTU)。以后上主网需要真 ETH 付 Gas,再在 币安 或 欧易 准备并提现到主网地址——与本文测试网脚本分开。

本机跑通:JsonRpcProvider 读余额

环境:Node.js 18+。在空目录:

npm init -y
npm install ethers@6

新建 read_balance.mjs(完整可运行;只用只读 Provider):

import { JsonRpcProvider, formatEther } from "ethers";

// 公共 Sepolia RPC(只读;失败可换备用端点)
const RPC = "https://ethereum-sepolia-rpc.publicnode.com";
// 公开地址示例(vitalik.eth 对应地址,无真金风险)
const ADDR = "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045";

const provider = new JsonRpcProvider(RPC);
const network = await provider.getNetwork();
const blockNumber = await provider.getBlockNumber();
const balanceWei = await provider.getBalance(ADDR);

console.log("RPC:", RPC);
console.log("chainId:", Number(network.chainId));
console.log("blockNumber:", blockNumber);
console.log("address:", ADDR);
console.log("balanceWei:", balanceWei.toString());
console.log("balanceEth:", formatEther(balanceWei));

说明:公共 RPC 可能限流或变更;截图时 rpc.sepolia.org 返回 404,已改用 PublicNode 的 Sepolia 端点。也可用 ethereum.org / 各家文档列出的其它公共端点。地址换成任意你知道的 Sepolia 地址或零地址均可。

运行 node read_balance.mjs,应看到 chainId=11155111、当前 blockNumber,以及该地址余额(wei 与 ether)。下图为本机真实输出(数值会随链变化)。

ethers.js 连测试网:Provider 与读余额第一步-程序旅途
图3:本机运行 ethers.js 脚本输出:JsonRpcProvider 读 Sepolia chainId / blockNumber / balance;无私钥、未发交易

到 Sepolia 浏览器对照

打开 Sepolia Etherscan · 同一地址。确认域名是 sepolia.etherscan.io(不是主网 etherscan.io)。Overview 里的 ETH Balance 应与脚本 balanceEth 同量级;测试网代币估值常显示接近 $0。

ethers.js 连测试网:Provider 与读余额第一步-程序旅途
图4:sepolia.etherscan.io 地址页:ETH Balance 与脚本读数对照;界面为英文,余额/交易会变动

再看 Sepolia Etherscan 首页,可核对最新区块高度是否接近脚本打印的 blockNumber(相差几块属正常,因截图与运行有时间差)。

ethers.js 连测试网:Provider 与读余额第一步-程序旅途
图5:sepolia.etherscan.io:Sepolia 测试网浏览器首页;界面为英文,区块高度会变动
  1. 读懂 Provider ≠ Signer:第一步只查不写。
  2. 只用测试网 RPC(Sepolia chainId 11155111)。
  3. 脚本里不要出现私钥、助记词、sendTransaction。
  4. 用 Sepolia 浏览器核余额与块高;数值以当时链上为准。

相关阅读

说明:文中 blockNumber、余额与 RPC 可用性均为 2026-10-04 本机运行/截图状态,会随网络变化;接口以 docs.ethers.org v6 为准。本文只做测试网只读练习,不构成任何投资建议。