Skip to content

BNB Smart Chain method

eth_getBlockByNumber

Returns a block by number, with either full transactions or just their hashes.

moderateModerate: reads state or executes code, but over a bounded range.Primary specification (opens in a new tab)

How each provider handles it

5 providers

Provider support for eth_getBlockByNumber on BSC
ProviderStatusSuccessMedian
BNB ChainSupported100.0%19 ms
PublicNodeSupported99.9%23 ms
Blast APISupported99.3%106 ms
NodeRealSupported100.0%20 ms
1RPConerpcRate limited7.5%1767 ms

Success excludes calls the provider does not implement — an optional method a provider declines to offer is a capability fact, not a failure, and is never scored as one.

Over time

Median latency per day. Gaps are periods with no measurement, drawn as gaps rather than joined across — a line through missing data invents a measurement that was never taken.

Logarithmic scale — each gridline is ten times the one below it. Click a provider in the legend to hide it.

When it degraded

A degradation is a bucket where a provider fell away from ITS OWN median for this method over the window, not from the cohort's. A provider that is consistently slower than its peers is not degraded — it is slower, which the ranking already says. Buckets with fewer than 20 samples are skipped, because a claim about a provider cannot rest on a handful of calls, and adjacent bad buckets are merged so one outage reads as one incident.

1RPC

  • success fell to 1.2% from a typical 7.5%

    availability · 2026-09-09 00:00Z

  • median rose to 4478ms from a typical 2074ms

    latency · 2026-09-10 00:00Z

  • median rose to 4532ms from a typical 2074ms

    latency · 2026-09-18 00:00Z

What it does

The block header plus its transaction list. The boolean second parameter decides whether transactions come back as full objects or as hashes — a difference of roughly two orders of magnitude in response size on a busy chain.

Because the response size is so sensitive to that flag and to how full the block is, this method shows bandwidth and serialisation cost more clearly than any other.

Parameters

blockQUANTITY | TAGrequired
Block number in hex, or latest, earliest, pending, safe, finalized.
fullTransactionsBooleanrequired
true for full transaction objects, false for hashes only.

Returns

Object — the block, or null if it does not exist.

Try it

Runnable as written, against a keyless public endpoint. Nothing here needs an API key.

Request

curl -s https://ethereum-rpc.publicnode.com \
  -H 'content-type: application/json' \
  -d '{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["latest",false],"id":1}'

As JSON-RPC

{
  "jsonrpc": "2.0",
  "method": "eth_getBlockByNumber",
  "params": ["latest", false],
  "id": 1
}

Response

{
  "id": 1,
  "jsonrpc": "2.0",
  "result": {
    "number": "0x14a2f3b",
    "hash": "0x...",
    "parentHash": "0x...",
    "timestamp": "0x68a1c2f0",
    "gasLimit": "0x2255100",
    "gasUsed": "0x11e6a2c",
    "baseFeePerGas": "0x3fa63a3f",
    "transactions": ["0x...", "0x..."]
  }
}

Things that bite

  • null for a block that does not exist yet is a valid answer, not an error. Callers that treat it as one break every time they race the head.
  • pending is not a block that exists on any chain — it is the node's own proposed next block, so two providers will legitimately disagree about it.

Why it is measured

Response size varies far more between providers than the specification suggests it should, and that is itself informative: a 36 KB answer and a 75-byte error to the same request are both HTTP 200.

Called every 60 seconds per endpoint, with jitter so the fleet does not hit a provider in lockstep.

30d window · generated 2026-10-08 17:51:58 UTC · 5 providers