BNB Smart Chain method
eth_feeHistory
Returns historical base fees and priority-fee percentiles over a block range.
How each provider handles it
| Provider | Status | Success | Median |
|---|---|---|---|
| BNB Chain | Supported | 100.0% | 19 ms |
| NodeReal | Supported | 100.0% | 20 ms |
| PublicNode | Supported | 100.0% | 26 ms |
| Blast API | Supported | 99.7% | 106 ms |
| 1RPConerpc | Rate limited | 3.0% | 1294 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 hour. 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 0.0% from a typical 13.2%
availability · 2026-10-07 19:00Z → 2026-10-07 23:00Z
success fell to 0.0% from a typical 13.2%
availability · 2026-10-08 01:00Z → 2026-10-08 14:00Z
success fell to 0.0% from a typical 13.2%
availability · 2026-10-08 16:00Z → 2026-10-08 17:00Z
What it does
The EIP-1559 fee oracle. It returns the base fee for each block in the range — plus one extra for the next block — the fraction of gas each block used, and, if percentiles are requested, the effective priority fee at each of them.
This is what a wallet actually uses to suggest a fee. `gasUsedRatio` shows whether blocks are full, which is what drives the base fee up or down.
Parameters
blockCountQUANTITYrequired- How many blocks to return, in hex. Must be greater than zero.
newestBlockQUANTITY | TAGrequired- The newest block in the range, or
latest. rewardPercentilesArray of numbersoptional- Percentiles between 0 and 100. Omit and
rewardis not returned at all.
Returns
Object with oldestBlock, baseFeePerGas, gasUsedRatio, and reward when percentiles were requested.
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_feeHistory","params":["0x5","latest",[20,50,80]],"id":1}'As JSON-RPC
{
"jsonrpc": "2.0",
"method": "eth_feeHistory",
"params": ["0x5", "latest", [20, 50, 80]],
"id": 1
}Response
{
"id": 1,
"jsonrpc": "2.0",
"result": {
"oldestBlock": "0x10b52f",
"baseFeePerGas": ["0x3fa63a3f", "0x37f999ee", "0x3e36f20a"],
"gasUsedRatio": [0.0177, 0.9459, 0.6535],
"reward": [["0x3b9aca00", "0x59682f00"], ["0x3a13012", "0x3a13012"]]
}
}Things that bite
baseFeePerGashas one more entry thanblockCount: the last is the base fee for the block after the newest, which is the one a caller is about to pay.- Since Dencun, nodes may also return
baseFeePerBlobGasandblobGasUsedRatio. Their absence is not an error.
Why it is measured
It reads a bounded range of recent blocks, so it costs meaningfully more than a single header fetch without being as unbounded as a log query.
Called every 300 seconds per endpoint, with jitter so the fleet does not hit a provider in lockstep.
24h window · generated 2026-10-08 18:13:21 UTC · 5 providers