Skip to content

BNB Smart Chain

Endpointhttps://rpc.lab.au.ro/bsc
ProtocolJSON-RPC 2.0 over HTTPS (POST)
chainId56 (0x38)
Batch

Supported methods

Same live-verified EVM surface as Ethereum (eth_*, net_version, web3_clientVersion). debug_*/trace_* are not available on the node.

Quick test

bash
curl -X POST https://rpc.lab.au.ro/bsc \
  -H "apikey: $YOUR_API_KEY" -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
# {"jsonrpc":"2.0","id":1,"result":"0x6300521"}

SDK integration

The transport pattern is identical to Ethereum — change the path and chain:

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

const client = createPublicClient({
  chain: bsc,
  transport: http('https://rpc.lab.au.ro/bsc', {
    fetchOptions: { headers: { apikey: process.env.YOUR_API_KEY } }
  })
})
console.log(await client.getChainId())   // 56

ethers v6 works with the same FetchRequest pattern as Ethereum.

Recipes

  • BEP-20 balances — identical to the ERC-20 recipe on the Ethereum page; BEP-20 implements the same ABI.
  • Gas — BSC ignores EIP-1559 tips in practice; eth_gasPrice (5 s cache) is the right fee source.

Limitations

  • Pruned node — deep historical state is unavailable.
  • BSC blocks are large and fast (~1.5 s [Lorentz]); when scanning events keep eth_getLogs ranges to a few hundred blocks.