RPC method

eth_getBalance on BNB Smart Chain

Supported on SwiftNodes

Everything below was measured on 2026-10-13 by calling eth_getBalance on BNB Smart Chain through the same endpoint customers use, and is re-measured weekly.

What eth_getBalance does

Returns an account's balance of the chain's native token in wei (the smallest unit, 10^-18), at a given block. It works for contracts as well as wallets; ERC-20 balances need eth_call to the token's balanceOf instead.

eth_getBalance on BNB Smart Chain: what we measured

The zero address held 99,246 BNB on BNB Smart Chain when we measured. On most chains a zero-address balance is funds sent there by mistake or burned; either way it differs from chain to chain, so reading it is a quick sanity test that your client is talking to BNB Smart Chain and not another network.

You can pin a read to an exact block with {"blockHash": "0x..."} (EIP-1898). Unlike a block number, a hash fails loudly if that block was reorganised away.

Balances at blocks older than about 1,000,000 blocks need historical state. Archive routing did not measure as available for this chain.

Unitwei of BNB (1 BNB = 10^18 wei)
Balance of 0x0000…0000 (zero address)99,246 BNB
Balance of 0x…dEaD (burn address)16,499,560 BNB
Block given by hash (EIP-1898)accepted
History on default routingabout the last 1,000,000 blocks
Older blocks (archive=1)not measured as available

Example request

curl -s https://rpc.swiftnodes.io/rpc/bsc?key=YOUR_API_KEY \
  -X POST -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"eth_getBalance","params":["0x000000000000000000000000000000000000dEaD","latest"]}'
import { createPublicClient, formatEther, http } from "viem";

const client = createPublicClient({
  transport: http("https://rpc.swiftnodes.io/rpc/bsc?key=YOUR_API_KEY"),
});

const wei = await client.getBalance({ address: "0x000000000000000000000000000000000000dEaD" });
console.log(formatEther(wei), "BNB");

// At a past block
const then = await client.getBalance({ address: "0x000000000000000000000000000000000000dEaD", blockNumber: 127400926n });

// Many balances in one request: Multicall3 is deployed on BNB Smart Chain
const balances = await client.multicall({
  contracts: addresses.map((a) => ({ address: "0xcA11bde05977b3631167028862bE2a173976CA11", abi: [{ name: "getEthBalance", type: "function", stateMutability: "view", inputs: [{ type: "address" }], outputs: [{ type: "uint256" }] }], functionName: "getEthBalance", args: [a] })),
});

Other methods on BNB Smart Chain

eth_getBalance on other chains

Frequently asked questions

Does BNB Smart Chain support eth_getBalance?

Yes. eth_getBalance answered on the SwiftNodes BNB Smart Chain endpoint when our weekly probe called it through the customer path (2026-10-13).

What unit does eth_getBalance return on BNB Smart Chain?

Wei of BNB, as a hex string: divide by 10^18 for BNB. viem's formatEther does this.

Can I get historical balances on BNB Smart Chain?

Default routing keeps about 1,000,000 blocks of state. Older balances did not measure as available.

BNB Smart Chain endpoints, live block height and WebSocket status are on the BNB Smart Chain RPC page.

One key covers every chain we serve, and SwiftNodes has a free tier.