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

BSC API:端点、方法与开发者设置

摘要

BSC API(BNB智能链API)是一组JSON-RPC端点,允许开发者与BSC网络交互。本参考涵盖端点类型、常用方法、设置步骤以及生产环境工作负载的故障排除技巧。

BSC API 决策清单

在集成BSC API之前,请考虑以下关键点:

  • 端点类型:公共、共享还是专用RPC?公共端点有速率限制;专用节点提供稳定的性能。
  • 归档节点 vs. 全节点:归档节点提供历史状态数据;全节点只提供近期数据。根据您的数据需求选择。
  • WebSocket 支持:如需实时订阅(例如待处理交易、日志),请确保您的提供商支持WSS。
  • 速率限制:检查允许的每秒请求数(RPS)和月度配额。生产应用需要预留空间。
  • 地理延迟:选择靠近用户群体的端点,或使用全局负载均衡器。
  • 调试和跟踪 API:用于交易模拟和高级监控;并非所有提供商都启用。
  • 定价模式:按需付费 vs. 固定费用。在确定前预估您的调用量。

更多详情请参见我们的 RPC 定价支持的网络

BSC API 快速介绍

BSC API 指 BNB 智能链(BSC)节点暴露的 JSON-RPC 接口。由于 BSC 兼容 EVM,其 API 几乎与以太坊的 JSON-RPC 相同——eth_blockNumbereth_getBalanceeth_sendRawTransaction 等方法的工作方式完全相同。这意味着现有的以太坊工具(Hardhat、Foundry、viem、web3.js)只需极少修改即可用于 BSC。

BSC 添加了一些特定于其最终性机制和 blob 支持的 BEP 方法。理解这些有助于构建更可靠的 dApp。

BSC API 端点概览

BSC 端点主要有三种类型:

  • 公共 RPC:免费,但速率限制严格(例如 5–10 req/s)。仅用于测试。
  • 共享/服务 RPC:由 OnFinality 等基础设施平台提供。更高的限制、归档数据,通常带有 WebSocket 和跟踪 API。
  • 专用节点:独立实例,拥有保证的资源、完全控制权,且无噪音邻居。

对于生产环境,推荐使用服务 RPC 或专用节点。您可以在我们的 网络页面 上找到 BSC 端点。

BSC JSON-RPC 方法

以下是最常用的方法,按类别分组:

类别主要方法使用场景
链信息eth_chainId, eth_blockNumber, net_version识别网络和当前区块
账户eth_getBalance, eth_getTransactionCount查询账户状态和 nonce
区块/交易eth_getBlockByNumber, eth_getTransactionReceipt, eth_getLogs获取链上数据
执行eth_call, eth_estimateGas, eth_sendRawTransaction模拟和发送交易
事件订阅eth_subscribe, eth_unsubscribe (WebSocket)实时事件流
调试/跟踪debug_traceTransaction, trace_block交易内省
BSC 特有eth_getFinalizedBlock, eth_getBlobSidecarByTxHash最终性查询和 blob 数据

大多数 EVM 库对这些方法进行了抽象。您很少直接调用它们;而是使用库的 API。

连接到 BSC API

以下是使用 curl 和 viem(JavaScript)连接到 BSC 主网的方法:

使用 curl

curl -X POST https://rpc.onfinality.io/bsc \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "eth_blockNumber",
    "params": [],
    "id": 1
  }'

使用 viem (JavaScript)

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

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

async function main() {
  const blockNumber = await client.getBlockNumber();
  console.log('Current BSC block:', blockNumber);
}

main();

WebSocket 订阅

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

const client = createPublicClient({
  chain: bsc,
  transport: webSocket('wss://rpc.onfinality.io/bsc/ws')
});

const unwatch = await client.watchBlockNumber({
  onBlockNumber: (blockNumber) => console.log('New block:', blockNumber),
});

常见陷阱与故障排除

  • 速率限制:公共端点常返回 429 Too Many Requests。使用限制更高的服务或专用节点。
  • 最终性确认:BSC 具有概率最终性(约15个区块)和经济最终性(BEP-126)。对于不可逆交易,请等待 eth_getFinalizedBlock 或至少15个确认。
  • 缺少归档数据:如果需要过去的状态(例如历史代币余额),请确保您的端点启用了归档数据。
  • WebSocket 断开:不稳定的连接可能导致订阅丢失。使用指数退避实现重连逻辑。
  • Gas 估算失败:如果 eth_estimateGas 回滚,请检查发送者余额和合约逻辑。使用带 stateOverrideeth_call 进行调试。

决定共享 vs. 专用 BSC API

评判标准检查内容为什么重要
吞吐量每秒请求数限制影响同时服务的用户/合约数量
数据保留归档 vs. 剪枝决定能否查询历史状态
API 表面调试/跟踪、WebSocket、eth_subscribe高级工作流(模拟、实时数据)所需
延迟端点地理位置影响用户体验,尤其对时间敏感的 dApp
正常运行时间 SLA提供商保证高可用性减少生产应用停机的风险
定价按需付费 vs. 月度固定与预算和扩展模式匹配

对于中小型工作负载,共享 RPC 服务性价比高。高流量或延迟敏感型项目受益于专用节点。

关键要点

  • BSC API 兼容 EVM;大多数以太坊工具在链 ID 56 上无需修改即可运行。
  • 根据工作负载选择端点:测试用公共、生产用服务 RPC、高吞吐用专用。
  • BSC 特有方法如 eth_getFinalizedBlock 有助于更快地确认最终性。
  • 构建前务必检查速率限制、归档支持和 WebSocket 可用性。
  • OnFinality 提供 BSC 主网测试网 RPC 端点,包含共享和专用选项。

常见问题

BSC API 和以太坊 API 有什么区别?

它们几乎相同。BSC 为其最终性和 blob 功能添加了一些自定义方法,但所有标准 eth_* 方法都有效。

使用 BSC 端点是否需要 API 密钥?

公共端点可能不需要密钥,但有速率限制。对于生产环境,您需要从 OnFinality 等提供商获取 API 密钥,以解锁更高的限制和专用资源。

在认为交易最终确定之前,我应该等待多少个确认?

BSC 的概率最终性建议等待15个区块(约30秒)。对于经济最终性(BEP-126),您可以检查 eth_getFinalizedBlock,它在2个区块内确认(约3.75秒)。

能否使用 BSC API 获取实时数据?

可以,通过 WebSocket 订阅(eth_subscribe)。确保您的提供商支持 WSS 且具有足够的吞吐量。

如果我的提供商不支持归档数据怎么办?

您可以切换到支持归档的提供商,或自行运行归档节点。OnFinality 为 BSC 提供归档端点。

有测试网 API 吗?

有,BSC 测试网(Chapel)可用。请参见我们的 测试网网络页面 获取端点。

RPC 知识库

相关 RPC 内容

RPC 提供商选择Stellar

如何为 Soroban 应用选择 Stellar RPC 提供商?

Stellar RPC 让你能够实时访问 Stellar 网络数据,用于 Soroban 智能合约、账户余额和交易提交。不同提供商在网络覆盖、归档支持、专用节点访问和定价方面有所差异,因此正确选择取决于你的应用工作负载。 本指南介绍了什么是 Stellar RPC、需要比较的功能,以及如何在做出承诺...

网络 RPCPolkadot

什么是Polkadot节点,如何运行一个?

# 什么是Polkadot节点,如何运行一个? Polkadot节点是一种软件客户端,它连接到Polkadot网络,同步区块链数据,并提供RPC端点用于查询状态、提交交易以及与平行链交互。运行自己的节点可以让你直接、无需信任地访问网络,但这需要大量的硬件、存储和持续的维护。对于许多开发者和dApp来...

RPC 提供商选择

如何为NFT项目选择RPC提供商?

NFT应用——铸造平台、市场及游戏工具——依赖快速、可靠的RPC端点来提交交易和获取元数据。选择不当的提供商可能导致铸造失败、加载缓慢及用户体验差。本指南涵盖评估用于NFT工作负载的RPC提供商的关键标准,包括延迟、速率限制、归档数据支持和故障转移能力。我们还以Solana网络为例,演示实际设置步骤...

网络 RPCStarknet

什么是 Starknet 端点,如何选择?

Starknet 端点是您的应用程序用来向 Starknet 主网或 Sepolia 测试网发送 JSON-RPC 请求的 URL。它提供了读取区块、估算费用、提交交易和订阅事件的方法。 选择合适的端点意味着检查网络、RPC 版本、速率限制、归档数据和 WebSocket 支持。公共端点适合原型开发...

网络 RPCBNB Chain

什么是BNB智能链RPC URL,如何使用?

BNB智能链(BSC)RPC URL是您的dApp、钱包或脚本用来向BSC网络发送JSON-RPC请求的端点。OnFinality官方公共端点是https://bnb.api.onfinality.io/public。本文解释了如何配置它、选择RPC提供商时需要注意什么,以及如何调试常见问题。...

RPC 提供商选择

如何评估最佳区块链JSON-RPC API解决方案?

区块链JSON-RPC API让您的dApp无需运行全节点即可读写网络。但并非所有供应商都一样——延迟、存档支持、WebSocket可用性和定价模型差异很大。本文介绍了每个开发人员在为生产环境选择RPC API提供商之前应检查的评估标准。...

永远不用担心基础设施

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

开始