BNB Smart Chain
eth_syncing
BNB Smart Chain mints a block roughly every three seconds under Proof-of-Staked-Authority consensus, settling BNB transfers and BEP-20 token activity. A node has to keep pace with that head or it falls behind. eth_syncing tells you which side of the line a given node sits on. Point your client at https://bsc.therpc.io/YOUR_API_KEY against chain ID 56 and the call comes back in one of two shapes. A fully caught-up node answers with a flat false. A node still replaying history answers with a progress object that carries startingBlock, currentBlock, and highestBlock.
Use cases
- Confirm a freshly bootstrapped BSC archive or full node has finished importing before you route production traffic to it.
- Render a sync-progress percentage in a node-monitoring dashboard by dividing
currentBlockagainsthighestBlock. - Gate application startup so a service refuses to serve requests until the underlying node reports
false. - Diagnose a stalled or lagging validator-tracking node by polling
currentBlockover successive three-second intervals and watching whether it advances.
Parameters
This method takes no parameters. Pass an empty array [].
Response
| Type | Description |
|---|---|
| boolean | object | false when the node is fully synced. When syncing, returns an object with at minimum: startingBlock (hex), currentBlock (hex), highestBlock (hex). Additional fields vary by client (e.g. Geth includes snap-sync progress counters; Erigon includes syncStage/syncProgress). |
Example request
Try it live in the BNB Smart Chain playground.
Errors & troubleshooting
| Code | Message | Cause |
|---|---|---|
-32603 | Internal error | Node cannot determine sync state (e.g. no peers connected). |
Common pitfalls
- Certain clients briefly report
falseduring specific sync phases even before they are truly caught up, so never treat a singlefalseas proof the node holds the latest BNB Smart Chain head. - Because BSC folds validation and ordering into one PoSA execution layer, this call describes execution-layer import only; it does not surface any separate beacon or attestation status.
- The progress object's extra fields are geth-family client specific, so code reading anything beyond the three guaranteed keys must tolerate missing entries without throwing.
Supported networks
- Mainnet — Chain ID: 56
- Testnet — Chain ID: 97