摘要
Base 主网使用链 ID 8453,Base Sepolia 使用链 ID 84532。当你将 Base 添加到钱包或将客户端指向该网络时,需要正确的链 ID 以及 RPC URL。OnFinality 在 https://base.api.onfinality.io/public 提供免费的公共 Base RPC 端点,因此你可以无需注册即可连接和测试。对于生产流量,专用 Base 节点可为你提供可预测的容量和隔离性。详情请参阅 RPC 定价和支持的网络。
如果你搜索免费的 Base 链 ID,你可能同时需要两样东西:用于注册网络的数字链 ID,以及一个真正能响应的 RPC URL。本页同时提供这两者,然后解释何时免费公共端点就足够,以及何时应该迁移到专用 Base 基础设施。
链设置一览
Base 是基于 OP Stack 构建的以太坊 Layer 2。这对配置很重要,因为 Base 使用 EVM 兼容工具:相同的 JSON-RPC 方法、相同的钱包流程,以及你在以太坊上已经使用的相同客户端库。唯一变化的是链 ID、RPC URL 和区块浏览器。
| 设置 | Base 主网 | Base Sepolia(测试网) |
|---|---|---|
| 链 ID | 8453 | 84532 |
| 链名称 | Base | Base Sepolia Testnet |
| 原生货币 | ETH(18 位小数) | ETH(18 位小数) |
| 区块浏览器 | https://basescan.org | https://sepolia.basescan.org |
| OnFinality 公共 RPC | https://base.api.onfinality.io/public | https://base-sepolia.api.onfinality.io/public |
对于任何涉及真实资金的操作,请使用主网(8453)。在部署之前,使用 Sepolia(84532)进行开发、预发布和合约测试。混淆两者是最常见的配置错误之一,通常表现为交易在错误的网络上“成功”。
你应该实际使用哪个端点?
链 ID 回答“哪个网络”。RPC URL 回答“我如何与它通信”。这些是独立的决策,正确的 RPC 选择取决于你的工作负载。
- 本地开发和快速测试: 免费公共端点就足够了。你可以将脚本或钱包指向它,并立即开始发送请求。
- 测试网和 CI 流水线: 使用 Base Sepolia 公共端点。它可以将测试流量保持在主网之外,并且易于重置。
- 具有稳定流量的生产应用: 迁移到托管或专用端点。公共端点是共享的,因此吞吐量和速率行为不受你控制。
- 大量读取工作负载(索引器、分析、
eth_getLogs): 规划归档访问和更高的请求量,这正是专用节点最能提供帮助的地方。
如果你还不确定,请从公共端点开始,测量你的请求模式,然后再做决定。Base 网络页面列出了当前端点和传输详情,RPC 定价展示了当你超出免费层时托管计划的样子。
将 Base 添加到钱包
大多数钱包允许你使用相同的四个字段添加自定义网络。以下是主网配置:
Network name: Base
RPC URL: https://base.api.onfinality.io/public
Chain ID: 8453
Currency symbol: ETH
Block explorer: https://basescan.org
对于测试网,替换为 Sepolia 的值:
Network name: Base Sepolia
RPC URL: https://base-sepolia.api.onfinality.io/public
Chain ID: 84532
Currency symbol: ETH
Block explorer: https://sepolia.basescan.org
如果钱包拒绝该网络,通常原因是链 ID 拼写错误(8453 与 84532)或 RPC URL 复制时带有尾随空格。在假设端点宕机之前,请仔细重新输入这两个字段。
通过请求验证端点
确认链 ID 和 RPC URL 一致的最快方法是直接询问节点。eth_chainId 以十六进制字符串返回链 ID,因此 0x2105 应解码为 8453。
curl -s https://base.api.onfinality.io/public \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"eth_chainId","params":[]}'
健康的响应如下所示:
{"jsonrpc":"2.0","id":1,"result":"0x2105"}
你还可以确认最新区块正在推进,这表明端点已同步并提供最新数据:
curl -s https://base.api.onfinality.io/public \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}'
如果 eth_chainId 返回 0x2105 但你的应用仍然失败,问题几乎总是出在客户端配置而不是端点。
配置 JavaScript 客户端
使用 ethers 或 viem 时,链 ID 通常作为数字传递,而 RPC URL 是字符串。将它们放在一个配置对象中可以避免环境之间的漂移。
import { createPublicClient, http } from "viem";
import { base, baseSepolia } from "viem/chains";
const client = createPublicClient({
chain: base, // chain ID 8453
transport: http("https://base.api.onfinality.io/public"),
});
const blockNumber = await client.getBlockNumber();
console.log("Base head block:", blockNumber);
对于测试网,将链对象切换为 baseSepolia,并将 URL 切换为 Sepolia 端点。如果你更喜欢 ethers,模式相同:将 8453 作为 chainId 传递,将 RPC URL 作为提供者 URL。两者之间的不匹配会抛出 chainId mismatch 或 network changed 等错误,这些是配置错误,而不是节点故障。
常见故障模式及如何解读
当出现问题时,错误消息通常指向少数几个根本原因。下表将症状映射到可能的修复方法。
| 症状 | 可能原因 | 如何处理 |
|---|---|---|
chainId mismatch | 客户端链 ID 与 RPC 不匹配 | 确认 8453(主网)或 84532(Sepolia) |
| 交易立即失败 | 钱包中的网络错误 | 将钱包切换到匹配的 Base 网络 |
eth_getLogs 超时 | 区块范围过大或共享端点限制 | 缩小范围或迁移到专用节点 |
| 间歇性 429 响应 | 共享公共端点负载过高 | 添加重试,然后规划托管端点 |
| 区块号陈旧 | 端点未同步或 URL 错误 | 重新检查 RPC URL 并重试 |
| 合约调用意外回滚 | 部署在与查询不同的网络上 | 按网络验证合约地址 |
一个有用的习惯是记录应用启动时解析到的链 ID。这一行可以在大多数配置错误到达用户之前捕获它们。
当免费端点不再足够时
公共端点是学习、测试和低流量工具的良好默认选择。它们是共享基础设施,因此不应将其视为容量保证。随着应用增长,一些信号表明是时候迁移了:
- 你在高峰流量期间看到速率限制响应。
- 你的索引器或分析任务需要大的
eth_getLogs范围或归档数据。 - 你需要面向用户交易的一致延迟。
- 你希望隔离,以便其他团队的流量不会影响你的。
此时,专用 Base 节点为你提供私有端点,容量由你控制。OnFinality 同时提供托管 RPC API 和专用节点选项,因此你可以从公共端点开始,并在不更改客户端代码的情况下扩展。查看支持的 RPC 网络以确认 Base 和 Base Sepolia 的覆盖范围,以及专用节点了解隔离和吞吐量详情。
测试网工作流:从 Sepolia 到主网
清晰的晋升路径可以减少发布日的意外:
- 使用公共测试网端点针对 Base Sepolia(84532)进行开发。
- 在 CI 中使用与预发布环境相同的链 ID 和 RPC URL 运行集成测试。
- 在部署之前,按网络验证合约地址和构造函数参数。
- 在一次配置更改中将链 ID 和 RPC URL 切换到主网(8453),而不是分散在多个文件中。
- 针对主网重新运行
eth_chainId和读取调用以确认切换。
将链 ID 和 RPC URL 保存在单个环境驱动的配置中是避免部署到错误网络的最简单方法。
关键要点
- Base 主网链 ID 是 8453;Base Sepolia 是 84532。
- 免费的 OnFinality Base RPC 端点是
https://base.api.onfinality.io/public;Sepolia 端点是https://base-sepolia.api.onfinality.io/public。 - 在调试任何其他内容之前,使用
eth_chainId(0x2105= 8453)验证配置。 - 公共端点适合开发和低流量使用;生产和数据密集型工作负载受益于托管或专用节点。
- 将链 ID 和 RPC URL 保存在一个配置对象中,以防止网络不匹配。
常见问题
Base 链 ID 可以免费使用吗? 是的。链 ID 只是一个公共网络标识符。读取或使用它没有成本;你只需为选择运行的基础设施付费。
Base 主网链 ID 是什么?
8453。十六进制为 0x2105,这就是 eth_chainId 返回的值。
Base Sepolia 链 ID 是什么? 84532。用于测试网开发和预发布。
我可以在生产中使用免费的 Base RPC 端点吗? 你可以从那里开始,但公共端点是共享的。对于稳定的生产流量,请规划托管或专用端点,以便容量可预测。
为什么我的应用显示链 ID 不匹配? 你客户端配置的链 ID 与 RPC URL 指向的网络不匹配。确认主网为 8453 或 Sepolia 为 84532,并且两个值来自同一配置。
测试网需要不同的 RPC URL 吗? 是的。Base Sepolia 使用单独的端点。将测试网链 ID 指向主网 URL(或反之)将失败。
在哪里可以看到 OnFinality 支持哪些网络? 支持的 RPC 网络页面列出了当前覆盖范围,包括 Base 和 Base Sepolia。