Logo
新用户订阅 RPC,首月享 6.5 折优惠查看优惠
RPC Assistant

BNB Smart Chain RPC:端点设置、链 ID 和调试

摘要

BNB Smart Chain (BSC) 提供与 EVM 兼容的 JSON-RPC 接口,因此大多数以太坊工具在将其指向 BSC 端点并设置链 ID 56 后即可使用。本页涵盖端点格式、钱包和库配置、对 BSC 应用重要的方法,以及如何调试最可能遇到的故障。

您可以先使用公共 OnFinality 端点进行快速测试,然后在需要可预测的吞吐量、归档访问或用于生产流量的 WebSocket 订阅时,迁移到托管的 RPC API 或专用节点。

BNB Smart Chain (BSC) 使用与以太坊相同的 JSON-RPC 方言,这就是为什么大多数开发者只需更改一个 URL 就能将现有的 EVM 工具连接到它。摩擦通常出现在后期:钱包静默指向错误的链、eth_getLogs 调用超时,或者 WebSocket 订阅在负载下断开。本页首先提供端点设置,然后是调试路径和生产决策点。

链设置一览

在将 BSC 添加到钱包、库或后端配置时,请使用这些值。它们与网络的规范 EVM 参数匹配。

设置BNB Smart Chain 主网BNB Chain 测试网
链 ID5697
链名称BNB Smart Chain MainnetBNB Smart Chain Testnet
原生货币BNB(18 位小数)tBNB(18 位小数)
区块浏览器https://bscscan.comhttps://testnet.bscscan.com
传输HTTP, WebSocketHTTP
公共 OnFinality 端点https://bnb.api.onfinality.io/publichttps://bnb-testnet.api.onfinality.io/public

如果您在测试网上构建,请在代码库中将两个配置分开。大量“交易失败”报告源于将测试网私钥用于主网端点,或反之。

在编写代码之前选择正确的连接类型

在复制端点之前,请确定您的应用实际需要哪种连接。这个选择比任何提供商标志更能决定成本和可靠性。

  • 公共共享端点 — 适用于脚本、原型、钱包测试和低容量读取。不适用于持续的生产流量或大型日志查询。
  • 托管 RPC API — 带有密钥的端点,具有更高的限制、监控和支持。大多数 dApp、机器人和后端的正确默认选择。有关计划形态,请参阅 RPC 定价
  • 专用节点 — 私有端点后面的您自己的 BSC 节点。当您需要一致的吞吐量、归档历史、trace/debug 方法或与其他租户隔离时,请选择此选项。请参阅 专用节点

一个快速规则:如果您的应用可以容忍偶尔的重试,并且您没有运行繁重的 eth_getLogs 或 WebSocket 工作负载,那么托管 RPC API 通常就足够了。如果您正在索引、运行交易机器人或需要历史状态,请计划专用基础设施。

在钱包和库中配置 BSC

钱包网络配置

大多数 EVM 钱包接受自定义网络对象。以下字段是重要的:

{
  "chainId": "0x38",
  "chainName": "BNB Smart Chain Mainnet",
  "nativeCurrency": { "name": "BNB", "symbol": "BNB", "decimals": 18 },
  "rpcUrls": ["https://bnb.api.onfinality.io/public"],
  "blockExplorerUrls": ["https://bscscan.com"]
}

请注意,chainId 是十六进制(0x38 = 56)。拒绝该网络的钱包通常是因为链 ID 是十进制或 RPC URL 无法访问。

viem / ethers

一旦您提供链 ID 和传输,这两个库都可以与 BSC 一起使用:

import { createPublicClient, http } from 'viem';
import { bsc } from 'viem/chains';

const client = createPublicClient({
  chain: bsc,
  transport: http('https://bnb.api.onfinality.io/public')
});

const block = await client.getBlockNumber();
console.log('BSC head:', block);

对于 ethers v6,将相同的 URL 传递给 JsonRpcProvider,并在发送交易之前确认报告的 network.chainId56n

原始 JSON-RPC 检查

当出现问题时,在责怪您的应用之前直接测试端点:

curl -s https://bnb.api.onfinality.io/public \
  -H 'content-type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"eth_chainId","params":[]}'

健康的响应返回 "result":"0x38"。如果您收到超时或 HTML 错误页面,问题出在端点或网络路径,而不是您的合约调用。

在 BSC 上行为不同的方法

BSC 与 EVM 兼容,但有几个方法值得关注,因为它们是生产问题的常见来源。

方法典型用途注意事项
eth_getLogs索引事件、回填宽区块范围可能在共享端点上超时;分块范围
eth_call读取合约如果目标区块在非归档节点上被修剪,则失败
eth_getBalance钱包余额历史余额需要归档访问
eth_subscribe实时事件需要 WebSocket 传输;并非所有端点都暴露它
debug_traceTransaction深度调试通常仅在专用/归档节点上可用
eth_sendRawTransaction广播拒绝通常意味着 nonce 或 gas 问题,而不是 RPC 失败

如果您的工作负载依赖于最后三行,请在承诺提供商之前确认支持。OnFinality 的 BNB Smart Chain 页面 列出了该网络的传输和端点详细信息。

常见 BSC RPC 故障的调试路径

按顺序处理这些症状。大多数问题在前两步解决。

症状可能原因首次修复
chainId 不匹配钱包或配置中的网络错误验证 0x38(主网)或 0x61(测试网)
eth_getLogs 超时区块范围太宽拆分为更小的范围并分页
nonce too low待处理交易或重复使用的 nonce使用 pending 重新读取 eth_getTransactionCount
insufficient fundsGas 价格飙升或代币错误检查 BNB 余额和当前 gas 价格
WebSocket 断开连接空闲超时或传输不稳定添加重连逻辑和心跳
method not found端点缺少 trace/debug迁移到启用了这些方法的专用节点
空的 eth_call 结果该区块的状态被修剪使用支持归档的端点

一个有用的习惯:在每次失败的请求旁边记录端点 URL 和链 ID。这决定了是五分钟修复还是一个下午的猜测。

何时从公共端点迁移到托管或专用

公共端点是一个好的起点,但它们是共享的。一旦您的流量变得不可预测,您就开始与同一 URL 上的其他人竞争容量。需要关注的信号:

  • 高峰时段速率限制响应增加。
  • eth_getLogs 或归档查询间歇性失败。
  • WebSocket 订阅在没有明确网络原因的情况下断开。
  • 需要公共端点不暴露的 trace/debug 方法。

此时,托管 RPC API 为您提供一个带有更清晰限制和监控的密钥端点,而专用节点为您提供隔离的容量以及对可用方法和历史的控制。OnFinality 在其 RPC API 服务 中提供两者,您可以在 定价页面 上比较计划形态。

发布前的操作清单

  • 在配置中固定链 ID 和端点,而不是分散的常量。
  • 添加备用端点,以便单个提供商中断不会导致应用宕机。
  • 分块 eth_getLogs 调用并限制每个请求的区块范围。
  • 为 WebSocket 订阅实现重连逻辑。
  • 监控每个方法的错误率和延迟,而不仅仅是整体正常运行时间。
  • 严格分开测试网和主网配置。
  • 如果您计划索引历史,请尽早确认归档和 trace 需求。

关键要点

  • BNB Smart Chain 使用链 ID 56(主网)和 97(测试网),原生货币为 BNB。
  • 公共 OnFinality 端点 https://bnb.api.onfinality.io/public 适用于测试;生产工作负载通常需要托管或专用端点。
  • eth_getLogs、归档读取和 WebSocket 订阅是最有可能迫使基础设施升级的方法。
  • 大多数“RPC 错误”实际上是链 ID、nonce 或 gas 问题——在更换提供商之前检查这些。
  • 使用 BNB Smart Chain 网络页面支持的网络列表 确认端点和传输详细信息。

常见问题解答

BNB Smart Chain 的 RPC URL 是什么?

公共 OnFinality 端点是 https://bnb.api.onfinality.io/public。对于生产环境,请使用来自提供商仪表板的带密钥的托管端点或专用节点 URL。

BNB Smart Chain 的链 ID 是什么?

主网是 56(0x38)。测试网是 97(0x61)。

BSC 支持 WebSocket RPC 吗?

是的,BSC 支持 WebSocket 传输,这是 eth_subscribe 所需的。在依赖它之前,请确认您选择的端点暴露了 WS。

为什么我的 eth_getLogs 调用在 BSC 上超时?

BSC 快速生成区块,因此宽区块范围会产生大量结果集。分块范围并分页。如果仍然失败,您可能需要具有更高限制的专用端点。

我可以将以太坊工具与 BSC 一起使用吗?

是的。BSC 与 EVM 兼容,因此一旦设置链 ID 和 RPC URL,viem、ethers、Hardhat 和 Foundry 都可以工作。

我需要为 BSC 使用归档节点吗?

仅当您查询旧区块的历史状态或余额时。标准节点会修剪该数据,因此归档访问需要提供它的提供商。

后续步骤

如果您仍在原型设计,请从公共端点和上面的配置片段开始。如果您正在准备生产,请查看 如何选择 RPC 提供商,然后比较 BSC 的 RPC 定价专用节点 选项。对于测试网工作,BNB Chain 测试网页面 有匹配的设置。

RPC 知识库

相关 RPC 内容

网络 RPCEthereum

以太坊 RPC 列表:如何为你的应用选择正确的端点

以太坊 RPC 列表是一组端点,让你的 dApp 能够在以太坊上读写数据。选择正确的端点取决于你的工作负载:公共端点适合测试,而生产应用需要托管或专用基础设施。本指南解释了 RPC 端点的类型、如何评估它们,以及如何使用流行工具进行连接。...

RPC 提供商选择Starknet

Starknet RPC:端点、提供商和最佳实践

Starknet 是基于以太坊的 ZK-rollup,使用 STARK 证明实现可扩展性。要与 Starknet 交互,您需要一个 RPC 端点。本指南涵盖公共和私有 Starknet RPC 端点、如何选择提供商以及针对开发者的常见故障排除技巧。...

RPC 提供商选择Solana

具有企业级支持的 Solana RPC 提供商:评估要点

为生产工作负载选择 Solana RPC 提供商时,需要评估的不仅仅是原始吞吐量。企业级支持意味着拥有明确的 SLA、专用容量和响应迅速的升级路径。本文概述了关键标准——从端点可靠性到故障转移策略——并解释了如何针对您的特定用例评估提供商。...

网络 RPCBNB Chain

如何在BNB智能链上质押:分步指南

本指南介绍如何在BNB智能链(BSC)上质押BNB,涵盖委托给验证人和流动性质押两种方式。包括连接钱包、选择验证人、监控质押的实际步骤,以及关于质押交易RPC可靠性的指导。...

网络 RPCPolkadotAsset Hub

Asset Hub Migration: What Developers Need to Know About the Polkadot Relay Chain Transition

Asset Hub 迁移将 Polkadot 的核心功能——余额、质押和治理——从中继链转移到 Asset Hub 系统平行链。本指南解释了迁移对 RPC 端点、质押集成和开发者工作流程的影响,并提供了更新基础设施的实用步骤。...

RPC 提供商选择

What are the key differences between dedicated and shared node access for blockchain applications?

Dedicated node access gives you exclusive use of a blockchain node, while shared node access means multiple users connect to the same endpoint. The ch...

永远不用担心基础设施

OnFinality 消除了 DevOps 的繁重工作,让您能够更聪明、更快地构建。

开始