BNB Smart Chain
eth_getBlockByNumber
eth_getBlockByNumber retrieves a BNB Smart Chain block by its height or by a named tag like latest or finalized, returning the same structure as a hash lookup. BSC is a geth-equivalent EVM fueled by BNB that adds a PoSA block roughly every three seconds, which makes height-by-height retrieval the natural way to walk the chain in order. Direct the request to https://bsc.therpc.io/YOUR_API_KEY (chain ID 56). Back comes that block (header, gas figures, transaction list), or null when the height has not yet been produced.
Use cases
- Step a BSC indexer forward one height at a time, ingesting every block in sequence.
- Grab the
latestblock to feed a real-time monitoring or analytics dashboard. - Query the
finalizedtag to anchor work that must survive any reorg under PoSA finality. - Read a block hash-only first to list its transaction hashes, then batch their receipts in a follow-up.
Parameters
| # | Name | Type | Required | Description |
|---|---|---|---|---|
| 1 | blockTag | string | Yes | The block to retrieve. |
| 2 | includeTransactions | boolean | Yes | When true, transactions[] contains full transaction objects. When false, only hashes. |
Response
| Type | Description |
|---|---|
| object | null | Same block object as eth_getBlockByHash. Returns null if the block does not exist. |
Example request
Try it live in the BNB Smart Chain playground.
Errors & troubleshooting
| Code | Message | Cause |
|---|---|---|
-32602 | Invalid params | Block number is malformed or block tag is unrecognised. |
Common pitfalls
- Send
includeTransactionsas a genuine boolean; the quoted string"true"is invalid and the node will reject it. - When you actually need every receipt in the block, one
eth_getBlockReceiptscall beats firing N separateeth_getTransactionReceiptrequests. - With full transactions enabled, a heavily loaded BSC block can balloon to 1-2 MB, so size your buffers and timeouts to match.
Supported networks
- Mainnet — Chain ID: 56
- Testnet — Chain ID: 97
See also
Parameters
hex block number or "latest"/"earliest"/"pending"/"safe"/"finalized"
true = full tx objects, false = tx hashes only