摘要
Base Sepolia 是 Base 的测试网,Base 是一个 OP Stack L2,结算到以太坊 Sepolia。要连接,请将你的钱包或应用指向 Base Sepolia RPC 端点,并设置链 ID 84532、货币 ETH 和区块浏览器 https://sepolia.basescan.org。OnFinality 在 https://base-sepolia.api.onfinality.io/public 提供了一个公共 Base Sepolia 端点,用于开发和测试。
公共端点便于快速测试,但它们是共享的,在高峰时段可能会受到速率限制或拥塞。对于 CI 流水线、预发布环境或任何需要稳定吞吐量、归档数据或 WebSocket 订阅的场景,请使用托管的 RPC API 或专用节点,这样你的测试网工作流就不会依赖于尽力而为的共享端点。
Base Sepolia 是镜像 Base 主网的测试网。它运行在 OP Stack 上并结算到以太坊 Sepolia,因此你用于 Base 主网的工具大部分可以沿用:相同的 JSON-RPC 方法、相同的 EVM 语义和相同的钱包流程。主要区别在于链 ID、区块浏览器,以及你花费的 ETH 是没有市场价值的测试网 ETH。
如果你现在就需要一个可用的端点,请从下面的链设置开始,将网络添加到你的钱包,并从水龙头获取测试网 ETH。如果你要将 Base Sepolia 接入 CI 流水线或预发布环境,在硬编码任何内容之前,请阅读关于共享端点与托管端点的部分。
链设置一览
这些是将 Base Sepolia 添加到钱包或客户端所需的值。它们与 Base Sepolia 网络配置一致。
| 设置 | 值 |
|---|---|
| 网络名称 | Base Sepolia |
| 链 ID | 84532 |
| 货币符号 | ETH |
| 货币名称 | Sepolia Ether |
| 小数位数 | 18 |
| 区块浏览器 | https://sepolia.basescan.org |
| 公共 RPC(OnFinality) | https://base-sepolia.api.onfinality.io/public |
| 传输方式 | HTTP |
关于链 ID 的快速说明:84532 是 Base Sepolia。Base 主网是 8453。混淆这些是交易在你的日志中看似成功但从未出现在你预期位置的最常见原因之一。
选择连接方式:共享端点还是托管 RPC
最重要的决定不是你先粘贴哪个 URL,而是你的工作负载需要哪种端点。公共端点对于单个开发者测试合约调用来说没问题。但对于在每次拉取请求上运行集成测试的团队,或者需要在演示期间保持响应一致的预发布应用来说,它并不合适。
使用此表为你的情况选择合适的端点类型。
| 你的情况 | 适合的选择 | 原因 |
|---|---|---|
| 一次性合约调用、学习、快速脚本 | 公共 Base Sepolia 端点 | 无需设置、无需账户、立即可用 |
| 钱包测试、手动 QA | 公共端点或托管 RPC | 低流量、人工节奏的请求 |
| 每次提交都运行的 CI 流水线 | 托管 RPC API | 可预测的吞吐量和可放入密钥的稳定 URL |
| 具有真实用户流程的预发布应用 | 托管 RPC API | 避免演示期间共享端点拥塞 |
| 索引日志、重放历史 | 具有归档访问权限的托管 RPC | 公共端点通常会修剪或限制深度查询 |
| 订阅新区块或待处理交易 | 具有 WebSocket 的托管 RPC | 仅 HTTP 的公共端点无法推送事件 |
OnFinality 为开发提供了一个公共 Base Sepolia 端点,当你需要更多余量时,提供了一个托管的 RPC API 服务。如果你的测试网环境对团队来说实际上是生产环境,专用节点可以完全消除共享端点变量。
将 Base Sepolia 添加到钱包
大多数钱包接受自定义网络。字段直接映射到上表。
{
"chainId": "0x14a34",
"chainName": "Base Sepolia",
"rpcUrls": ["https://base-sepolia.api.onfinality.io/public"],
"nativeCurrency": {
"name": "Sepolia Ether",
"symbol": "ETH",
"decimals": 18
},
"blockExplorerUrls": ["https://sepolia.basescan.org"]
}
注意这里的链 ID 是十六进制:十进制的 84532 是 0x14a34。要求十六进制链 ID 的钱包会拒绝十进制形式,反之亦然。如果钱包拒绝保存网络,在检查其他任何内容之前,请先检查格式。
你也可以从 dapp 使用 wallet_addEthereumChain 以编程方式添加网络,传递相同的对象。当你希望用户无需手动设置即可进入 Base Sepolia 时,这很有用。
从水龙头获取测试网 ETH
Base Sepolia ETH 来自水龙头,而不是交易所。你需要少量来部署合约和发送测试交易。水龙头的可用性会随时间变化,因此将任何特定水龙头视为起点,而不是永久依赖。
一些实用说明:
- 水龙头通常要求最低主网余额或社交登录以防止滥用。
- 有些水龙头每天只向一个地址滴注。如果你与团队一起测试,请使用不同的地址。
- 如果直接 Base Sepolia 水龙头不可用,请从以太坊 Sepolia 桥接测试网 ETH。官方 Base 桥支持 Sepolia。
- 保留一个专用的测试钱包。不要重复使用持有主网资产的钱包。
如果水龙头交易长时间待处理,在假设水龙头失败之前,请在 Base Sepolia 浏览器上检查交易哈希。测试网拥塞通常是暂时的。
使用 curl 和 viem 验证端点
在调试应用程序代码之前,确认端点本身有响应。一个 eth_chainId 调用就能告诉你是否在与正确的链通信。
curl -s https://base-sepolia.api.onfinality.io/public \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"eth_chainId","params":[]}'
响应应该是 "0x14a34",即 84532。如果你得到不同的链 ID,说明你指向了错误的网络。如果你得到错误,那么问题出在端点或你的网络路径,而不是你的合约。
在 JavaScript 中,使用 viem 进行相同检查如下所示:
import { createPublicClient, http } from 'viem';
import { baseSepolia } from 'viem/chains';
const client = createPublicClient({
chain: baseSepolia,
transport: http('https://base-sepolia.api.onfinality.io/public'),
});
const blockNumber = await client.getBlockNumber();
console.log('Base Sepolia head:', blockNumber);
如果 getBlockNumber 返回一个不断增长的数字,你的读取路径就正常了。接下来要测试的是写入路径:部署一个简单合约或发送一笔小额转账,然后在浏览器上确认交易。
调试常见的 Base Sepolia 故障
大多数 Base Sepolia 问题都属于少数几类。在更改代码之前,将症状与可能的原因匹配。
| 症状 | 可能原因 | 检查内容 |
|---|---|---|
chainId 不匹配错误 | 选择了错误的网络 | 确认链 ID 是 84532,而不是 8453 |
| 交易卡在待处理状态 | Gas 价格太低或 nonce 间隙 | 检查 nonce 序列和当前基础费用 |
insufficient funds | 没有测试网 ETH | 从水龙头获取,在浏览器上确认余额 |
eth_getLogs 返回空 | 范围太宽或日志被修剪 | 缩小区块范围,尝试支持归档的端点 |
| 负载下请求超时 | 共享端点拥塞 | 将 CI/预发布迁移到托管 RPC 端点 |
| WebSocket 无法连接 | 仅 HTTP 端点 | 使用支持 WebSocket 传输的端点 |
| 合约调用在本地回滚但链上不回滚 | 状态过时或地址错误 | 重新检查部署地址和区块号 |
其中两个值得更详细说明。首先是 nonce 间隙:如果你快速发送两笔交易,第一笔失败,第二笔可能会因为 nonce 顺序不对而一直待处理。在钱包中重置账户 nonce,或者发送一笔相同 nonce 但费用更高的替换交易,通常可以清除它。其次是 eth_getLogs:公共端点通常会限制区块范围或结果数量。如果你在索引,请请求更小的窗口并分页,或者使用明确支持归档查询的端点。
迁移到 Base 主网时有哪些变化
好消息是 Base Sepolia 和 Base 主网共享相同的架构,因此迁移主要是配置。链 ID 从 84532 变为 8453,浏览器从 sepolia.basescan.org 变为 basescan.org,ETH 变成真实的。
不变的是你基础设施决策的形态。如果你在测试网上依赖共享公共端点并且它表现良好,这并不能证明它在主网真实流量下也能表现良好。将迁移到主网视为审查你的 RPC 提供商选择 并确认你的端点支持你实际调用的方法(包括任何归档或 trace 方法)的好时机。OnFinality 将 Base 和 Base Sepolia 都列为支持的网络,因此你可以在不同环境中保持相同的提供商。
发布前的操作检查清单
一个简短的清单,可以捕获大多数从测试网到生产的意外:
- 确认端点对
eth_chainId的响应为 0x14a34。 - 将 RPC URL 存储在环境变量中,而不是源代码中。
- 决定你是否需要归档数据或 WebSocket,并选择支持它的端点。
- 添加一个备用端点,这样单个提供商中断不会停止你的流水线。
- 在启动时记录你的应用连接到的链 ID,以便配置错误的环境显而易见。
- 保持测试网和主网配置分开并清晰命名。
- 在扩展请求量之前查看 RPC 定价,以免出现意外。
关键要点
- Base Sepolia 使用链 ID 84532、货币 ETH 和浏览器 https://sepolia.basescan.org。
- OnFinality 公共端点是 https://base-sepolia.api.onfinality.io/public,通过 HTTP 访问。
- 公共端点适合手动测试,但不适合 CI、预发布或任何需要归档或 WebSocket 访问的场景。
- 在调试应用程序代码之前,使用
eth_chainId验证连接。 - 大多数故障可归因于错误的链 ID、nonce 间隙、缺少测试网 ETH 或共享端点限制。
- 迁移到 Base 主网主要是配置,但这是重新评估 RPC 设置的好时机。
常见问题
Base Sepolia 的链 ID 是什么?
Base Sepolia 使用链 ID 84532,十六进制为 0x14a34。Base 主网使用 8453。
Base Sepolia 的 RPC URL 是什么?
OnFinality 公共端点是 https://base-sepolia.api.onfinality.io/public。你也可以浏览[支持的 RPC 网络](/networks)查看其他选项。
Base Sepolia 公共端点有速率限制吗?
公共端点是共享的,因此吞吐量无法保证,大量或突发使用可能会被限流。为了获得可预测的容量,请使用托管的 RPC API 或专用节点。
如何获取 Base Sepolia ETH?
使用 Base Sepolia 水龙头,或从以太坊 Sepolia 桥接测试网 ETH。水龙头的可用性会变化,因此在依赖某个水龙头之前,请检查当前选项。
Base Sepolia 支持 WebSocket 订阅吗?
OnFinality 公共端点是 HTTP。如果你需要 eth_subscribe 来获取新区块或待处理交易,请使用支持 WebSocket 传输的端点。
我可以在 Base 主网上使用相同的代码吗?
可以。JSON-RPC 方法和 EVM 行为相同。你只需更改链 ID、浏览器和 RPC URL,并使用真实的 ETH。