Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
251 changes: 251 additions & 0 deletions benchmarks/arbitrum-rpc.yml

Large diffs are not rendered by default.

204 changes: 204 additions & 0 deletions benchmarks/avalanche-rpc.yml

Large diffs are not rendered by default.

204 changes: 204 additions & 0 deletions benchmarks/base-rpc.yml

Large diffs are not rendered by default.

181 changes: 181 additions & 0 deletions benchmarks/bnb-rpc.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,181 @@
# OpenChainBench. Bench № 049

slug: bnb-rpc
number: "049"
title: Fastest free BNB Chain RPC, live no-key endpoint latency
seo_title: "Fastest free BNB Chain RPC 2026"
seo_description: "{{best_name}} leads free BNB Chain RPC at {{best_p50}} (eth_blockNumber p50, 24h). 5 no-key providers measured every 15s from 3 regions."
subtitle: HTTP round-trip latency for eth_blockNumber against every free, no-key public BNB Chain RPC endpoint, audited every 15 seconds from 3 regions.

category: RPCs
status: live
metric: RPC latency
unit: ms
higher_is_better: false

seo_intro: |
BNB Chain is the incumbent's chain: Binance's `bsc-dataseed1.binance.org` has been the copy-paste default since 2020, and from some regions it is still the single fastest RPC response we measure anywhere in the cluster. The catch is that it serves exactly one chain, while PublicNode, dRPC, Nodies and Merkle bring multi-chain coverage with increasingly competitive latency from EU origins. 5 providers, identical probes, three regions.

abstract: |
Per-chain member of the RPC latency cluster. We measure the round-trip latency of a single, identical RPC call (`eth_blockNumber`) against every no-key public BNB Chain endpoint that sustains continuous probing, 5 providers, every 15 seconds, from us-east, eu-west and Singapore. The harness also classifies every response (ok / http_err / jsonrpc_err / stale / timeout) and audits archive depth every 5 minutes, so the leaderboard rewards sustained, honest availability rather than a fast error message. The cross-chain view lives on the parent rpc-capabilities benchmark; this page is the BNB Chain-scoped answer with per-region breakdowns as a first-class dimension.

methodology:
- "Cadence: every 15 seconds per provider, from each of 3 probe regions (us-east Virginia, eu-west Amsterdam, sgp Singapore). Headline p50/p90/p99 aggregate across all 3 regions via Prometheus `avg(quantile_over_time(...))`; per-region breakdowns are first-class on this page via the region tabs."
- "Payload: `{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"eth_blockNumber\",\"params\":[]}`. Plain HTTP POST, identical for every endpoint, no API key in any request."
- "Latency: client-side round-trip delta in milliseconds, exposed as both a gauge and a histogram (buckets 50 ms → 10 s), so percentiles are computed via Prometheus `quantile_over_time` over the last 24 hours."
- "Call-result classification: `ok` (HTTP 200 + non-empty result), `http_err`, `jsonrpc_err` (HTTP 200 carrying an error body), `stale` (more than 20 blocks behind the cross-provider tip), `timeout`. Latency without reliability is a misleading ranking signal."
- "Archive depth: every 5 minutes we issue `eth_getBalance` at (head − depth) for depths from Geth's default pruned cap up to 5M blocks, exposing which free endpoints actually serve historical state."
- "This page is part of the per-chain RPC cluster derived from the cross-chain [rpc-capabilities](https://openchainbench.com/benchmarks/rpc-capabilities) benchmark; the identical harness, methodology and exclusion rules apply on every chain."
- "Chain scope: every query on this page is pinned to chain=\"bnb\". Provider coverage: 5 no-key endpoints (PublicNode, dRPC, Nodies, Merkle, Binance). Exclusions follow the cluster-wide rules documented on the parent benchmark."

findings:
- "{{best_name}} currently leads free BNB Chain RPC at {{best_p50}} (`eth_blockNumber` p50, 24h) across 5 measured providers."
- "Binance's dataseed is a single-chain specialist: blisteringly fast near its home regions (single-digit milliseconds from us-east at times) and 10x slower from Singapore, the widest regional spread in the cluster."
- "{{name:merkle}} qualifies here (BNB is one of its two stable no-key chains) and brings its signature tight distribution to a field otherwise dominated by the dataseed's regional extremes."

faq:
- q: "What is the fastest free BNB Chain RPC right now?"
a: "{{best_name}} currently leads at {{best_p50}} (`eth_blockNumber` p50 over the last 24h), measured against 5 no-key providers probed every 15 seconds from us-east, eu-west and Singapore. The leaderboard re-sorts continuously against fresh Prometheus samples, so the answer on this page is the answer right now, not a quarterly snapshot. Use the region tabs to see the leader from the origin closest to your deployment."
- q: "Which BNB Chain RPCs work without an API key?"
a: "The 5 providers on this page: PublicNode, dRPC, Nodies, Merkle, Binance. Every (provider, chain) pair was live-verified no-key before inclusion, and anything that key-gates, region-blocks or rate-limits below our 15-second cadence is excluded rather than listed with an asterisk."
- q: "Does the fastest BNB Chain RPC change by region?"
a: "Frequently. The headline number averages three probe origins (us-east, eu-west, Singapore), but per-region leaders regularly diverge, a gateway that wins from Virginia can lose from Singapore by multiples. The region tabs at the top of the page re-scope every number on the page to a single origin; pick the one closest to where your requests actually originate."
- q: "How is BNB Chain RPC latency measured here?"
a: "One identical JSON-RPC POST (`eth_blockNumber`) every 15 seconds against each provider from each of 3 regions, with the same plain HTTP client. Wall-clock round-trip is recorded at millisecond precision; p50/p90/p99 are computed via Prometheus `quantile_over_time` over 24 hours. Responses are classified (`ok` / `http_err` / `jsonrpc_err` / `stale` / `timeout`) so an endpoint stuck on an old head or returning errors behind HTTP 200 is never ranked as fastest. The harness is open source and every number on this page is a public Prometheus query you can run yourself."
- q: "Is bsc-dataseed still the best RPC for BNB Chain?"
a: "It depends entirely on where your requests originate. From regions near Binance's infrastructure the dataseed is often the fastest single response in our whole dataset; from Singapore it can be 10x slower than the gateway tier. Check the region tabs above, the cross-region average is meaningless for an endpoint with this much geographic variance."

source: https://github.com/ChainBench/OpenChainBench/tree/main/harnesses/rpc-capabilities

prometheus:
window: 24h
freshness_metric: rpc_latency_milliseconds

# Per-cell (region) ranking matrix for scoped badge claims. Chain is
# fixed for the whole bench, so cells key on region alone.
rank_matrix_query: avg by (provider, region) (ocb:rpc_latency_milliseconds:p50_24h{chain="bnb"})

# Region is the only dimension: chain is baked into every query.
dimensions:
region:
- { value: all, label: All regions }
- { value: us-east, label: US-East }
- { value: eu-west, label: EU-West }
- { value: sgp, label: Singapore }

providers:
- slug: publicnode
name: PublicNode
tag: Allnodes-operated, 70+ chains, archive on most
formula: "50th percentile over 24h of client-side round-trip latency (ms) for a single `eth_blockNumber` POST sent every 15s from 3 regions (us-east + eu-west + sgp) to PublicNode's no-key BNB Chain endpoint."
queries:
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="publicnode", chain="bnb"})
p90: avg(ocb:rpc_latency_milliseconds:p90_24h{provider="publicnode", chain="bnb"})
p99: avg(ocb:rpc_latency_milliseconds:p99_24h{provider="publicnode", chain="bnb"})
mean: avg(ocb:rpc_latency_milliseconds:mean_24h{provider="publicnode", chain="bnb"})
success: sum(ocb:rpc_call:ok_rate_24h{provider="publicnode", chain="bnb"}) / sum(ocb:rpc_call:rate_24h{provider="publicnode", chain="bnb"})
sample_size: sum(ocb:rpc_call:increase_24h{provider="publicnode", chain="bnb"})
series: avg(avg_over_time(rpc_latency_milliseconds{provider="publicnode", chain="bnb"}[1h]))
regions:
- region: us-east
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="publicnode", chain="bnb", region="us-east"})
series: avg_over_time(rpc_latency_milliseconds{provider="publicnode", chain="bnb", region="us-east"}[1h])
- region: eu-west
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="publicnode", chain="bnb", region="eu-west"})
series: avg_over_time(rpc_latency_milliseconds{provider="publicnode", chain="bnb", region="eu-west"}[1h])
- region: ap-southeast
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="publicnode", chain="bnb", region="sgp"})
series: avg_over_time(rpc_latency_milliseconds{provider="publicnode", chain="bnb", region="sgp"}[1h])

- slug: drpc
name: dRPC
tag: Decentralized RPC mesh, consensus-checked
formula: "50th percentile over 24h of client-side round-trip latency (ms) for a single `eth_blockNumber` POST sent every 15s from 3 regions (us-east + eu-west + sgp) to dRPC's no-key BNB Chain endpoint."
queries:
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="drpc", chain="bnb"})
p90: avg(ocb:rpc_latency_milliseconds:p90_24h{provider="drpc", chain="bnb"})
p99: avg(ocb:rpc_latency_milliseconds:p99_24h{provider="drpc", chain="bnb"})
mean: avg(ocb:rpc_latency_milliseconds:mean_24h{provider="drpc", chain="bnb"})
success: sum(ocb:rpc_call:ok_rate_24h{provider="drpc", chain="bnb"}) / sum(ocb:rpc_call:rate_24h{provider="drpc", chain="bnb"})
sample_size: sum(ocb:rpc_call:increase_24h{provider="drpc", chain="bnb"})
series: avg(avg_over_time(rpc_latency_milliseconds{provider="drpc", chain="bnb"}[1h]))
regions:
- region: us-east
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="drpc", chain="bnb", region="us-east"})
series: avg_over_time(rpc_latency_milliseconds{provider="drpc", chain="bnb", region="us-east"}[1h])
- region: eu-west
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="drpc", chain="bnb", region="eu-west"})
series: avg_over_time(rpc_latency_milliseconds{provider="drpc", chain="bnb", region="eu-west"}[1h])
- region: ap-southeast
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="drpc", chain="bnb", region="sgp"})
series: avg_over_time(rpc_latency_milliseconds{provider="drpc", chain="bnb", region="sgp"}[1h])

- slug: nodies
name: Nodies
tag: POKT Network's decentralized public RPC successor, 7+ chains
formula: "50th percentile over 24h of client-side round-trip latency (ms) for a single `eth_blockNumber` POST sent every 15s from 3 regions (us-east + eu-west + sgp) to Nodies's no-key BNB Chain endpoint."
queries:
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="nodies", chain="bnb"})
p90: avg(ocb:rpc_latency_milliseconds:p90_24h{provider="nodies", chain="bnb"})
p99: avg(ocb:rpc_latency_milliseconds:p99_24h{provider="nodies", chain="bnb"})
mean: avg(ocb:rpc_latency_milliseconds:mean_24h{provider="nodies", chain="bnb"})
success: sum(ocb:rpc_call:ok_rate_24h{provider="nodies", chain="bnb"}) / sum(ocb:rpc_call:rate_24h{provider="nodies", chain="bnb"})
sample_size: sum(ocb:rpc_call:increase_24h{provider="nodies", chain="bnb"})
series: avg(avg_over_time(rpc_latency_milliseconds{provider="nodies", chain="bnb"}[1h]))
regions:
- region: us-east
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="nodies", chain="bnb", region="us-east"})
series: avg_over_time(rpc_latency_milliseconds{provider="nodies", chain="bnb", region="us-east"}[1h])
- region: eu-west
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="nodies", chain="bnb", region="eu-west"})
series: avg_over_time(rpc_latency_milliseconds{provider="nodies", chain="bnb", region="eu-west"}[1h])
- region: ap-southeast
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="nodies", chain="bnb", region="sgp"})
series: avg_over_time(rpc_latency_milliseconds{provider="nodies", chain="bnb", region="sgp"}[1h])

- slug: merkle
name: Merkle
tag: Base + BSC public no-key gateway (Ethereum hit by Cloudflare 20-min lockout, excluded)
formula: "50th percentile over 24h of client-side round-trip latency (ms) for a single `eth_blockNumber` POST sent every 15s from 3 regions (us-east + eu-west + sgp) to Merkle's no-key BNB Chain endpoint."
queries:
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="merkle", chain="bnb"})
p90: avg(ocb:rpc_latency_milliseconds:p90_24h{provider="merkle", chain="bnb"})
p99: avg(ocb:rpc_latency_milliseconds:p99_24h{provider="merkle", chain="bnb"})
mean: avg(ocb:rpc_latency_milliseconds:mean_24h{provider="merkle", chain="bnb"})
success: sum(ocb:rpc_call:ok_rate_24h{provider="merkle", chain="bnb"}) / sum(ocb:rpc_call:rate_24h{provider="merkle", chain="bnb"})
sample_size: sum(ocb:rpc_call:increase_24h{provider="merkle", chain="bnb"})
series: avg(avg_over_time(rpc_latency_milliseconds{provider="merkle", chain="bnb"}[1h]))
regions:
- region: us-east
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="merkle", chain="bnb", region="us-east"})
series: avg_over_time(rpc_latency_milliseconds{provider="merkle", chain="bnb", region="us-east"}[1h])
- region: eu-west
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="merkle", chain="bnb", region="eu-west"})
series: avg_over_time(rpc_latency_milliseconds{provider="merkle", chain="bnb", region="eu-west"}[1h])
- region: ap-southeast
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="merkle", chain="bnb", region="sgp"})
series: avg_over_time(rpc_latency_milliseconds{provider="merkle", chain="bnb", region="sgp"}[1h])

- slug: binance
name: Binance
tag: BNB Chain dataseed RPC, Binance-operated
formula: "50th percentile over 24h of client-side round-trip latency (ms) for a single `eth_blockNumber` POST sent every 15s from 3 regions (us-east + eu-west + sgp) to Binance's no-key BNB Chain endpoint."
queries:
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="binance", chain="bnb"})
p90: avg(ocb:rpc_latency_milliseconds:p90_24h{provider="binance", chain="bnb"})
p99: avg(ocb:rpc_latency_milliseconds:p99_24h{provider="binance", chain="bnb"})
mean: avg(ocb:rpc_latency_milliseconds:mean_24h{provider="binance", chain="bnb"})
success: sum(ocb:rpc_call:ok_rate_24h{provider="binance", chain="bnb"}) / sum(ocb:rpc_call:rate_24h{provider="binance", chain="bnb"})
sample_size: sum(ocb:rpc_call:increase_24h{provider="binance", chain="bnb"})
series: avg(avg_over_time(rpc_latency_milliseconds{provider="binance", chain="bnb"}[1h]))
regions:
- region: us-east
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="binance", chain="bnb", region="us-east"})
series: avg_over_time(rpc_latency_milliseconds{provider="binance", chain="bnb", region="us-east"}[1h])
- region: eu-west
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="binance", chain="bnb", region="eu-west"})
series: avg_over_time(rpc_latency_milliseconds{provider="binance", chain="bnb", region="eu-west"}[1h])
- region: ap-southeast
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="binance", chain="bnb", region="sgp"})
series: avg_over_time(rpc_latency_milliseconds{provider="binance", chain="bnb", region="sgp"}[1h])

Loading
Loading