Skip to content

Benchmarks

Provider incidents

An availability percentage has no shape. A provider that failed for twenty minutes and one that failed a request an hour all day can end the window with the same figure — this is the difference between them: when it started, how long it lasted, and which call it affected.

What happened

Subscribe

Runs where a provider departed from its own normal behaviour. A provider that always fails a given call is not having an incident when it fails it today — those are below, counted once each rather than repeated down this list.

10 incidents

Provider incidents, newest first
StartedWhatProviderCallLasted
2026-10-08 11:49ThrottledBlast APIeth_getBlockByNumber12m
2026-10-08 10:10ThrottledBlast APIeth_blockNumber6m
2026-10-08 08:56ThrottledBlast APIeth_blockNumber3m
2026-10-08 00:28ThrottledCloudflareeth_estimateGas10m
2026-10-08 00:25ThrottledCloudflareeth_syncing15m
2026-10-07 23:36ThrottledCloudflareeth_estimateGas26m
2026-10-07 23:32ThrottledCloudflareeth_chainId32m
2026-10-07 22:25ThrottledCloudflareeth_syncing45m
2026-10-07 22:02ThrottledCloudflareeth_estimateGas79m
2026-10-07 21:55ThrottledCloudflareeth_chainId17m
Take it awayCSV— provider incidentsJSON— provider incidentsevery incident in this window, not only the filtered view

Persistent conditions

the same across the whole window

Calls a provider fails, or refuses, at about the same rate every day. Not events — the availability figure already carries them — but the thing most worth knowing before choosing a provider, because none of it will improve tomorrow.

30 conditions

Calls that consistently fail or are consistently refused
ProviderCallConditionSucceedsTime affected
Cloudflareeth_blockNumberOutage0.0%24.0h
Cloudflareeth_getBlockByNumberOutage0.0%24.0h
Cloudflareeth_blockNumberOutage0.0%24.0h
Cloudflareeth_blockNumberOutage0.0%24.0h
Cloudflareeth_callOutage0.0%24.0h
Cloudflareeth_gasPriceOutage0.0%24.0h
Cloudflareeth_getBlockByNumberOutage0.0%24.0h
Cloudflareeth_callOutage0.0%24.0h
Cloudflareeth_callOutage0.0%24.0h
Cloudflareeth_feeHistoryOutage0.0%24.0h
Cloudflareeth_gasPriceOutage0.0%24.0h
Cloudflareeth_getBalanceOutage0.0%24.0h
Cloudflareeth_callOutage0.0%23.9h
Cloudflareeth_getBalanceOutage0.0%23.9h
Cloudflareeth_feeHistoryOutage0.0%23.9h
Cloudflareeth_getTransactionCountOutage0.0%23.9h
Cloudflareeth_getTransactionCountOutage0.0%23.9h
Cloudflareeth_feeHistoryOutage0.0%23.9h
Cloudflareeth_getTransactionCountOutage0.0%23.9h
Cloudflareeth_blockNumberOutage0.0%23.8h
Cloudflareeth_feeHistoryOutage0.0%23.8h
Cloudflareeth_gasPriceOutage0.0%23.8h
Cloudflareeth_getBlockByNumberOutage0.0%23.7h
Cloudflareeth_getBalanceOutage0.0%23.6h
BNB Chaineth_getLogsThrottled—12.9h
BNB Chaineth_getLogsThrottled—12.8h
BNB Chaineth_getLogsThrottled—9.0h
BNB Chaineth_getLogsThrottled—8.6h
Cloudflareeth_gasPriceOutage0.0%6.3h
Cloudflareeth_maxPriorityFeePerGasThrottled—25m

What got slower, and what got faster

against each provider’s own past

The last 24 hours against the 7 days before, per call. Compared against itself rather than against the field: the ranking already says who is slower than whom, and a provider that has always been the slowest is not regressing — it is slow.

1–25 of 41 changes

Per-method latency changes over the last 24 hours against the 7 days before
ChangeProviderCallWasNow
-65%PublicNodeSolanagetBlock290 ms100 ms
+45%PublicNodeEthereumeth_getLogs322 ms468 ms
+50%MerkleEthereumeth_chainId146 ms220 ms
+31%MerkleEthereumeth_getBalance166 ms218 ms
-52%PublicNodeSolanagetTransactionavailability moved too (76% → 71%)131 ms63 ms
+29%1RPCBSCeth_estimateGas6.68 s8.62 s
-39%1RPCBSCeth_getTransactionCount7.12 s4.35 s
-20%1RPCBSCeth_feeHistory8.18 s6.52 s
+28%1RPCBSCeth_getTransactionReceipt7.27 s9.29 s
-22%1RPCEthereumeth_call8.59 s6.70 s
-34%1RPCBSCeth_call8.64 s5.70 s
-31%1RPCEthereumeth_gasPrice4.41 s3.03 s
+30%dRPCEthereumeth_feeHistory146 ms189 ms
+821%PublicNodeBSCeth_getTransactionReceipt79 ms729 ms
-42%MEV BlockerEthereumeth_getTransactionReceipt211 ms123 ms
+44%PublicNodeEthereumeth_getTransactionReceipt45 ms64 ms
+41%PublicNodeBSCeth_syncing40 ms56 ms
+26%PublicNodeEthereumeth_feeHistory40 ms51 ms
+25%dRPCEthereumeth_syncing48 ms60 ms
-76%PublicNodeSolanagetMultipleAccounts235 ms57 ms
+33%PublicNodeBSCeth_estimateGas41 ms55 ms
+56%dRPCEthereumeth_getTransactionCount145 ms226 ms
+39%PublicNodeBSCeth_maxPriorityFeePerGas40 ms55 ms
+41%PublicNodeBSCeth_getTransactionCount44 ms62 ms
+35%PublicNodeEthereumeth_estimateGas40 ms54 ms
Take it awayCSV— latency changesJSON— latency changesevery change in this window, not only the filtered view

What counts, and what does not

Our own failures are not theirs

An agent that could not reach the network, or our own software failing, is our outage. Both are removed before anything is judged — the same exclusion the score makes.

Rate limiting is not failure

A provider enforcing its published limits is behaving correctly, so it has its own colour here. A sustained refusal is still reported, as throttling rather than as an outage.

Incidents are per method, not per provider

Rolling one failing call up to the provider manufactures outages: a single method erroring a fifth of the time drags a whole-provider success rate below any sensible threshold permanently.

A single bad minute is not an incident

One failed request is a blip. A run has to last long enough that somebody could have noticed — at least 3 minutes.

Durations are floors, never estimates

Only minutes with measurement behind them are counted, and a gap longer than the tolerance ends an incident rather than being spanned. An incident is never reported as longer than what was observed inside it.

A chronic defect is not an event

Judged against the series’ own rate across the whole window — the same principle the ranking applies to latency, where a provider consistently slower than its peers is slower rather than degraded.

Derived from per-minute measurement aggregates rather than stored, so this feed cannot describe something the observations do not. Our own failures — an agent that could not reach the network, our own software failing — are excluded: they are our outage, not the provider's. Rate limiting is reported as throttling rather than as failure, because a provider enforcing its published limits is behaving correctly. A single bad minute is not an incident, and an incident is measured per method: rolling one failing call up to the provider would report an outage for a provider that was serving everything else perfectly. An incident is never reported as longer than the minutes actually measured within it, so durations are floors rather than estimates. A series that fails at about the same rate all week is marked chronic and left out by default — it is broken rather than having an outage, which the availability figure already says, and treating it as news would bury the runs that are. This response hit the 20000-minute read ceiling and may be incomplete.