摘要
Sepolia 公共 RPC 端点是一个共享的、无需注册的 HTTP URL,允许你在以太坊 Sepolia 测试网上读取链状态并广播测试交易。这是在决定付费计划之前,将钱包、Hardhat、Foundry 或 ethers/viem 脚本指向 Sepolia 的最快方式。
本页面为你提供确切的链设置、一个可用的 OnFinality 公共端点、水龙头和调试说明,以及一份简短指南,说明何时共享端点足够,何时应迁移到专用节点。
Sepolia 是以太坊的主要应用测试网。如果你正在部署合约、测试钱包流程或配置 CI 任务,你需要一个能够可靠响应 eth_chainId、eth_getBalance 和 eth_sendRawTransaction 的 RPC 端点,以完成任务。公共端点可以让你在一分钟内搞定。
本页面是参考,不是推销。你将获得确切的链设置、一个可用的公共端点、请求示例、水龙头和调试说明,以及一条明确的界线,说明共享端点何时不再合适。
链设置一览
在将 Sepolia 添加到钱包、框架配置或部署脚本时,请使用这些值。它们与 OnFinality Sepolia 网络页面 一致。
| 设置 | 值 |
|---|---|
| 网络名称 | Ethereum Sepolia |
| 链 ID | 11155111 |
| 货币符号 | ETH (Sepolia Ether) |
| 小数位 | 18 |
| 区块浏览器 | https://sepolia.etherscan.io |
| 公共 RPC (OnFinality) | https://eth-sepolia.api.onfinality.io/public |
| 传输 | HTTP JSON-RPC |
Sepolia ETH 没有市场价值。这正是重点:它让你可以测试价值转移逻辑、gas 估算和失败路径,而无需冒真实资金的风险。这也意味着网络具有抗重置性,但并非生产级,因此请将这里的任何端点选择视为主网的预演。
公共端点何时合适
共享公共端点通常是正确选择,当:
- 你正在原型设计、学习或运行一次性脚本。
- 你在主网部署前验证合约。
- 你需要在钱包或 dApp 配置中设置备用 URL。
- 你的请求量低且突发,而非持续。
当以下任何情况成立时,请迁移到托管或专用端点:
- 你的测试套件在每次提交时运行,每分钟访问端点数百次。
- 你依赖大区块范围内的
eth_getLogs或debug_/trace_方法。 - 你需要 WebSocket 订阅以进行事件驱动测试。
- 你需要负载下的可预测行为,而非尽力而为的共享。
如果你已经过了原型设计阶段,请在决定前比较 RPC 定价 上的选项和完整的 支持的 RPC 网络 列表。如需更广泛的框架,请参阅 如何选择 RPC 提供商。
将 Sepolia 添加到钱包
大多数钱包接受自定义网络。请完全按照上面列出的字段填写。一个常见错误是粘贴主网 RPC URL 与 Sepolia 链 ID,或反之。如果钱包显示你已资助的地址余额为零,请先检查链 ID。
对于基于浏览器的测试,你也可以通过 EIP-1193 以编程方式添加网络:
await window.ethereum.request({
method: "wallet_addEthereumChain",
params: [{
chainId: "0xaa36a7", // 11155111
chainName: "Ethereum Sepolia",
nativeCurrency: { name: "Sepolia Ether", symbol: "ETH", decimals: 18 },
rpcUrls: ["https://eth-sepolia.api.onfinality.io/public"],
blockExplorerUrls: ["https://sepolia.etherscan.io"]
}]
});
使用 curl 验证端点
在调试应用之前,确认端点本身有响应。两个调用覆盖大多数情况:链 ID 和最新区块。
curl -s https://eth-sepolia.api.onfinality.io/public \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"eth_chainId","params":[]}'
curl -s https://eth-sepolia.api.onfinality.io/public \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":2,"method":"eth_blockNumber","params":[]}'
eth_chainId 应返回 0xaa36a7。如果返回 0x1,则你指向的是以太坊主网。如果 eth_blockNumber 在调用之间返回不断增加的十六进制值,则端点在线。
将其接入 ethers 或 viem
在脚本或测试中,端点只是一个 URL。将其保存在环境变量中,以便无需编辑代码即可更换。
import { JsonRpcProvider } from "ethers";
const provider = new JsonRpcProvider(
process.env.SEPOLIA_RPC_URL ?? "https://eth-sepolia.api.onfinality.io/public"
);
const network = await provider.getNetwork();
console.log(network.chainId); // 11155111n
const block = await provider.getBlockNumber();
console.log("latest block", block);
使用 viem,同样的思路:
import { createPublicClient, http } from "viem";
import { sepolia } from "viem/chains";
const client = createPublicClient({
chain: sepolia,
transport: http("https://eth-sepolia.api.onfinality.io/public")
});
console.log(await client.getBlockNumber());
从水龙头获取测试 ETH
没有 Sepolia ETH,你无法部署或发送交易。水龙头是标准来源。大多数要求少量主网余额、社交登录或工作量证明式检查以限制滥用。
实用说明:
- 水龙头滴水量很小。如果你运行重复部署,请预算几次请求。
- 一些水龙头按地址、IP 或账户年龄进行速率限制。如果一个拒绝,请尝试另一个,而不是重试同一个。
- 水龙头可用性会变化。将任何特定水龙头视为便利,而非 CI 管道中的依赖。
- 如果交易卡住,请在请求更多 ETH 之前检查 nonce。低 nonce 的待处理交易将阻塞后续交易。
对于 nonce 相关的失败,请参阅配套文章 区块链交易中的 nonce 是什么。
调试你实际会遇到的失败
大多数 Sepolia 问题并不奇特。它们分为几类,每类都有快速检查。
| 症状 | 可能原因 | 首先检查 |
|---|---|---|
chainId 不匹配错误 | 钱包或配置中的网络错误 | 调用 eth_chainId;预期 0xaa36a7 |
| 余额显示为零 | 地址错误、链错误或水龙头未确认 | 比较地址和链 ID;检查浏览器 |
nonce too low | 过时的待处理交易 | 检查该地址的待处理交易 |
insufficient funds for gas | 水龙头滴水未到账或 gas 飙升 | 检查余额和当前基础费用 |
eth_getLogs 无返回 | 范围太宽或地址/主题错误 | 缩小区块范围;重新检查主题 |
| 负载下请求超时 | 共享端点限流 | 使用退避重试;考虑专用节点 |
| 合约调用本地回滚但链上不回滚 | 状态过时或区块标签错误 | 固定 blockTag 或刷新提供者 |
一个有用的习惯:记录原始 JSON-RPC 错误对象,而不仅仅是消息。code 和 data 字段通常告诉你问题是你的请求、你的账户状态还是端点。
公共 vs 托管 vs 专用
Sepolia 是测试网,但基础设施决策与主网形状相同。区别在于你愿意用多少便利换取控制。
| 选项 | 最适合 | 权衡 |
|---|---|---|
| OnFinality 公共端点 | 原型设计、低流量脚本、备用 URL | 共享容量,无 SLA |
| OnFinality RPC API | 需要稳定密钥、更高限制和多网络访问的应用 | 需要计划 |
| OnFinality 专用节点 | CI 套件、归档查询、trace/debug 方法、WebSocket 测试 | 成本更高,设置更多 |
OnFinality 在许多网络上提供 RPC API 访问和专用节点基础设施,包括 Sepolia 和 Base Sepolia。如果你的测试工作负载在增长,RPC API 服务 和 专用节点 页面描述了两条路径。你也可以查看 RPC 定价 以了解哪个适合你的阶段。
简短的生产就绪检查清单
即使对于测试网,将端点视为系统的一部分也有帮助:
- 在配置中固定链 ID 并在启动时断言。
- 保留至少两个端点,并在重复错误时故障转移。
- 为瞬态故障添加指数退避重试。
- 缓存
eth_chainId和net_version;它们不会改变。 - 避免无界的
eth_getLogs范围;分块处理。 - 记录请求 ID 和错误代码,以便关联失败。
- 分离读写路径,以便卡住的写入不会阻塞读取。
如果你在多个 L2 上测试,同样的模式适用。Base Sepolia 使用链 ID 84532 和不同的端点;请参阅 Base Sepolia 网络页面 了解其设置。
关键要点
- Sepolia 链 ID 是 11155111;OnFinality 公共端点是
https://eth-sepolia.api.onfinality.io/public。 - 在调试应用之前,使用
eth_chainId和eth_blockNumber验证任何端点。 - 公共端点适合原型设计和低流量脚本;对于 CI、归档、trace 或 WebSocket 工作负载,请迁移到托管或专用端点。
- 大多数 Sepolia 错误是链 ID 不匹配、nonce 问题或水龙头延迟,而非端点中断。
- 保留备用端点并使用退避重试,以平滑共享容量的暂时问题。
常见问题
什么是 Sepolia 公共 RPC 端点?
Sepolia 公共 RPC 端点是一个用于以太坊 Sepolia 测试网的共享 HTTP JSON-RPC URL。OnFinality 公共端点是 https://eth-sepolia.api.onfinality.io/public。它无需注册,适合原型设计和低流量使用。
Sepolia 链 ID 是什么?
Sepolia 的链 ID 是 11155111,十六进制为 0xaa36a7。在发送交易之前,请始终使用 eth_chainId 确认。
公共 Sepolia 端点对生产安全吗?
Sepolia 是测试网,因此这里的“生产”指的是你的测试和 CI 工作负载。共享公共端点适合轻量使用,但对于持续负载、归档查询或 trace/debug 方法,托管或专用端点更合适。
为什么使用水龙头后我的 Sepolia 余额显示为零?
检查三件事:你资助的地址、钱包中的链 ID,以及水龙头交易是否已在浏览器上确认。水龙头滴水量很小,有时会延迟。
我可以在公共 Sepolia 端点上使用 WebSocket 吗?
公共端点通常仅支持 HTTP。如果你的测试依赖 eth_subscribe 或事件流,请使用支持 WebSocket 传输的托管或专用端点。
如何在 Sepolia 上调试 nonce too low?
列出该地址的待处理交易。低 nonce 的卡住交易会阻塞后续交易。要么等待其确认,要么用更高的费用替换它,要么在本地开发环境中重置账户 nonce。
在哪里可以找到其他测试网端点?
OnFinality 发布许多链的网络设置。浏览 支持的 RPC 网络 以找到你使用的每个测试网的合适端点和链 ID。