BNB Smart Chain

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 currentBlock against highestBlock.
  • 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 currentBlock over successive three-second intervals and watching whether it advances.

Parameters

This method takes no parameters. Pass an empty array [].

Response

TypeDescription
boolean | objectfalse 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

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

Try it live in the BNB Smart Chain playground.

Errors & troubleshooting

CodeMessageCause
-32603Internal errorNode cannot determine sync state (e.g. no peers connected).

Common pitfalls

  • Certain clients briefly report false during specific sync phases even before they are truly caught up, so never treat a single false as 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

See also

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

Ready to call this in production?

Free tier covers personal projects. Pay-as-you-go scales without a card.