diff --git a/benchmarks/astar-rpc.yml b/benchmarks/astar-rpc.yml index 6f1a95f6..495c8ea5 100644 --- a/benchmarks/astar-rpc.yml +++ b/benchmarks/astar-rpc.yml @@ -4,7 +4,7 @@ slug: astar-rpc number: "154" title: Fastest free Astar Network RPC, live no-key endpoint latency seo_title: "Fastest free Astar Network RPC 2026" -seo_description: "{{best_name}} leads free Astar Network RPC at {{best_p50}} (eth_getBlockByNumber p50, 24h). 4 no-key providers measured every 60s from 3 regions." +seo_description: "{{best_name}} leads free Astar Network RPC at {{best_p50}} (eth_getBlockByNumber p50, 24h). 2 no-key providers measured every 60s from 3 regions." subtitle: HTTP round-trip latency for eth_getBlockByNumber against every free, no-key public Astar Network RPC endpoint, audited every 60 seconds from 3 regions. category: RPCs @@ -14,13 +14,13 @@ unit: ms higher_is_better: false seo_intro: | - Astar Network (chain 592) is Polkadot's flagship EVM and WebAssembly parachain, ASTR gas token, supporting both Solidity and ink! smart contracts. Developed by Startale (formerly Stake Technologies) and chosen by Sony for Soneium infrastructure, it exposes a standard EVM endpoint alongside Substrate RPC. The Foundation's evm.astar.network, BlastAPI, and OnFinality provide keyless access probed every 60 seconds from three regions. + Astar Network (chain 592) is Polkadot's flagship EVM and WebAssembly parachain, ASTR gas token, supporting both Solidity and ink! smart contracts. Developed by Startale (formerly Stake Technologies) and chosen by Sony for Soneium infrastructure, it exposes a standard EVM endpoint alongside Substrate RPC. OnFinality and 1RPC provide keyless access probed every 60 seconds from three regions. PublicNode returned 404 and BlastAPI's DNS is dead. abstract: | Per-chain member of the RPC latency cluster, extended to Astar Network. We measure the round-trip latency of a single, identical RPC call (`eth_getBlockByNumber`) against every no-key public Astar Network endpoint - that sustains continuous probing, 4 providers at launch, + that sustains continuous probing, 2 providers, every 60 seconds, from us-east, eu-west and Singapore. The harness classifies every response (ok / http_err / jsonrpc_err / stale / timeout) so the leaderboard rewards sustained availability rather than @@ -34,16 +34,16 @@ methodology: - "Latency: client-side round-trip delta in milliseconds, exposed as both a gauge and a histogram (buckets 50 ms to 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`." - "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, cadence and exclusion rules apply on every chain." - - "Chain scope: every query on this page is pinned to `chain=\"astar\"`. Provider coverage at launch: 4 no-key endpoints (Astar Foundation, BlastAPI, OnFinality, 1RPC)." + - "Chain scope: every query on this page is pinned to `chain=\"astar\"`. Provider coverage: 2 no-key endpoints (OnFinality, 1RPC). PublicNode returned 404; BlastAPI DNS is dead." findings: - - "{{best_name}} currently leads free Astar Network RPC at {{best_p50}} (`eth_getBlockByNumber` p50, 24h) across 4 measured providers." + - "{{best_name}} currently leads free Astar Network RPC at {{best_p50}} (`eth_getBlockByNumber` p50, 24h) across 2 measured providers." faq: - q: "What is the fastest free Astar Network RPC right now?" - a: "{{best_name}} currently leads at {{best_p50}} (`eth_getBlockByNumber` p50 over the last 24h), measured against 4 no-key providers probed every 60 seconds from us-east, eu-west and Singapore. The leaderboard re-sorts continuously against fresh Prometheus samples." + a: "{{best_name}} currently leads at {{best_p50}} (`eth_getBlockByNumber` p50 over the last 24h), measured against 2 no-key providers probed every 60 seconds from us-east, eu-west and Singapore. The leaderboard re-sorts continuously against fresh Prometheus samples." - q: "Which Astar Network RPCs work without an API key?" - a: "4 endpoints sustain continuous keyless probing at launch: Astar Foundation, BlastAPI, OnFinality, 1RPC. Every listed endpoint was live-verified before inclusion." + a: "2 endpoints sustain continuous keyless probing: OnFinality and 1RPC. PublicNode returned 404 and BlastAPI's DNS is dead; both were removed." - q: "Does the fastest Astar Network RPC change by region?" a: "Often. The region tabs at the top of the page re-scope every number to a single origin; pick the one closest to where your requests originate." - q: "How is Astar Network RPC latency measured here?" @@ -65,52 +65,6 @@ dimensions: - { value: sgp, label: Singapore } providers: - - slug: astar-official - name: Astar Foundation - tag: Astar Foundation's official EVM RPC - formula: "50th percentile over 24h of client-side round-trip latency (ms) for a single `eth_getBlockByNumber` POST sent every 60s from 3 regions (us-east + eu-west + sgp) to Astar Foundation's no-key Astar Network endpoint." - queries: - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="astar-official", chain="astar"}) - p90: avg(ocb:rpc_latency_milliseconds:p90_24h{provider="astar-official", chain="astar"}) - p99: avg(ocb:rpc_latency_milliseconds:p99_24h{provider="astar-official", chain="astar"}) - mean: avg(ocb:rpc_latency_milliseconds:mean_24h{provider="astar-official", chain="astar"}) - success: sum(ocb:rpc_call:ok_rate_24h{provider="astar-official", chain="astar"}) / sum(ocb:rpc_call:rate_24h{provider="astar-official", chain="astar"}) - sample_size: sum(ocb:rpc_call:increase_24h{provider="astar-official", chain="astar"}) - series: avg(avg_over_time(rpc_latency_milliseconds{provider="astar-official", chain="astar"}[1h])) - regions: - - region: us-east - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="astar-official", chain="astar", region="us-east"}) - series: avg_over_time(rpc_latency_milliseconds{provider="astar-official", chain="astar", region="us-east"}[1h]) - - region: eu-west - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="astar-official", chain="astar", region="eu-west"}) - series: avg_over_time(rpc_latency_milliseconds{provider="astar-official", chain="astar", region="eu-west"}[1h]) - - region: ap-southeast - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="astar-official", chain="astar", region="sgp"}) - series: avg_over_time(rpc_latency_milliseconds{provider="astar-official", chain="astar", region="sgp"}[1h]) - - - slug: blastapi - name: BlastAPI - tag: BlastAPI public endpoint - formula: "50th percentile over 24h of client-side round-trip latency (ms) for a single `eth_getBlockByNumber` POST sent every 60s from 3 regions (us-east + eu-west + sgp) to BlastAPI's no-key Astar Network endpoint." - queries: - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="blastapi", chain="astar"}) - p90: avg(ocb:rpc_latency_milliseconds:p90_24h{provider="blastapi", chain="astar"}) - p99: avg(ocb:rpc_latency_milliseconds:p99_24h{provider="blastapi", chain="astar"}) - mean: avg(ocb:rpc_latency_milliseconds:mean_24h{provider="blastapi", chain="astar"}) - success: sum(ocb:rpc_call:ok_rate_24h{provider="blastapi", chain="astar"}) / sum(ocb:rpc_call:rate_24h{provider="blastapi", chain="astar"}) - sample_size: sum(ocb:rpc_call:increase_24h{provider="blastapi", chain="astar"}) - series: avg(avg_over_time(rpc_latency_milliseconds{provider="blastapi", chain="astar"}[1h])) - regions: - - region: us-east - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="blastapi", chain="astar", region="us-east"}) - series: avg_over_time(rpc_latency_milliseconds{provider="blastapi", chain="astar", region="us-east"}[1h]) - - region: eu-west - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="blastapi", chain="astar", region="eu-west"}) - series: avg_over_time(rpc_latency_milliseconds{provider="blastapi", chain="astar", region="eu-west"}[1h]) - - region: ap-southeast - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="blastapi", chain="astar", region="sgp"}) - series: avg_over_time(rpc_latency_milliseconds{provider="blastapi", chain="astar", region="sgp"}[1h]) - - slug: onfinality name: OnFinality tag: OnFinality shared node service diff --git a/benchmarks/aurora-rpc.yml b/benchmarks/aurora-rpc.yml index e9098f69..e40060b5 100644 --- a/benchmarks/aurora-rpc.yml +++ b/benchmarks/aurora-rpc.yml @@ -4,7 +4,7 @@ slug: aurora-rpc number: "147" title: Fastest free Aurora RPC, live no-key endpoint latency seo_title: "Fastest free Aurora RPC 2026" -seo_description: "{{best_name}} leads free Aurora RPC at {{best_p50}} (eth_getBlockByNumber p50, 24h). 3 no-key providers measured every 60s from 3 regions." +seo_description: "{{best_name}} leads free Aurora RPC at {{best_p50}} (eth_getBlockByNumber p50, 24h). 1 no-key provider measured every 60s from 3 regions." subtitle: HTTP round-trip latency for eth_getBlockByNumber against every free, no-key public Aurora RPC endpoint, audited every 60 seconds from 3 regions. category: RPCs @@ -14,13 +14,13 @@ unit: ms higher_is_better: false seo_intro: | - Aurora is the EVM runtime on NEAR Protocol (chain 1313161554), exposing full Ethereum tooling to NEAR's sharded execution environment. The official endpoint (`mainnet.aurora.dev`) is operated by Aurora Labs with dRPC and Ankr providing additional keyless alternatives. Every provider is live-verified before inclusion. + Aurora is the EVM runtime on NEAR Protocol (chain 1313161554), exposing full Ethereum tooling to NEAR's sharded execution environment. The official endpoint (`mainnet.aurora.dev`) is operated by Aurora Labs and is the only keyless endpoint sustaining continuous probing. Ankr and dRPC require an API key for Aurora and have been removed. abstract: | Per-chain member of the RPC latency cluster, extended to Aurora. We measure the round-trip latency of a single, identical RPC call - (`eth_getBlockByNumber`) against every no-key public Aurora endpoint - that sustains continuous probing, 3 providers at launch, + (`eth_getBlockByNumber`) against the no-key public Aurora endpoint + that sustains continuous probing (1 provider: Aurora Labs official), every 60 seconds, from us-east, eu-west and Singapore. The harness classifies every response (ok / http_err / jsonrpc_err / stale / timeout) so the leaderboard rewards sustained availability rather than @@ -34,16 +34,16 @@ methodology: - "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`." - "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, cadence and exclusion rules apply on every chain." - - "Chain scope: every query on this page is pinned to `chain=\"aurora\"`. Provider coverage at launch: 3 no-key endpoints (Aurora Official, dRPC, Ankr)." + - "Chain scope: every query on this page is pinned to `chain=\"aurora\"`. Provider coverage: 1 no-key endpoint (Aurora Official). Ankr and dRPC require an API key for Aurora and have been removed." findings: - - "{{best_name}} currently leads free Aurora RPC at {{best_p50}} (`eth_getBlockByNumber` p50, 24h) across 3 measured providers." + - "{{best_name}} currently leads free Aurora RPC at {{best_p50}} (`eth_getBlockByNumber` p50, 24h) — 1 measured provider." faq: - q: "What is the fastest free Aurora RPC right now?" - a: "{{best_name}} currently leads at {{best_p50}} (`eth_getBlockByNumber` p50 over the last 24h), measured against 3 no-key providers probed every 60 seconds from us-east, eu-west and Singapore. The leaderboard re-sorts continuously against fresh Prometheus samples." + a: "{{best_name}} currently leads at {{best_p50}} (`eth_getBlockByNumber` p50 over the last 24h), measured against 1 no-key provider probed every 60 seconds from us-east, eu-west and Singapore. The leaderboard re-sorts continuously against fresh Prometheus samples." - q: "Which Aurora RPCs work without an API key?" - a: "3 endpoints sustain continuous keyless probing at launch: Aurora Official, dRPC, Ankr. Every listed endpoint was live-verified before inclusion." + a: "1 endpoint sustains continuous keyless probing: Aurora Official (mainnet.aurora.dev). Ankr returns 403 (API key required) and dRPC returns 403 (API key required) for Aurora." - q: "Does the fastest Aurora RPC change by region?" a: "Often. The region tabs at the top of the page re-scope every number to a single origin; pick the one closest to where your requests originate." - q: "How is Aurora RPC latency measured here?" @@ -88,48 +88,3 @@ providers: p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="aurora-official", chain="aurora", region="sgp"}) series: avg_over_time(rpc_latency_milliseconds{provider="aurora-official", chain="aurora", 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_getBlockByNumber` POST sent every 60s from 3 regions (us-east + eu-west + sgp) to dRPC's no-key Aurora endpoint." - queries: - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="drpc", chain="aurora"}) - p90: avg(ocb:rpc_latency_milliseconds:p90_24h{provider="drpc", chain="aurora"}) - p99: avg(ocb:rpc_latency_milliseconds:p99_24h{provider="drpc", chain="aurora"}) - mean: avg(ocb:rpc_latency_milliseconds:mean_24h{provider="drpc", chain="aurora"}) - success: sum(ocb:rpc_call:ok_rate_24h{provider="drpc", chain="aurora"}) / sum(ocb:rpc_call:rate_24h{provider="drpc", chain="aurora"}) - sample_size: sum(ocb:rpc_call:increase_24h{provider="drpc", chain="aurora"}) - series: avg(avg_over_time(rpc_latency_milliseconds{provider="drpc", chain="aurora"}[1h])) - regions: - - region: us-east - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="drpc", chain="aurora", region="us-east"}) - series: avg_over_time(rpc_latency_milliseconds{provider="drpc", chain="aurora", region="us-east"}[1h]) - - region: eu-west - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="drpc", chain="aurora", region="eu-west"}) - series: avg_over_time(rpc_latency_milliseconds{provider="drpc", chain="aurora", region="eu-west"}[1h]) - - region: ap-southeast - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="drpc", chain="aurora", region="sgp"}) - series: avg_over_time(rpc_latency_milliseconds{provider="drpc", chain="aurora", region="sgp"}[1h]) - - - slug: ankr - name: Ankr - tag: Multi-cloud RPC network, 40+ chains, keyless tier - formula: "50th percentile over 24h of client-side round-trip latency (ms) for a single `eth_getBlockByNumber` POST sent every 60s from 3 regions (us-east + eu-west + sgp) to Ankr's no-key Aurora endpoint." - queries: - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="ankr", chain="aurora"}) - p90: avg(ocb:rpc_latency_milliseconds:p90_24h{provider="ankr", chain="aurora"}) - p99: avg(ocb:rpc_latency_milliseconds:p99_24h{provider="ankr", chain="aurora"}) - mean: avg(ocb:rpc_latency_milliseconds:mean_24h{provider="ankr", chain="aurora"}) - success: sum(ocb:rpc_call:ok_rate_24h{provider="ankr", chain="aurora"}) / sum(ocb:rpc_call:rate_24h{provider="ankr", chain="aurora"}) - sample_size: sum(ocb:rpc_call:increase_24h{provider="ankr", chain="aurora"}) - series: avg(avg_over_time(rpc_latency_milliseconds{provider="ankr", chain="aurora"}[1h])) - regions: - - region: us-east - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="ankr", chain="aurora", region="us-east"}) - series: avg_over_time(rpc_latency_milliseconds{provider="ankr", chain="aurora", region="us-east"}[1h]) - - region: eu-west - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="ankr", chain="aurora", region="eu-west"}) - series: avg_over_time(rpc_latency_milliseconds{provider="ankr", chain="aurora", region="eu-west"}[1h]) - - region: ap-southeast - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="ankr", chain="aurora", region="sgp"}) - series: avg_over_time(rpc_latency_milliseconds{provider="ankr", chain="aurora", region="sgp"}[1h]) diff --git a/benchmarks/ethereum-rpc.yml b/benchmarks/ethereum-rpc.yml index 1136e155..ce4e2174 100644 --- a/benchmarks/ethereum-rpc.yml +++ b/benchmarks/ethereum-rpc.yml @@ -4,7 +4,7 @@ slug: ethereum-rpc number: "044" title: Fastest free Ethereum RPC, live no-key endpoint latency seo_title: "Fastest free Ethereum RPC 2026" -seo_description: "{{best_name}} leads free Ethereum RPC at {{best_p50}} (eth_getBlockByNumber p50, 24h). 7 no-key providers measured every 60s from 3 regions." +seo_description: "{{best_name}} leads free Ethereum RPC at {{best_p50}} (eth_getBlockByNumber p50, 24h). 6 no-key providers measured every 60s from 3 regions." subtitle: HTTP round-trip latency for eth_getBlockByNumber against every free, no-key public Ethereum RPC endpoint, audited every 60 seconds from 3 regions. category: RPCs @@ -14,10 +14,10 @@ unit: ms higher_is_better: false seo_intro: | - Ethereum carries the largest free-RPC cohort we measure: 7 no-key public-read providers answering the same `eth_getBlockByNumber` probe every 60 seconds from three regions. This bench is scoped to public, read-optimised gateways only; MEV-protection RPCs (Flashbots, MEV Blocker, Blink, bloXroute) share the JSON-RPC surface but serve a fundamentally different SLA (send-tx privacy, not read speed) and live in their own cluster on [mev-protect-rpc](/benchmarks/mev-protect-rpc). Cloudflare-eth is the resident cautionary tale of this cohort: sub-second HTTP 200s that increasingly carry a JSON-RPC error body (`-32046 Cannot fulfill request`), and Merkle is excluded outright after recurring Cloudflare lockouts that froze our probes for 20 minutes after a single request. If you paste a free RPC URL into an Ethereum dapp's read path, this page is the live answer to which one deserves it. + Ethereum carries one of the largest free-RPC cohorts we measure: 6 no-key public-read providers answering the same `eth_getBlockByNumber` probe every 60 seconds from three regions. This bench is scoped to public, read-optimised gateways only; MEV-protection RPCs (Flashbots, MEV Blocker, Blink, bloXroute) share the JSON-RPC surface but serve a fundamentally different SLA (send-tx privacy, not read speed) and live in their own cluster on [mev-protect-rpc](/benchmarks/mev-protect-rpc). Cloudflare-eth has been removed from this bench after persistent JSON-RPC error -32603, and Merkle is excluded outright after recurring Cloudflare lockouts that froze our probes for 20 minutes after a single request. If you paste a free RPC URL into an Ethereum dapp's read path, this page is the live answer to which one deserves it. abstract: | - Per-chain member of the public-read RPC latency cluster. We measure the round-trip latency of a single, identical RPC call (`eth_getBlockByNumber`) against every no-key public-read Ethereum endpoint that sustains continuous probing, 7 providers, every 60 seconds, from us-east, eu-west and Singapore. MEV-protection endpoints (private-mempool, anti-sandwich, PBS relays) are measured on the same probe but scored separately on [mev-protect-rpc](/benchmarks/mev-protect-rpc) because their SLA optimises for send-tx privacy rather than read latency, and mixing them here would flatter or penalise them on the wrong axis. 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 Ethereum-scoped answer with per-region breakdowns as a first-class dimension. + Per-chain member of the public-read RPC latency cluster. We measure the round-trip latency of a single, identical RPC call (`eth_getBlockByNumber`) against every no-key public-read Ethereum endpoint that sustains continuous probing, 6 providers, every 60 seconds, from us-east, eu-west and Singapore. MEV-protection endpoints (private-mempool, anti-sandwich, PBS relays) are measured on the same probe but scored separately on [mev-protect-rpc](/benchmarks/mev-protect-rpc) because their SLA optimises for send-tx privacy rather than read latency, and mixing them here would flatter or penalise them on the wrong axis. 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 Ethereum-scoped answer with per-region breakdowns as a first-class dimension. methodology: - "Cadence: every 60 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." @@ -26,24 +26,24 @@ methodology: - "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=\"ethereum\". Provider coverage: 7 no-key public-read endpoints (PublicNode, dRPC, Tenderly, Nodies, Lava, MeowRPC, Cloudflare). MEV-protection RPCs (Flashbots, MEV Blocker, Blink, bloXroute) share this probe methodology but score on [mev-protect-rpc](/benchmarks/mev-protect-rpc), because their SLA optimises for send-tx privacy, not read speed." + - "Chain scope: every query on this page is pinned to chain=\"ethereum\". Provider coverage: 6 no-key public-read endpoints (PublicNode, dRPC, Tenderly, Nodies, Lava, MeowRPC). Cloudflare removed (persistent JSON-RPC -32603). MEV-protection RPCs (Flashbots, MEV Blocker, Blink, bloXroute) share this probe methodology but score on [mev-protect-rpc](/benchmarks/mev-protect-rpc), because their SLA optimises for send-tx privacy, not read speed." findings: - - "{{best_name}} currently leads the free Ethereum RPC field at {{best_p50}} (`eth_getBlockByNumber` p50, 24h) across 7 measured public-read providers, the largest cohort of any chain in the cluster." - - "Cloudflare-eth is the resident cautionary tale: sub-second HTTP 200s that increasingly carry a JSON-RPC error instead of a block number. The success-rate column, not the latency column, tells the real story." + - "{{best_name}} currently leads the free Ethereum RPC field at {{best_p50}} (`eth_getBlockByNumber` p50, 24h) across 6 measured public-read providers." + - "Cloudflare-eth has been removed from the active cohort: persistent JSON-RPC error -32603 means the endpoint no longer returns usable results." - "Merkle is excluded on Ethereum by design: its endpoint sits behind an aggressive bot filter that locks out programmatic clients for ~20 minutes after one request, invisible on any status page." faq: - q: "What is the fastest free Ethereum RPC right now?" - a: "{{best_name}} currently leads at {{best_p50}} (`eth_getBlockByNumber` p50 over the last 24h), measured against 7 no-key public-read providers probed every 60 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. If you need MEV-protection endpoints instead of raw read speed, see [mev-protect-rpc](/benchmarks/mev-protect-rpc)." + a: "{{best_name}} currently leads at {{best_p50}} (`eth_getBlockByNumber` p50 over the last 24h), measured against 6 no-key public-read providers probed every 60 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. If you need MEV-protection endpoints instead of raw read speed, see [mev-protect-rpc](/benchmarks/mev-protect-rpc)." - q: "Which Ethereum RPCs work without an API key?" - a: "The 7 public-read providers on this page: PublicNode, dRPC, Tenderly, Nodies, Lava, MeowRPC, Cloudflare. Every (provider, chain) pair was live-verified no-key before inclusion, and anything that key-gates, region-blocks or rate-limits below our 60-second probe cadence is excluded rather than listed with an asterisk. MEV-protection RPCs (Flashbots, MEV Blocker, Blink, bloXroute) also expose no-key JSON-RPC but serve a different SLA and live on [mev-protect-rpc](/benchmarks/mev-protect-rpc)." + a: "The 6 public-read providers on this page: PublicNode, dRPC, Tenderly, Nodies, Lava, MeowRPC. Every (provider, chain) pair was live-verified no-key before inclusion, and anything that key-gates, region-blocks or rate-limits below our 60-second probe cadence is excluded rather than listed with an asterisk. Cloudflare was removed after persistent JSON-RPC error -32603. MEV-protection RPCs (Flashbots, MEV Blocker, Blink, bloXroute) also expose no-key JSON-RPC but serve a different SLA and live on [mev-protect-rpc](/benchmarks/mev-protect-rpc)." - q: "Does the fastest Ethereum 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 Ethereum RPC latency measured here?" a: "One identical JSON-RPC POST (`eth_getBlockByNumber`) every 60 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: "Why is Cloudflare's Ethereum RPC marked unreliable here?" - a: "Cloudflare's public Ethereum gateway switched to a permissioned mode for many JSON-RPC methods. The endpoint still responds fast with HTTP 200, but the body is increasingly a JSON-RPC error (`-32046`) rather than a usable result. We classify a call as `ok` only when the HTTP status is 200 AND the body carries a usable `result` field, so Cloudflare's real success rate is visible in the reliability column instead of hiding behind fast error responses." + - q: "Why was Cloudflare's Ethereum RPC removed?" + a: "Cloudflare's public Ethereum gateway returned persistent JSON-RPC error -32603 on our probes. The endpoint responds with HTTP 200 but the body carries an error body rather than a usable result, which means it no longer qualifies as a functional free RPC. We classify a call as `ok` only when the HTTP status is 200 AND the body carries a usable `result` field." source: https://github.com/ChainBench/OpenChainBench/tree/main/harnesses/rpc-capabilities @@ -202,26 +202,4 @@ providers: p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="meowrpc", chain="ethereum", region="sgp"}) series: avg_over_time(rpc_latency_milliseconds{provider="meowrpc", chain="ethereum", region="sgp"}[1h]) - - slug: cloudflare - name: Cloudflare - tag: Permissioned-mode for many JSON-RPC methods - formula: "50th percentile over 24h of client-side round-trip latency (ms) for a single `eth_getBlockByNumber` POST sent every 60s from 3 regions (us-east + eu-west + sgp) to Cloudflare's no-key Ethereum endpoint." - queries: - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="cloudflare", chain="ethereum"}) - p90: avg(ocb:rpc_latency_milliseconds:p90_24h{provider="cloudflare", chain="ethereum"}) - p99: avg(ocb:rpc_latency_milliseconds:p99_24h{provider="cloudflare", chain="ethereum"}) - mean: avg(ocb:rpc_latency_milliseconds:mean_24h{provider="cloudflare", chain="ethereum"}) - success: sum(ocb:rpc_call:ok_rate_24h{provider="cloudflare", chain="ethereum"}) / sum(ocb:rpc_call:rate_24h{provider="cloudflare", chain="ethereum"}) - sample_size: sum(ocb:rpc_call:increase_24h{provider="cloudflare", chain="ethereum"}) - series: avg(avg_over_time(rpc_latency_milliseconds{provider="cloudflare", chain="ethereum"}[1h])) - regions: - - region: us-east - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="cloudflare", chain="ethereum", region="us-east"}) - series: avg_over_time(rpc_latency_milliseconds{provider="cloudflare", chain="ethereum", region="us-east"}[1h]) - - region: eu-west - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="cloudflare", chain="ethereum", region="eu-west"}) - series: avg_over_time(rpc_latency_milliseconds{provider="cloudflare", chain="ethereum", region="eu-west"}[1h]) - - region: ap-southeast - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="cloudflare", chain="ethereum", region="sgp"}) - series: avg_over_time(rpc_latency_milliseconds{provider="cloudflare", chain="ethereum", region="sgp"}[1h]) diff --git a/benchmarks/hydration-rpc.yml b/benchmarks/hydration-rpc.yml index 423f4894..9fca3db1 100644 --- a/benchmarks/hydration-rpc.yml +++ b/benchmarks/hydration-rpc.yml @@ -4,26 +4,23 @@ slug: hydration-rpc number: "186" title: Fastest free Hydration RPC, live no-key endpoint latency seo_title: "Fastest free Hydration RPC 2026" -seo_description: "{{best_name}} leads free Hydration RPC at {{best_p50}} (chain_getHeader p50, 24h). 5 no-key providers measured every 60s from 3 regions." +seo_description: "Hydration RPC bench temporarily suspended: all 5 providers are DNS dead or returning HTTP 400. Will resume when endpoints recover." subtitle: HTTP round-trip latency for chain_getHeader against every free, no-key public Hydration Polkadot parachain endpoint, audited every 60 seconds from 3 regions. category: RPCs -status: live +status: suspended metric: RPC latency unit: ms higher_is_better: false seo_intro: | - Hydration (formerly HydraDX) is an Omnipool-based DEX parachain on Polkadot enabling single-sided liquidity provision across assets. HDX is the native token. Five keyless endpoints are probed continuously: Hydration's official gateway (rpc.hydradx.cloud), Dwellir, Helikon, Dotters Network, and Parachains Network. + Hydration (formerly HydraDX) is an Omnipool-based DEX parachain on Polkadot enabling single-sided liquidity provision across assets. HDX is the native token. This bench is currently suspended: all 5 previously measured providers (Hydration official, Dwellir, Helikon, Dotters Network, Parachains Network) are either DNS dead or returning HTTP 400. The bench will resume when endpoints recover. abstract: | Per-chain member of the RPC latency cluster, extended to Hydration. - We measure the round-trip latency of a single, identical JSON-RPC call - (`chain_getHeader`) against every no-key public Hydration parachain endpoint - that sustains continuous probing, 5 providers at launch, - every 60 seconds, from us-east, eu-west and Singapore. The cross-chain - view lives on the parent `rpc-capabilities` benchmark; this page is the - Hydration-scoped answer with per-region breakdowns as a first-class dimension. + This bench is currently suspended: all 5 previously measured providers + are DNS dead or returning HTTP 400. Data will resume when at least + one keyless Hydration RPC endpoint becomes reachable again. methodology: - "Cadence: every 60 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." @@ -31,16 +28,16 @@ methodology: - "Latency: client-side round-trip delta in milliseconds, exposed as both a gauge and a histogram (buckets 50 ms to 10 s), so percentiles are computed via Prometheus `quantile_over_time` over the last 24 hours." - "Call-result classification: `ok` (HTTP 200 + parsable hex block number), `http_err`, `jsonrpc_err`, `stale` (more than 40 blocks behind the cross-provider tip), `timeout`." - "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, cadence and exclusion rules apply on every chain." - - "Chain scope: every query on this page is pinned to `chain=\"hydration\"`. Provider coverage at launch: 5 no-key endpoints." + - "Chain scope: every query on this page is pinned to `chain=\"hydration\"`. Bench currently suspended: all 5 previously measured providers are DNS dead or returning HTTP 400." findings: - - "{{best_name}} currently leads free Hydration RPC at {{best_p50}} (`chain_getHeader` p50, 24h) across 5 measured providers." + - "Hydration RPC bench is suspended. All previously measured providers (Hydration official, Dwellir, Helikon, Dotters Network, Parachains Network) are unreachable." faq: - q: "What is the fastest free Hydration RPC right now?" - a: "{{best_name}} currently leads at {{best_p50}} (`chain_getHeader` p50 over the last 24h), measured against 5 no-key providers probed every 60 seconds from us-east, eu-west and Singapore." + a: "This bench is currently suspended. All 5 previously measured keyless providers are DNS dead or returning HTTP 400. The bench will resume when at least one reachable endpoint is found." - q: "Which Hydration RPCs work without an API key?" - a: "5 endpoints sustain continuous keyless probing: Hydration official, Dwellir, Helikon, Dotters Network, and Parachains Network. Every endpoint was live-verified before inclusion." + a: "All 5 previously verified endpoints (Hydration official, Dwellir, Helikon, Dotters Network, Parachains Network) are currently unreachable. The bench will resume when providers recover." - q: "Does the fastest Hydration RPC change by region?" a: "Often. The region tabs at the top of the page re-scope every number to a single origin." - q: "How is Hydration RPC latency measured here?" @@ -61,118 +58,7 @@ dimensions: - { value: eu-west, label: EU-West } - { value: sgp, label: Singapore } -providers: - - slug: hydration-official - name: Hydration - tag: Hydration official public RPC gateway - formula: "50th percentile over 24h of client-side round-trip latency (ms) for a single `chain_getHeader` POST sent every 60s from 3 regions to Hydration's no-key endpoint." - queries: - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="hydration-official", chain="hydration"}) - p90: avg(ocb:rpc_latency_milliseconds:p90_24h{provider="hydration-official", chain="hydration"}) - p99: avg(ocb:rpc_latency_milliseconds:p99_24h{provider="hydration-official", chain="hydration"}) - mean: avg(ocb:rpc_latency_milliseconds:mean_24h{provider="hydration-official", chain="hydration"}) - success: sum(ocb:rpc_call:ok_rate_24h{provider="hydration-official", chain="hydration"}) / sum(ocb:rpc_call:rate_24h{provider="hydration-official", chain="hydration"}) - sample_size: sum(ocb:rpc_call:increase_24h{provider="hydration-official", chain="hydration"}) - series: avg(avg_over_time(rpc_latency_milliseconds{provider="hydration-official", chain="hydration"}[1h])) - regions: - - region: us-east - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="hydration-official", chain="hydration", region="us-east"}) - series: avg_over_time(rpc_latency_milliseconds{provider="hydration-official", chain="hydration", region="us-east"}[1h]) - - region: eu-west - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="hydration-official", chain="hydration", region="eu-west"}) - series: avg_over_time(rpc_latency_milliseconds{provider="hydration-official", chain="hydration", region="eu-west"}[1h]) - - region: ap-southeast - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="hydration-official", chain="hydration", region="sgp"}) - series: avg_over_time(rpc_latency_milliseconds{provider="hydration-official", chain="hydration", region="sgp"}[1h]) - - - slug: dwellir - name: Dwellir - tag: Dwellir Substrate infrastructure provider - formula: "50th percentile over 24h of client-side round-trip latency (ms) for a single `chain_getHeader` POST sent every 60s from 3 regions to Dwellir's no-key Hydration endpoint." - queries: - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="dwellir", chain="hydration"}) - p90: avg(ocb:rpc_latency_milliseconds:p90_24h{provider="dwellir", chain="hydration"}) - p99: avg(ocb:rpc_latency_milliseconds:p99_24h{provider="dwellir", chain="hydration"}) - mean: avg(ocb:rpc_latency_milliseconds:mean_24h{provider="dwellir", chain="hydration"}) - success: sum(ocb:rpc_call:ok_rate_24h{provider="dwellir", chain="hydration"}) / sum(ocb:rpc_call:rate_24h{provider="dwellir", chain="hydration"}) - sample_size: sum(ocb:rpc_call:increase_24h{provider="dwellir", chain="hydration"}) - series: avg(avg_over_time(rpc_latency_milliseconds{provider="dwellir", chain="hydration"}[1h])) - regions: - - region: us-east - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="dwellir", chain="hydration", region="us-east"}) - series: avg_over_time(rpc_latency_milliseconds{provider="dwellir", chain="hydration", region="us-east"}[1h]) - - region: eu-west - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="dwellir", chain="hydration", region="eu-west"}) - series: avg_over_time(rpc_latency_milliseconds{provider="dwellir", chain="hydration", region="eu-west"}[1h]) - - region: ap-southeast - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="dwellir", chain="hydration", region="sgp"}) - series: avg_over_time(rpc_latency_milliseconds{provider="dwellir", chain="hydration", region="sgp"}[1h]) - - - slug: helikon - name: Helikon - tag: Helikon community RPC for Hydration - formula: "50th percentile over 24h of client-side round-trip latency (ms) for a single `chain_getHeader` POST sent every 60s from 3 regions to Helikon's no-key Hydration endpoint." - queries: - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="helikon", chain="hydration"}) - p90: avg(ocb:rpc_latency_milliseconds:p90_24h{provider="helikon", chain="hydration"}) - p99: avg(ocb:rpc_latency_milliseconds:p99_24h{provider="helikon", chain="hydration"}) - mean: avg(ocb:rpc_latency_milliseconds:mean_24h{provider="helikon", chain="hydration"}) - success: sum(ocb:rpc_call:ok_rate_24h{provider="helikon", chain="hydration"}) / sum(ocb:rpc_call:rate_24h{provider="helikon", chain="hydration"}) - sample_size: sum(ocb:rpc_call:increase_24h{provider="helikon", chain="hydration"}) - series: avg(avg_over_time(rpc_latency_milliseconds{provider="helikon", chain="hydration"}[1h])) - regions: - - region: us-east - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="helikon", chain="hydration", region="us-east"}) - series: avg_over_time(rpc_latency_milliseconds{provider="helikon", chain="hydration", region="us-east"}[1h]) - - region: eu-west - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="helikon", chain="hydration", region="eu-west"}) - series: avg_over_time(rpc_latency_milliseconds{provider="helikon", chain="hydration", region="eu-west"}[1h]) - - region: ap-southeast - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="helikon", chain="hydration", region="sgp"}) - series: avg_over_time(rpc_latency_milliseconds{provider="helikon", chain="hydration", region="sgp"}[1h]) - - - slug: dotters-network - name: Dotters Network - tag: Dotters Network community RPC for Hydration - formula: "50th percentile over 24h of client-side round-trip latency (ms) for a single `chain_getHeader` POST sent every 60s from 3 regions to Dotters Network's no-key Hydration endpoint." - queries: - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="dotters-network", chain="hydration"}) - p90: avg(ocb:rpc_latency_milliseconds:p90_24h{provider="dotters-network", chain="hydration"}) - p99: avg(ocb:rpc_latency_milliseconds:p99_24h{provider="dotters-network", chain="hydration"}) - mean: avg(ocb:rpc_latency_milliseconds:mean_24h{provider="dotters-network", chain="hydration"}) - success: sum(ocb:rpc_call:ok_rate_24h{provider="dotters-network", chain="hydration"}) / sum(ocb:rpc_call:rate_24h{provider="dotters-network", chain="hydration"}) - sample_size: sum(ocb:rpc_call:increase_24h{provider="dotters-network", chain="hydration"}) - series: avg(avg_over_time(rpc_latency_milliseconds{provider="dotters-network", chain="hydration"}[1h])) - regions: - - region: us-east - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="dotters-network", chain="hydration", region="us-east"}) - series: avg_over_time(rpc_latency_milliseconds{provider="dotters-network", chain="hydration", region="us-east"}[1h]) - - region: eu-west - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="dotters-network", chain="hydration", region="eu-west"}) - series: avg_over_time(rpc_latency_milliseconds{provider="dotters-network", chain="hydration", region="eu-west"}[1h]) - - region: ap-southeast - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="dotters-network", chain="hydration", region="sgp"}) - series: avg_over_time(rpc_latency_milliseconds{provider="dotters-network", chain="hydration", region="sgp"}[1h]) - - - slug: parachains-network - name: Parachains Network - tag: Parachains.network community RPC for Hydration - formula: "50th percentile over 24h of client-side round-trip latency (ms) for a single `chain_getHeader` POST sent every 60s from 3 regions to Parachains Network's no-key Hydration endpoint." - queries: - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="parachains-network", chain="hydration"}) - p90: avg(ocb:rpc_latency_milliseconds:p90_24h{provider="parachains-network", chain="hydration"}) - p99: avg(ocb:rpc_latency_milliseconds:p99_24h{provider="parachains-network", chain="hydration"}) - mean: avg(ocb:rpc_latency_milliseconds:mean_24h{provider="parachains-network", chain="hydration"}) - success: sum(ocb:rpc_call:ok_rate_24h{provider="parachains-network", chain="hydration"}) / sum(ocb:rpc_call:rate_24h{provider="parachains-network", chain="hydration"}) - sample_size: sum(ocb:rpc_call:increase_24h{provider="parachains-network", chain="hydration"}) - series: avg(avg_over_time(rpc_latency_milliseconds{provider="parachains-network", chain="hydration"}[1h])) - regions: - - region: us-east - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="parachains-network", chain="hydration", region="us-east"}) - series: avg_over_time(rpc_latency_milliseconds{provider="parachains-network", chain="hydration", region="us-east"}[1h]) - - region: eu-west - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="parachains-network", chain="hydration", region="eu-west"}) - series: avg_over_time(rpc_latency_milliseconds{provider="parachains-network", chain="hydration", region="eu-west"}[1h]) - - region: ap-southeast - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="parachains-network", chain="hydration", region="sgp"}) - series: avg_over_time(rpc_latency_milliseconds{provider="parachains-network", chain="hydration", region="sgp"}[1h]) +providers: [] +# All 5 previously measured providers are DNS dead or returning HTTP 400. +# Suspended 2026-08-07. Will resume when endpoints recover. +# Removed: hydration-official, dwellir, helikon, dotters-network, parachains-network diff --git a/benchmarks/kaia-rpc.yml b/benchmarks/kaia-rpc.yml index 24a1c0b3..338f5432 100644 --- a/benchmarks/kaia-rpc.yml +++ b/benchmarks/kaia-rpc.yml @@ -4,7 +4,7 @@ slug: kaia-rpc number: "098" title: Fastest free Kaia RPC, live no-key EVM endpoint latency seo_title: "Fastest free Kaia RPC 2026" -seo_description: "{{best_name}} leads free Kaia RPC at {{best_p50}} (`eth_getBlockByNumber(\"latest\", false)` p50, 24h). 2 no-key providers measured every 60s from 3 regions." +seo_description: "{{best_name}} leads free Kaia RPC at {{best_p50}} (`eth_getBlockByNumber(\"latest\", false)` p50, 24h). 1 no-key provider measured every 60s from 3 regions." subtitle: HTTP round-trip latency for the `eth_getBlockByNumber(\"latest\", false)` method against every free, no-key public Kaia EVM endpoint, audited every 60 seconds from 3 regions. category: RPCs @@ -14,13 +14,13 @@ unit: ms higher_is_better: false seo_intro: | - Kaia is the EVM L1 formed by the Klaytn + Finschia merger in Aug 2024, with Istanbul BFT consensus, KAIA gas token, and dominant footprint in Korea + Japan through LINE and Kakao integrations. Standard EVM JSON-RPC. Excluded by the launch audit: BlockPI (`kaia.blockpi.network` returned `Apikey not found`), Nodies (`klaytn-pokt.nodies.app` requires paid subscription), Alchemy public (`KAIA_MAINNET not enabled for this app` on public tier), AllThatNode + OnFinality + Chainstack + Tatum + NowNodes (DNS-fail or key required). Every provider live-verified with 4 consecutive keyless probes at launch. + Kaia is the EVM L1 formed by the Klaytn + Finschia merger in Aug 2024, with Istanbul BFT consensus, KAIA gas token, and dominant footprint in Korea + Japan through LINE and Kakao integrations. Standard EVM JSON-RPC. Excluded: dRPC (500 paid plan only), BlockPI (`kaia.blockpi.network` returned `Apikey not found`), Nodies (`klaytn-pokt.nodies.app` requires paid subscription), Alchemy public (`KAIA_MAINNET not enabled for this app` on public tier), AllThatNode + OnFinality + Chainstack + Tatum + NowNodes (DNS-fail or key required). Every provider live-verified with 4 consecutive keyless probes at launch. abstract: | Per-chain member of the RPC latency cluster, extended to Kaia. We measure the round-trip latency of a single, identical JSON-RPC call - (`eth_getBlockByNumber(\"latest\", false)`) against every no-key public Kaia endpoint - that sustains continuous probing, 2 providers at launch, + (`eth_getBlockByNumber(\"latest\", false)`) against the no-key public Kaia endpoint + that sustains continuous probing (1 provider: Kaia Foundation official), every 60 seconds, from us-east, eu-west and Singapore. The harness classifies every response (ok / http_err / jsonrpc_err / stale / timeout) with a Kaia-scaled staleness gap (25 blocks at @@ -35,16 +35,16 @@ methodology: - "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 with a parsable hex block number), `http_err`, `jsonrpc_err` (HTTP 200 carrying an error body), `stale` (more than 25 blocks behind the cross-provider tip), `timeout`. Latency without reliability is a misleading ranking signal." - "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, cadence and exclusion rules apply on every chain." - - "Chain scope: every query on this page is pinned to `chain=\"kaia\"`. Provider coverage at launch: 2 no-key endpoints (Kaia Foundation, dRPC)." + - "Chain scope: every query on this page is pinned to `chain=\"kaia\"`. Provider coverage: 1 no-key endpoint (Kaia Foundation). dRPC removed (500 paid plan only)." findings: - - "{{best_name}} currently leads free Kaia RPC at {{best_p50}} (`eth_getBlockByNumber(\"latest\", false)` p50, 24h) across 2 measured providers." + - "{{best_name}} currently leads free Kaia RPC at {{best_p50}} (`eth_getBlockByNumber(\"latest\", false)` p50, 24h) — 1 measured provider." faq: - q: "What is the fastest free Kaia RPC right now?" - a: "{{best_name}} currently leads at {{best_p50}} (`eth_getBlockByNumber(\"latest\", false)` p50 over the last 24h), measured against 2 no-key providers probed every 60 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." + a: "{{best_name}} currently leads at {{best_p50}} (`eth_getBlockByNumber(\"latest\", false)` p50 over the last 24h), measured against 1 no-key provider probed every 60 seconds from us-east, eu-west and Singapore. The leaderboard re-sorts continuously against fresh Prometheus samples. Use the region tabs to see the leader from the origin closest to your deployment." - q: "Which Kaia RPCs work without an API key?" - a: "2 endpoints sustain continuous keyless probing at launch: Kaia Foundation, dRPC. Every listed endpoint was live-verified with a `eth_getBlockByNumber(\"latest\", false)` POST returning a parsable response before inclusion. See the methodology section for the specific endpoints that were audited and excluded." + a: "1 endpoint sustains continuous keyless probing: Kaia Foundation (public-en.node.kaia.io). dRPC was removed after returning 500 (paid plan only). See the methodology section for the specific endpoints that were audited and excluded." - q: "Does the fastest Kaia RPC change by region?" a: "Often. Public infra concentrates in specific regions; a gateway that wins from Amsterdam can lose from Singapore by multiples. The region tabs at the top of the page re-scope every number to a single origin; pick the one closest to where your requests originate." - q: "How is Kaia RPC latency measured here, technically?" @@ -89,26 +89,4 @@ providers: p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="kaia-official", chain="kaia", region="sgp"}) series: avg_over_time(rpc_latency_milliseconds{provider="kaia-official", chain="kaia", region="sgp"}[1h]) - - slug: drpc - name: dRPC - tag: Multi-provider RPC load balancer, edge-close routing - formula: "50th percentile over 24h of client-side round-trip latency (ms) for a single `eth_getBlockByNumber(\"latest\", false)` POST sent every 60s from 3 regions (us-east + eu-west + sgp) to dRPC's no-key kaia RPC endpoint." - queries: - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="drpc", chain="kaia"}) - p90: avg(ocb:rpc_latency_milliseconds:p90_24h{provider="drpc", chain="kaia"}) - p99: avg(ocb:rpc_latency_milliseconds:p99_24h{provider="drpc", chain="kaia"}) - mean: avg(ocb:rpc_latency_milliseconds:mean_24h{provider="drpc", chain="kaia"}) - success: sum(ocb:rpc_call:ok_rate_24h{provider="drpc", chain="kaia"}) / sum(ocb:rpc_call:rate_24h{provider="drpc", chain="kaia"}) - sample_size: sum(ocb:rpc_call:increase_24h{provider="drpc", chain="kaia"}) - series: avg(avg_over_time(rpc_latency_milliseconds{provider="drpc", chain="kaia"}[1h])) - regions: - - region: us-east - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="drpc", chain="kaia", region="us-east"}) - series: avg_over_time(rpc_latency_milliseconds{provider="drpc", chain="kaia", region="us-east"}[1h]) - - region: eu-west - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="drpc", chain="kaia", region="eu-west"}) - series: avg_over_time(rpc_latency_milliseconds{provider="drpc", chain="kaia", region="eu-west"}[1h]) - - region: ap-southeast - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="drpc", chain="kaia", region="sgp"}) - series: avg_over_time(rpc_latency_milliseconds{provider="drpc", chain="kaia", region="sgp"}[1h]) diff --git a/benchmarks/moonriver-rpc.yml b/benchmarks/moonriver-rpc.yml index a8f62b3e..e62325da 100644 --- a/benchmarks/moonriver-rpc.yml +++ b/benchmarks/moonriver-rpc.yml @@ -4,7 +4,7 @@ slug: moonriver-rpc number: "135" title: Fastest free Moonriver RPC, live no-key EVM endpoint latency seo_title: "Fastest free Moonriver RPC 2026" -seo_description: "{{best_name}} leads free Moonriver RPC at {{best_p50}} (`eth_getBlockByNumber` p50, 24h). 4 no-key providers measured every 60s from 3 regions." +seo_description: "{{best_name}} leads free Moonriver RPC at {{best_p50}} (`eth_getBlockByNumber` p50, 24h). 3 no-key providers measured every 60s from 3 regions." subtitle: HTTP round-trip latency for the `eth_getBlockByNumber(\"latest\", false)` method against every free, no-key public Moonriver EVM endpoint, audited every 60 seconds from 3 regions. category: RPCs @@ -14,14 +14,14 @@ unit: ms higher_is_better: false seo_intro: | - Moonriver is the Kusama canary network for Moonbeam (chain 1285), a full EVM parachain with Ethereum-compatible tooling, MOVR gas token, ~12 s block time under Nominated Proof of Stake, serving as the staging ground for Moonbeam features before they reach Polkadot. The 2026-08-03 audit confirms 4 clean keyless providers: the Moonbeam Foundation official endpoint (rpc.api.moonriver.moonbeam.network), PublicNode (moonriver-rpc.publicnode.com), OnFinality (moonriver.api.onfinality.io/public), and UnitedBloc (moonriver.unitedbloc.com). Excluded: Ankr (requires key for Moonriver), dRPC (no moonriver route). + Moonriver is the Kusama canary network for Moonbeam (chain 1285), a full EVM parachain with Ethereum-compatible tooling, MOVR gas token, ~12 s block time under Nominated Proof of Stake, serving as the staging ground for Moonbeam features before they reach Polkadot. The 2026-08-03 audit confirms 3 clean keyless providers: the Moonbeam Foundation official endpoint (rpc.api.moonriver.moonbeam.network), PublicNode (moonriver-rpc.publicnode.com), and OnFinality (moonriver.api.onfinality.io/public). Excluded: UnitedBloc (moonriver.unitedbloc.com DNS dead), Ankr (requires key for Moonriver), dRPC (no moonriver route). abstract: | Per-chain member of the RPC latency cluster, extended to Moonriver. We measure the round-trip latency of a single, identical JSON-RPC call (`eth_getBlockByNumber(\"latest\", false)`) against every no-key public - Moonriver endpoint that sustains continuous probing, 4 providers - measured, every 60 seconds, from us-east, eu-west and Singapore. The + Moonriver endpoint that sustains continuous probing, 3 providers, + every 60 seconds, from us-east, eu-west and Singapore. The harness classifies every response (ok / http_err / jsonrpc_err / stale / timeout) with a Moonriver-scaled staleness gap (20 blocks at Moonriver's ~12 s block time). The cross-chain view @@ -35,16 +35,16 @@ methodology: - "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 with a parsable hex block number), `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." - "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, cadence and exclusion rules apply on every chain." - - "Chain scope: every query on this page is pinned to `chain=\"moonriver\"`. Provider coverage: 4 no-key endpoints." + - "Chain scope: every query on this page is pinned to `chain=\"moonriver\"`. Provider coverage: 3 no-key endpoints. UnitedBloc removed (DNS dead)." findings: - - "{{best_name}} currently leads free Moonriver RPC at {{best_p50}} (`eth_getBlockByNumber` p50, 24h) across 4 measured providers." + - "{{best_name}} currently leads free Moonriver RPC at {{best_p50}} (`eth_getBlockByNumber` p50, 24h) across 3 measured providers." faq: - q: "What is the fastest free Moonriver RPC right now?" - a: "{{best_name}} currently leads at {{best_p50}} (`eth_getBlockByNumber(\"latest\", false)` p50 over the last 24h), measured against 4 no-key providers probed every 60 seconds from us-east, eu-west and Singapore. The leaderboard re-sorts continuously against fresh Prometheus samples. Use the region tabs to see the leader from the origin closest to your deployment." + a: "{{best_name}} currently leads at {{best_p50}} (`eth_getBlockByNumber(\"latest\", false)` p50 over the last 24h), measured against 3 no-key providers probed every 60 seconds from us-east, eu-west and Singapore. The leaderboard re-sorts continuously against fresh Prometheus samples. Use the region tabs to see the leader from the origin closest to your deployment." - q: "Which Moonriver RPCs work without an API key?" - a: "4 endpoints sustain continuous keyless probing: Moonbeam Foundation official (rpc.api.moonriver.moonbeam.network), PublicNode (moonriver-rpc.publicnode.com), OnFinality (moonriver.api.onfinality.io/public), and UnitedBloc (moonriver.unitedbloc.com). Every listed endpoint was live-verified with a `eth_getBlockByNumber` POST returning a parsable response before inclusion." + a: "3 endpoints sustain continuous keyless probing: Moonbeam Foundation official (rpc.api.moonriver.moonbeam.network), PublicNode (moonriver-rpc.publicnode.com), and OnFinality (moonriver.api.onfinality.io/public). UnitedBloc (moonriver.unitedbloc.com) was removed after its DNS went dead." - q: "Does the fastest Moonriver RPC change by region?" a: "Often. Public infra concentrates in specific regions; a gateway that wins from Amsterdam can lose from Singapore by multiples. The region tabs at the top of the page re-scope every number to a single origin; pick the one closest to where your requests originate." - q: "How is Moonriver RPC latency measured here, technically?" @@ -135,25 +135,3 @@ providers: p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="onfinality", chain="moonriver", region="sgp"}) series: avg_over_time(rpc_latency_milliseconds{provider="onfinality", chain="moonriver", region="sgp"}[1h]) - - slug: unitedbloc - name: UnitedBloc - tag: UnitedBloc community node operator public RPC for Moonriver - formula: "50th percentile over 24h of client-side round-trip latency (ms) for a single `eth_getBlockByNumber(\"latest\", false)` POST sent every 60s from 3 regions (us-east + eu-west + sgp) to UnitedBloc's no-key moonriver RPC endpoint." - queries: - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="unitedbloc", chain="moonriver"}) - p90: avg(ocb:rpc_latency_milliseconds:p90_24h{provider="unitedbloc", chain="moonriver"}) - p99: avg(ocb:rpc_latency_milliseconds:p99_24h{provider="unitedbloc", chain="moonriver"}) - mean: avg(ocb:rpc_latency_milliseconds:mean_24h{provider="unitedbloc", chain="moonriver"}) - success: sum(ocb:rpc_call:ok_rate_24h{provider="unitedbloc", chain="moonriver"}) / sum(ocb:rpc_call:rate_24h{provider="unitedbloc", chain="moonriver"}) - sample_size: sum(ocb:rpc_call:increase_24h{provider="unitedbloc", chain="moonriver"}) - series: avg(avg_over_time(rpc_latency_milliseconds{provider="unitedbloc", chain="moonriver"}[1h])) - regions: - - region: us-east - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="unitedbloc", chain="moonriver", region="us-east"}) - series: avg_over_time(rpc_latency_milliseconds{provider="unitedbloc", chain="moonriver", region="us-east"}[1h]) - - region: eu-west - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="unitedbloc", chain="moonriver", region="eu-west"}) - series: avg_over_time(rpc_latency_milliseconds{provider="unitedbloc", chain="moonriver", region="eu-west"}[1h]) - - region: ap-southeast - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="unitedbloc", chain="moonriver", region="sgp"}) - series: avg_over_time(rpc_latency_milliseconds{provider="unitedbloc", chain="moonriver", region="sgp"}[1h]) diff --git a/benchmarks/ronin-rpc.yml b/benchmarks/ronin-rpc.yml index 13931024..72e4edc6 100644 --- a/benchmarks/ronin-rpc.yml +++ b/benchmarks/ronin-rpc.yml @@ -4,7 +4,7 @@ slug: ronin-rpc number: "110" title: Fastest free Ronin RPC, live no-key EVM endpoint latency seo_title: "Fastest free Ronin RPC 2026" -seo_description: "{{best_name}} leads free Ronin RPC at {{best_p50}} (`eth_getBlockByNumber` p50, 24h). 4 no-key providers measured every 60s from 3 regions." +seo_description: "{{best_name}} leads free Ronin RPC at {{best_p50}} (`eth_getBlockByNumber` p50, 24h). 3 no-key providers measured every 60s from 3 regions." subtitle: HTTP round-trip latency for the `eth_getBlockByNumber(\"latest\", false)` method against every free, no-key public Ronin EVM endpoint, audited every 60 seconds from 3 regions. category: RPCs @@ -14,14 +14,14 @@ unit: ms higher_is_better: false seo_intro: | - Ronin is an EVM L1 (chain 2020) operated by Sky Mavis, purpose-built for Web3 gaming and home of Axie Infinity, Pixels and a broader gaming ecosystem. RON gas token, delegated proof-of-stake validator set, 3 s block cadence. 4 clean keyless providers live-verified at launch: `ronin-official` (api.roninchain.com), dRPC, Tenderly Gateway, Thirdweb. Excluded by the launch audit: Ronin Tech secondary domain (DNS-fail), PublicNode (no `ronin` subdomain), lgns.net (DNS-fail). + Ronin is an EVM L1 (chain 2020) operated by Sky Mavis, purpose-built for Web3 gaming and home of Axie Infinity, Pixels and a broader gaming ecosystem. RON gas token, delegated proof-of-stake validator set, 3 s block cadence. 3 clean keyless providers: `ronin-official` (api.roninchain.com), Tenderly Gateway, Thirdweb. Excluded: dRPC (500 persistent internal error after 3 consecutive attempts), Ronin Tech secondary domain (DNS-fail), PublicNode (no `ronin` subdomain), lgns.net (DNS-fail). abstract: | Per-chain member of the RPC latency cluster, extended to Ronin. We measure the round-trip latency of a single, identical JSON-RPC call (`eth_getBlockByNumber(\"latest\", false)`) against every no-key public - Ronin endpoint that sustains continuous probing, 4 providers - at launch, every 60 seconds, from us-east, eu-west and Singapore. The + Ronin endpoint that sustains continuous probing, 3 providers, + every 60 seconds, from us-east, eu-west and Singapore. The harness classifies every response (ok / http_err / jsonrpc_err / stale / timeout) with a Ronin-scaled staleness gap (25 blocks at Ronin's ~3 s block time). The cross-chain view @@ -35,16 +35,16 @@ methodology: - "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 with a parsable hex block number), `http_err`, `jsonrpc_err` (HTTP 200 carrying an error body), `stale` (more than 25 blocks behind the cross-provider tip), `timeout`. Latency without reliability is a misleading ranking signal." - "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, cadence and exclusion rules apply on every chain." - - "Chain scope: every query on this page is pinned to `chain=\"ronin\"`. Provider coverage at launch: 4 no-key endpoints." + - "Chain scope: every query on this page is pinned to `chain=\"ronin\"`. Provider coverage: 3 no-key endpoints. dRPC removed (500 persistent internal error)." findings: - - "{{best_name}} currently leads free Ronin RPC at {{best_p50}} (`eth_getBlockByNumber` p50, 24h) across 4 measured providers." + - "{{best_name}} currently leads free Ronin RPC at {{best_p50}} (`eth_getBlockByNumber` p50, 24h) across 3 measured providers." faq: - q: "What is the fastest free Ronin RPC right now?" - a: "{{best_name}} currently leads at {{best_p50}} (`eth_getBlockByNumber(\"latest\", false)` p50 over the last 24h), measured against 4 no-key providers probed every 60 seconds from us-east, eu-west and Singapore. The leaderboard re-sorts continuously against fresh Prometheus samples. Use the region tabs to see the leader from the origin closest to your deployment." + a: "{{best_name}} currently leads at {{best_p50}} (`eth_getBlockByNumber(\"latest\", false)` p50 over the last 24h), measured against 3 no-key providers probed every 60 seconds from us-east, eu-west and Singapore. The leaderboard re-sorts continuously against fresh Prometheus samples. Use the region tabs to see the leader from the origin closest to your deployment." - q: "Which Ronin RPCs work without an API key?" - a: "4 endpoints sustain continuous keyless probing at launch. Every listed endpoint was live-verified with a `eth_getBlockByNumber` POST returning a parsable response before inclusion. See the methodology section for the endpoints that were audited and excluded." + a: "3 endpoints sustain continuous keyless probing: Sky Mavis official, Tenderly Gateway, Thirdweb. dRPC was removed after persistent 500 internal errors. Every listed endpoint was live-verified with a `eth_getBlockByNumber` POST returning a parsable response before inclusion." - q: "Does the fastest Ronin RPC change by region?" a: "Often. Public infra concentrates in specific regions; a gateway that wins from Amsterdam can lose from Singapore by multiples. The region tabs at the top of the page re-scope every number to a single origin; pick the one closest to where your requests originate." - q: "How is Ronin RPC latency measured here, technically?" @@ -89,29 +89,6 @@ providers: p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="ronin-official", chain="ronin", region="sgp"}) series: avg_over_time(rpc_latency_milliseconds{provider="ronin-official", chain="ronin", region="sgp"}[1h]) - - slug: drpc - name: dRPC - tag: dRPC public gateway routing to Ronin node pool - formula: "50th percentile over 24h of client-side round-trip latency (ms) for a single `eth_getBlockByNumber(\"latest\", false)` POST sent every 60s from 3 regions (us-east + eu-west + sgp) to dRPC's no-key ronin RPC endpoint." - queries: - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="drpc", chain="ronin"}) - p90: avg(ocb:rpc_latency_milliseconds:p90_24h{provider="drpc", chain="ronin"}) - p99: avg(ocb:rpc_latency_milliseconds:p99_24h{provider="drpc", chain="ronin"}) - mean: avg(ocb:rpc_latency_milliseconds:mean_24h{provider="drpc", chain="ronin"}) - success: sum(ocb:rpc_call:ok_rate_24h{provider="drpc", chain="ronin"}) / sum(ocb:rpc_call:rate_24h{provider="drpc", chain="ronin"}) - sample_size: sum(ocb:rpc_call:increase_24h{provider="drpc", chain="ronin"}) - series: avg(avg_over_time(rpc_latency_milliseconds{provider="drpc", chain="ronin"}[1h])) - regions: - - region: us-east - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="drpc", chain="ronin", region="us-east"}) - series: avg_over_time(rpc_latency_milliseconds{provider="drpc", chain="ronin", region="us-east"}[1h]) - - region: eu-west - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="drpc", chain="ronin", region="eu-west"}) - series: avg_over_time(rpc_latency_milliseconds{provider="drpc", chain="ronin", region="eu-west"}[1h]) - - region: ap-southeast - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="drpc", chain="ronin", region="sgp"}) - series: avg_over_time(rpc_latency_milliseconds{provider="drpc", chain="ronin", region="sgp"}[1h]) - - slug: tenderly name: Tenderly Gateway tag: Tenderly Gateway public RPC for Ronin diff --git a/benchmarks/sei-rpc.yml b/benchmarks/sei-rpc.yml index 933eaf48..97776621 100644 --- a/benchmarks/sei-rpc.yml +++ b/benchmarks/sei-rpc.yml @@ -4,7 +4,7 @@ slug: sei-rpc number: "108" title: Fastest free Sei RPC, live no-key EVM endpoint latency seo_title: "Fastest free Sei RPC 2026" -seo_description: "{{best_name}} leads free Sei RPC at {{best_p50}} (`eth_getBlockByNumber` p50, 24h). 4 no-key providers measured every 60s from 3 regions." +seo_description: "{{best_name}} leads free Sei RPC at {{best_p50}} (`eth_getBlockByNumber` p50, 24h). 3 no-key providers measured every 60s from 3 regions." subtitle: HTTP round-trip latency for the `eth_getBlockByNumber(\"latest\", false)` method against every free, no-key public Sei EVM endpoint, audited every 60 seconds from 3 regions. category: RPCs @@ -14,14 +14,14 @@ unit: ms higher_is_better: false seo_intro: | - Sei is a Cosmos SDK L1 (chain 1329) with a parallel-execution EVM layer bolted onto Tendermint consensus, launched by Sei Labs and positioned as a high-throughput trading chain. Standard EVM JSON-RPC on the EVM side; the Cosmos JSON-RPC would need a separate `Kind:"cosmos"` cluster entry as we did for Osmosis. Excluded by the launch audit: PublicNode (no `sei-evm` subdomain), Tenderly public (no `sei` route), BlockPI (`Apikey not found`), MeowRPC (defunct), AllThatNode + Basement Nodes + Node75 (host unresolvable or key-gated). The 2026-07-03 sweep had originally excluded Sei because dRPC cached `eth_blockNumber`; the re-audit on 2026-07-26 confirms dRPC no longer caches and Thirdweb + Stakeme have come online, restoring 4 clean keyless providers. Every listed provider live-verified with 4 consecutive keyless probes at re-launch. + Sei is a Cosmos SDK L1 (chain 1329) with a parallel-execution EVM layer bolted onto Tendermint consensus, launched by Sei Labs and positioned as a high-throughput trading chain. Standard EVM JSON-RPC on the EVM side; the Cosmos JSON-RPC would need a separate `Kind:"cosmos"` cluster entry as we did for Osmosis. 3 clean keyless providers measured: sei-official, Thirdweb, Stakeme. Excluded: dRPC (500 persistent internal error after 3 consecutive attempts), PublicNode (no `sei-evm` subdomain), Tenderly public (no `sei` route), BlockPI (`Apikey not found`), MeowRPC (defunct), AllThatNode + Basement Nodes + Node75 (host unresolvable or key-gated). abstract: | Per-chain member of the RPC latency cluster, extended to Sei. We measure the round-trip latency of a single, identical JSON-RPC call (`eth_getBlockByNumber(\"latest\", false)`) against every no-key public - Sei endpoint that sustains continuous probing, 4 providers - at launch, every 60 seconds, from us-east, eu-west and Singapore. The + Sei endpoint that sustains continuous probing, 3 providers, + every 60 seconds, from us-east, eu-west and Singapore. The harness classifies every response (ok / http_err / jsonrpc_err / stale / timeout) with a Sei-scaled staleness gap (25 blocks at Sei's ~1 s block time). The cross-chain view @@ -35,16 +35,16 @@ methodology: - "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 with a parsable hex block number), `http_err`, `jsonrpc_err` (HTTP 200 carrying an error body), `stale` (more than 25 blocks behind the cross-provider tip), `timeout`. Latency without reliability is a misleading ranking signal." - "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, cadence and exclusion rules apply on every chain." - - "Chain scope: every query on this page is pinned to `chain=\"sei\"`. Provider coverage at launch: 4 no-key endpoints." + - "Chain scope: every query on this page is pinned to `chain=\"sei\"`. Provider coverage: 3 no-key endpoints. dRPC removed (500 persistent internal error)." findings: - - "{{best_name}} currently leads free Sei RPC at {{best_p50}} (`eth_getBlockByNumber` p50, 24h) across 4 measured providers." + - "{{best_name}} currently leads free Sei RPC at {{best_p50}} (`eth_getBlockByNumber` p50, 24h) across 3 measured providers." faq: - q: "What is the fastest free Sei RPC right now?" - a: "{{best_name}} currently leads at {{best_p50}} (`eth_getBlockByNumber(\"latest\", false)` p50 over the last 24h), measured against 4 no-key providers probed every 60 seconds from us-east, eu-west and Singapore. The leaderboard re-sorts continuously against fresh Prometheus samples. Use the region tabs to see the leader from the origin closest to your deployment." + a: "{{best_name}} currently leads at {{best_p50}} (`eth_getBlockByNumber(\"latest\", false)` p50 over the last 24h), measured against 3 no-key providers probed every 60 seconds from us-east, eu-west and Singapore. The leaderboard re-sorts continuously against fresh Prometheus samples. Use the region tabs to see the leader from the origin closest to your deployment." - q: "Which Sei RPCs work without an API key?" - a: "4 endpoints sustain continuous keyless probing at launch. Every listed endpoint was live-verified with a `eth_getBlockByNumber` POST returning a parsable response before inclusion. See the methodology section for the endpoints that were audited and excluded." + a: "3 endpoints sustain continuous keyless probing: Sei Labs official, Thirdweb, and Stakeme. dRPC was removed after persistent 500 internal errors. Every listed endpoint was live-verified with a `eth_getBlockByNumber` POST returning a parsable response before inclusion." - q: "Does the fastest Sei RPC change by region?" a: "Often. Public infra concentrates in specific regions; a gateway that wins from Amsterdam can lose from Singapore by multiples. The region tabs at the top of the page re-scope every number to a single origin; pick the one closest to where your requests originate." - q: "How is Sei RPC latency measured here, technically?" @@ -89,29 +89,6 @@ providers: p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="sei-official", chain="sei", region="sgp"}) series: avg_over_time(rpc_latency_milliseconds{provider="sei-official", chain="sei", region="sgp"}[1h]) - - slug: drpc - name: dRPC - tag: dRPC gateway routing to Sei EVM node pool - formula: "50th percentile over 24h of client-side round-trip latency (ms) for a single `eth_getBlockByNumber(\"latest\", false)` POST sent every 60s from 3 regions (us-east + eu-west + sgp) to dRPC's no-key sei RPC endpoint." - queries: - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="drpc", chain="sei"}) - p90: avg(ocb:rpc_latency_milliseconds:p90_24h{provider="drpc", chain="sei"}) - p99: avg(ocb:rpc_latency_milliseconds:p99_24h{provider="drpc", chain="sei"}) - mean: avg(ocb:rpc_latency_milliseconds:mean_24h{provider="drpc", chain="sei"}) - success: sum(ocb:rpc_call:ok_rate_24h{provider="drpc", chain="sei"}) / sum(ocb:rpc_call:rate_24h{provider="drpc", chain="sei"}) - sample_size: sum(ocb:rpc_call:increase_24h{provider="drpc", chain="sei"}) - series: avg(avg_over_time(rpc_latency_milliseconds{provider="drpc", chain="sei"}[1h])) - regions: - - region: us-east - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="drpc", chain="sei", region="us-east"}) - series: avg_over_time(rpc_latency_milliseconds{provider="drpc", chain="sei", region="us-east"}[1h]) - - region: eu-west - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="drpc", chain="sei", region="eu-west"}) - series: avg_over_time(rpc_latency_milliseconds{provider="drpc", chain="sei", region="eu-west"}[1h]) - - region: ap-southeast - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="drpc", chain="sei", region="sgp"}) - series: avg_over_time(rpc_latency_milliseconds{provider="drpc", chain="sei", region="sgp"}[1h]) - - slug: thirdweb name: Thirdweb tag: Thirdweb public RPC gateway for Sei EVM diff --git a/benchmarks/songbird-rpc.yml b/benchmarks/songbird-rpc.yml index d8207bac..cf80f9c5 100644 --- a/benchmarks/songbird-rpc.yml +++ b/benchmarks/songbird-rpc.yml @@ -4,7 +4,7 @@ slug: songbird-rpc number: "192" title: Fastest free Songbird RPC, live no-key endpoint latency seo_title: "Fastest free Songbird RPC 2026" -seo_description: "{{best_name}} leads free Songbird RPC at {{best_p50}} (eth_getBlockByNumber p50, 24h). 4 no-key providers measured every 60s from 3 regions." +seo_description: "{{best_name}} leads free Songbird RPC at {{best_p50}} (eth_getBlockByNumber p50, 24h). 1 no-key provider measured every 60s from 3 regions." subtitle: HTTP round-trip latency for eth_getBlockByNumber against every free, no-key public Songbird EVM endpoint, audited every 60 seconds from 3 regions. category: RPCs @@ -14,13 +14,13 @@ unit: ms higher_is_better: false seo_intro: | - Songbird (chain 19, SGB) is Flare Network's canary network, a production EVM-compatible chain used to test and validate Flare's FTSO oracle system before mainnet deployment. The Flare Foundation operates four keyless endpoints: the official Songbird gateway (songbird-api.flare.network/ext/C/rpc), dRPC (songbird.drpc.org), Blast API, and the community node sgb.ftso.com.au. + Songbird (chain 19, SGB) is Flare Network's canary network, a production EVM-compatible chain used to test and validate Flare's FTSO oracle system before mainnet deployment. One keyless endpoint is probed continuously: the official Songbird gateway (songbird-api.flare.network/ext/C/rpc). The FTSO AU community node (songbird.rpc.ftso.au) was removed after DNS went dead. abstract: | Per-chain member of the RPC latency cluster, extended to Songbird. We measure the round-trip latency of a single, identical RPC call - (`eth_getBlockByNumber`) against every no-key public Songbird endpoint - that sustains continuous probing, 4 providers at launch, + (`eth_getBlockByNumber`) against the no-key public Songbird endpoint + that sustains continuous probing (1 provider: Flare Foundation official), every 60 seconds, from us-east, eu-west and Singapore. The cross-chain view lives on the parent `rpc-capabilities` benchmark; this page is the Songbird-scoped answer with per-region breakdowns as a first-class dimension. @@ -31,16 +31,16 @@ methodology: - "Latency: client-side round-trip delta in milliseconds, exposed as both a gauge and a histogram (buckets 50 ms to 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`, `stale` (more than 20 blocks behind the cross-provider tip), `timeout`." - "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, cadence and exclusion rules apply on every chain." - - "Chain scope: every query on this page is pinned to `chain=\"songbird\"`. Provider coverage at launch: 4 no-key endpoints." + - "Chain scope: every query on this page is pinned to `chain=\"songbird\"`. Provider coverage: 1 no-key endpoint (Flare Foundation official). FTSO AU removed after DNS went dead." findings: - - "{{best_name}} currently leads free Songbird RPC at {{best_p50}} (`eth_getBlockByNumber` p50, 24h) across 4 measured providers." + - "{{best_name}} currently leads free Songbird RPC at {{best_p50}} (`eth_getBlockByNumber` p50, 24h) — 1 measured provider." faq: - q: "What is the fastest free Songbird RPC right now?" - a: "{{best_name}} currently leads at {{best_p50}} (`eth_getBlockByNumber` p50 over the last 24h), measured against 4 no-key providers probed every 60 seconds from us-east, eu-west and Singapore." + a: "{{best_name}} currently leads at {{best_p50}} (`eth_getBlockByNumber` p50 over the last 24h), measured against 1 no-key provider probed every 60 seconds from us-east, eu-west and Singapore." - q: "Which Songbird RPCs work without an API key?" - a: "4 endpoints sustain continuous keyless probing: Flare Foundation official, dRPC, Blast API, and ftso.com.au community node. Every endpoint was live-verified before inclusion." + a: "1 endpoint sustains continuous keyless probing: Flare Foundation official (songbird-api.flare.network/ext/C/rpc). The FTSO AU community node was removed after its DNS went dead." - q: "Does the fastest Songbird RPC change by region?" a: "Often. The region tabs at the top of the page re-scope every number to a single origin." - q: "How is Songbird RPC latency measured here?" @@ -85,48 +85,3 @@ providers: p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="flare-official", chain="songbird", region="sgp"}) series: avg_over_time(rpc_latency_milliseconds{provider="flare-official", chain="songbird", region="sgp"}[1h]) - - slug: drpc - name: dRPC - tag: dRPC public gateway for Songbird canary network - formula: "50th percentile over 24h of client-side round-trip latency (ms) for a single `eth_getBlockByNumber` POST sent every 60s from 3 regions to dRPC's no-key Songbird endpoint." - queries: - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="drpc", chain="songbird"}) - p90: avg(ocb:rpc_latency_milliseconds:p90_24h{provider="drpc", chain="songbird"}) - p99: avg(ocb:rpc_latency_milliseconds:p99_24h{provider="drpc", chain="songbird"}) - mean: avg(ocb:rpc_latency_milliseconds:mean_24h{provider="drpc", chain="songbird"}) - success: sum(ocb:rpc_call:ok_rate_24h{provider="drpc", chain="songbird"}) / sum(ocb:rpc_call:rate_24h{provider="drpc", chain="songbird"}) - sample_size: sum(ocb:rpc_call:increase_24h{provider="drpc", chain="songbird"}) - series: avg(avg_over_time(rpc_latency_milliseconds{provider="drpc", chain="songbird"}[1h])) - regions: - - region: us-east - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="drpc", chain="songbird", region="us-east"}) - series: avg_over_time(rpc_latency_milliseconds{provider="drpc", chain="songbird", region="us-east"}[1h]) - - region: eu-west - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="drpc", chain="songbird", region="eu-west"}) - series: avg_over_time(rpc_latency_milliseconds{provider="drpc", chain="songbird", region="eu-west"}[1h]) - - region: ap-southeast - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="drpc", chain="songbird", region="sgp"}) - series: avg_over_time(rpc_latency_milliseconds{provider="drpc", chain="songbird", region="sgp"}[1h]) - - - slug: ftso-au - name: FTSO AU - tag: ftso.com.au community Songbird RPC node - formula: "50th percentile over 24h of client-side round-trip latency (ms) for a single `eth_getBlockByNumber` POST sent every 60s from 3 regions to ftso.com.au's no-key Songbird endpoint." - queries: - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="ftso-au", chain="songbird"}) - p90: avg(ocb:rpc_latency_milliseconds:p90_24h{provider="ftso-au", chain="songbird"}) - p99: avg(ocb:rpc_latency_milliseconds:p99_24h{provider="ftso-au", chain="songbird"}) - mean: avg(ocb:rpc_latency_milliseconds:mean_24h{provider="ftso-au", chain="songbird"}) - success: sum(ocb:rpc_call:ok_rate_24h{provider="ftso-au", chain="songbird"}) / sum(ocb:rpc_call:rate_24h{provider="ftso-au", chain="songbird"}) - sample_size: sum(ocb:rpc_call:increase_24h{provider="ftso-au", chain="songbird"}) - series: avg(avg_over_time(rpc_latency_milliseconds{provider="ftso-au", chain="songbird"}[1h])) - regions: - - region: us-east - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="ftso-au", chain="songbird", region="us-east"}) - series: avg_over_time(rpc_latency_milliseconds{provider="ftso-au", chain="songbird", region="us-east"}[1h]) - - region: eu-west - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="ftso-au", chain="songbird", region="eu-west"}) - series: avg_over_time(rpc_latency_milliseconds{provider="ftso-au", chain="songbird", region="eu-west"}[1h]) - - region: ap-southeast - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="ftso-au", chain="songbird", region="sgp"}) - series: avg_over_time(rpc_latency_milliseconds{provider="ftso-au", chain="songbird", region="sgp"}[1h]) diff --git a/benchmarks/telos-rpc.yml b/benchmarks/telos-rpc.yml index 00c3d939..78885aee 100644 --- a/benchmarks/telos-rpc.yml +++ b/benchmarks/telos-rpc.yml @@ -4,7 +4,7 @@ slug: telos-rpc number: "195" title: Fastest free Telos EVM RPC, live no-key endpoint latency seo_title: "Fastest free Telos EVM RPC 2026" -seo_description: "{{best_name}} leads free Telos EVM RPC at {{best_p50}} (eth_getBlockByNumber p50, 24h). 3 no-key providers measured every 60s from 3 regions." +seo_description: "{{best_name}} leads free Telos EVM RPC at {{best_p50}} (eth_getBlockByNumber p50, 24h). 1 no-key provider measured every 60s from 3 regions." subtitle: HTTP round-trip latency for eth_getBlockByNumber against every free, no-key public Telos EVM endpoint, audited every 60 seconds from 3 regions. category: RPCs @@ -14,13 +14,13 @@ unit: ms higher_is_better: false seo_intro: | - Telos EVM (chain 40) is a high-performance EVM-compatible blockchain with sub-0.5 second block times, TLOS as the gas token, and a carbon-neutral operational commitment. One of the longest-running EVM-compatible chains, live since 2021. Three keyless endpoints are probed continuously: Telos Foundation official (mainnet.telos.net/evm), dRPC (telos.drpc.org), and Blast API. + Telos EVM (chain 40) is a high-performance EVM-compatible blockchain with sub-0.5 second block times, TLOS as the gas token, and a carbon-neutral operational commitment. One of the longest-running EVM-compatible chains, live since 2021. One keyless endpoint is probed continuously: dRPC (telos.drpc.org). The Telos Foundation official endpoint returned 404 and has been removed. abstract: | Per-chain member of the RPC latency cluster, extended to Telos EVM. We measure the round-trip latency of a single, identical RPC call - (`eth_getBlockByNumber`) against every no-key public Telos EVM endpoint - that sustains continuous probing, 3 providers at launch, + (`eth_getBlockByNumber`) against the no-key public Telos EVM endpoint + that sustains continuous probing (1 provider: dRPC), every 60 seconds, from us-east, eu-west and Singapore. The cross-chain view lives on the parent `rpc-capabilities` benchmark; this page is the Telos-scoped answer with per-region breakdowns as a first-class dimension. @@ -31,16 +31,16 @@ methodology: - "Latency: client-side round-trip delta in milliseconds, exposed as both a gauge and a histogram (buckets 50 ms to 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`, `stale` (more than 20 blocks behind the cross-provider tip), `timeout`." - "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, cadence and exclusion rules apply on every chain." - - "Chain scope: every query on this page is pinned to `chain=\"telos\"`. Provider coverage at launch: 3 no-key endpoints." + - "Chain scope: every query on this page is pinned to `chain=\"telos\"`. Provider coverage: 1 no-key endpoint (dRPC). Telos Foundation official returned 404 and has been removed." findings: - - "{{best_name}} currently leads free Telos EVM RPC at {{best_p50}} (`eth_getBlockByNumber` p50, 24h) across 3 measured providers." + - "{{best_name}} currently leads free Telos EVM RPC at {{best_p50}} (`eth_getBlockByNumber` p50, 24h) — 1 measured provider." faq: - q: "What is the fastest free Telos EVM RPC right now?" - a: "{{best_name}} currently leads at {{best_p50}} (`eth_getBlockByNumber` p50 over the last 24h), measured against 3 no-key providers probed every 60 seconds from us-east, eu-west and Singapore." + a: "{{best_name}} currently leads at {{best_p50}} (`eth_getBlockByNumber` p50 over the last 24h), measured against 1 no-key provider probed every 60 seconds from us-east, eu-west and Singapore." - q: "Which Telos EVM RPCs work without an API key?" - a: "3 endpoints sustain continuous keyless probing: Telos Foundation official, dRPC, and Blast API. Every endpoint was live-verified before inclusion." + a: "1 endpoint sustains continuous keyless probing: dRPC (telos.drpc.org). The Telos Foundation official endpoint (mainnet.telos.net/evm) returned 404 and has been removed." - q: "Does the fastest Telos RPC change by region?" a: "Often. The region tabs at the top of the page re-scope every number to a single origin." - q: "How is Telos EVM RPC latency measured here?" @@ -62,29 +62,6 @@ dimensions: - { value: sgp, label: Singapore } providers: - - slug: telos-official - name: Telos Foundation - tag: Telos Foundation official public EVM RPC - formula: "50th percentile over 24h of client-side round-trip latency (ms) for a single `eth_getBlockByNumber` POST sent every 60s from 3 regions to Telos Foundation's no-key endpoint." - queries: - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="telos-official", chain="telos"}) - p90: avg(ocb:rpc_latency_milliseconds:p90_24h{provider="telos-official", chain="telos"}) - p99: avg(ocb:rpc_latency_milliseconds:p99_24h{provider="telos-official", chain="telos"}) - mean: avg(ocb:rpc_latency_milliseconds:mean_24h{provider="telos-official", chain="telos"}) - success: sum(ocb:rpc_call:ok_rate_24h{provider="telos-official", chain="telos"}) / sum(ocb:rpc_call:rate_24h{provider="telos-official", chain="telos"}) - sample_size: sum(ocb:rpc_call:increase_24h{provider="telos-official", chain="telos"}) - series: avg(avg_over_time(rpc_latency_milliseconds{provider="telos-official", chain="telos"}[1h])) - regions: - - region: us-east - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="telos-official", chain="telos", region="us-east"}) - series: avg_over_time(rpc_latency_milliseconds{provider="telos-official", chain="telos", region="us-east"}[1h]) - - region: eu-west - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="telos-official", chain="telos", region="eu-west"}) - series: avg_over_time(rpc_latency_milliseconds{provider="telos-official", chain="telos", region="eu-west"}[1h]) - - region: ap-southeast - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="telos-official", chain="telos", region="sgp"}) - series: avg_over_time(rpc_latency_milliseconds{provider="telos-official", chain="telos", region="sgp"}[1h]) - - slug: drpc name: dRPC tag: dRPC public gateway for Telos EVM diff --git a/benchmarks/tron-rpc.yml b/benchmarks/tron-rpc.yml index 627b2521..98ff4587 100644 --- a/benchmarks/tron-rpc.yml +++ b/benchmarks/tron-rpc.yml @@ -4,7 +4,7 @@ slug: tron-rpc number: "093" title: Fastest free TRON RPC, live no-key JSON-RPC endpoint latency seo_title: "Fastest free TRON RPC 2026" -seo_description: "{{best_name}} leads free TRON RPC at {{best_p50}} (eth_getBlockByNumber p50, 24h). 3 no-key JSON-RPC-compat providers measured every 60s from 3 regions." +seo_description: "{{best_name}} leads free TRON RPC at {{best_p50}} (eth_getBlockByNumber p50, 24h). 2 no-key JSON-RPC-compat providers measured every 60s from 3 regions." subtitle: HTTP round-trip latency for `eth_getBlockByNumber("latest", false)` against every free, no-key public TRON JSON-RPC-compatible endpoint, audited every 60 seconds from 3 regions. category: RPCs @@ -20,8 +20,9 @@ seo_intro: | Ethereum method names (`eth_blockNumber`, `eth_getBlockByNumber`, `eth_getBalance`). This bench measures the JSON-RPC surface because that is the path every TRON-compatible EVM wallet, TronWeb bridge - and cross-chain bot integrates against. Provider cohort at launch: - TronGrid (Tron Foundation official), dRPC and PublicNode / Allnodes. + and cross-chain bot integrates against. Provider cohort: + TronGrid (Tron Foundation official) and PublicNode / Allnodes. + dRPC was removed after the TRON JSON-RPC method became unavailable. Ankr's JSON-RPC path is keyless in branding but rejected our probes with `API key is not allowed to access blockchain`; Chainstack, NOWNodes, GetBlock, Tatum and BlockPI require API keys on the TRON @@ -36,7 +37,7 @@ abstract: | single, identical JSON-RPC call (`eth_getBlockByNumber("latest", false)`) against every no-key public TRON JSON-RPC endpoint that sustains continuous probing, - 3 providers at launch, every 60 seconds, from us-east, eu-west and + 2 providers, every 60 seconds, from us-east, eu-west and Singapore. The harness classifies every response (ok / http_err / jsonrpc_err / stale / timeout) with the EVM staleness gap tuned for TRON's ~3 s block time (25 blocks ≈ 75 @@ -51,22 +52,21 @@ methodology: - "Call-result classification: `ok` (HTTP 200 + non-empty result with a parsable hex block number), `http_err`, `jsonrpc_err` (HTTP 200 carrying an error body), `stale` (more than 25 blocks behind the cross-provider tip, roughly 75 seconds at TRON's ~3 s block time), `timeout`. Latency without reliability is a misleading ranking signal." - "Surface scope: only the EVM-compatible JSON-RPC surface (`/jsonrpc` endpoints) is measured, because that is the path every cross-chain wallet, TronWeb / EVM bridge and arbitrage bot integrates against. The native TRON REST API (`wallet/getnowblock`, `wallet/triggersmartcontract`) is out of scope for this bench; a chain-specific `tron-rest` bench can be added later when there is clear demand from integrators using TronWeb directly." - "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, cadence and exclusion rules apply on every chain." - - "Chain scope: every query on this page is pinned to `chain=\"tron\"`. Provider coverage at launch: 3 no-key JSON-RPC endpoints (TronGrid, dRPC, PublicNode). The TRON JSON-RPC provider market is materially smaller than the EVM one; most TRON infra vendors expose only the native TRON REST API keyless, and gate the JSON-RPC path behind an API key." - - "Excluded by the launch audit: Ankr (`rpc.ankr.com/tron_jsonrpc` returned `API key is not allowed to access blockchain` without a key), Chainstack / NOWNodes / GetBlock / Tatum / BlockPI (all require an API key on the TRON JSON-RPC path even though branded as public), OnFinality + Blast API + AllThatNode (no public TRON JSON-RPC gateway), Tron Foundation's `rpc.trongrid.io` (DNS not resolving; the correct official host is `api.trongrid.io/jsonrpc`)." + - "Chain scope: every query on this page is pinned to `chain=\"tron\"`. Provider coverage: 2 no-key JSON-RPC endpoints (TronGrid, PublicNode). dRPC removed (method not available). The TRON JSON-RPC provider market is materially smaller than the EVM one; most TRON infra vendors expose only the native TRON REST API keyless, and gate the JSON-RPC path behind an API key." + - "Excluded by the launch audit: dRPC (method not available on TRON JSON-RPC path), Ankr (`rpc.ankr.com/tron_jsonrpc` returned `API key is not allowed to access blockchain` without a key), Chainstack / NOWNodes / GetBlock / Tatum / BlockPI (all require an API key on the TRON JSON-RPC path even though branded as public), OnFinality + Blast API + AllThatNode (no public TRON JSON-RPC gateway), Tron Foundation's `rpc.trongrid.io` (DNS not resolving; the correct official host is `api.trongrid.io/jsonrpc`)." findings: - - "{{best_name}} currently leads free TRON RPC at {{best_p50}} (eth_getBlockByNumber p50, 24h) across 3 measured providers." + - "{{best_name}} currently leads free TRON RPC at {{best_p50}} (eth_getBlockByNumber p50, 24h) across 2 measured providers." - "{{name:trongrid}} is Tron Foundation's official public API gateway; the bench measures the same `api.trongrid.io/jsonrpc` endpoint that every TronWeb + tronbox integrator points at first. Latency here reflects what a keyless TRON-EVM integrator sees end-to-end." - - "{{name:drpc}} routes TRON JSON-RPC through its multi-provider load balancer; latency here is a good proxy for what a cross-chain integrator (multi-chain wallets, bridges) can expect from a load-balanced setup." - "{{name:publicnode}} extends its universal multi-chain footprint to TRON JSON-RPC without a keyed path; the reliability column matters as much as p50 since TRON JSON-RPC compat is a thin layer over the native TRON API and can drift under load." faq: - q: "What is the fastest free TRON RPC right now?" - a: "{{best_name}} currently leads at {{best_p50}} (eth_getBlockByNumber p50 over the last 24h), measured against 3 no-key JSON-RPC providers probed every 60 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." + a: "{{best_name}} currently leads at {{best_p50}} (eth_getBlockByNumber p50 over the last 24h), measured against 2 no-key JSON-RPC providers probed every 60 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 TRON RPCs work without an API key?" - a: "Three JSON-RPC endpoints sustain continuous keyless probing at launch: TronGrid (`api.trongrid.io/jsonrpc`), dRPC (`tron.drpc.org`) and PublicNode / Allnodes (`tron.publicnode.com/jsonrpc`). Every listed endpoint was live-verified with an `eth_getBlockByNumber` POST returning a parsable hex head before inclusion. Excluded by the audit: Ankr's TRON JSON-RPC path rejects keyless probes with `API key is not allowed to access blockchain`; Chainstack, NOWNodes, GetBlock, Tatum and BlockPI require an API key on the TRON JSON-RPC path even though branded as public; OnFinality, Blast API and AllThatNode have no public TRON JSON-RPC gateway. The TRON JSON-RPC provider market is materially smaller than the EVM one , most TRON infra vendors expose only the native TRON REST API keyless." - - q: "Why only 3 providers when other RPC benches have 5+?" - a: "TRON's JSON-RPC compat layer is thinner than the EVM one, and most infra vendors gate it behind an API key even when their native TRON REST endpoints are keyless. The 3 providers on this page are all keyless endpoints that responded correctly to a plain POST during the launch audit; when other vendors open a keyless JSON-RPC path we will add them. Latency and reliability numbers here are still meaningful because the 3 providers span a Foundation-official endpoint, a multi-provider aggregator (dRPC) and a universal multi-chain gateway (PublicNode) , the three infra archetypes an integrator would compare against each other anyway." + a: "Two JSON-RPC endpoints sustain continuous keyless probing: TronGrid (`api.trongrid.io/jsonrpc`) and PublicNode / Allnodes (`tron.publicnode.com/jsonrpc`). dRPC was removed after the TRON JSON-RPC method became unavailable. Ankr's TRON JSON-RPC path rejects keyless probes with `API key is not allowed to access blockchain`; Chainstack, NOWNodes, GetBlock, Tatum and BlockPI require an API key on the TRON JSON-RPC path even though branded as public; OnFinality, Blast API and AllThatNode have no public TRON JSON-RPC gateway." + - q: "Why only 2 providers when other RPC benches have 5+?" + a: "TRON's JSON-RPC compat layer is thinner than the EVM one, and most infra vendors gate it behind an API key even when their native TRON REST endpoints are keyless. dRPC was removed after the TRON JSON-RPC method became unavailable. The 2 providers on this page are all keyless endpoints that responded correctly to a plain POST; when other vendors open a keyless JSON-RPC path we will add them." - q: "Does this bench cover the native TRON REST API (`wallet/getnowblock`)?" a: "No. This bench scopes only the EVM-compatible JSON-RPC surface (`/jsonrpc` endpoints), because that is the path cross-chain wallets, TronWeb bridges, and arbitrage bots integrate against. The native TRON REST API surface (used by TronWeb + TronBox directly) has different method semantics (address encoding, resource model, `wallet/*` vs `walletsolidity/*` paths) and would need a chain-specific probe added. That will land as a separate `tron-rest` bench when the demand from integrators using TronWeb directly is clear." - q: "Does the fastest TRON RPC change by region?" @@ -116,29 +116,6 @@ providers: p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="trongrid", chain="tron", region="sgp"}) series: avg_over_time(rpc_latency_milliseconds{provider="trongrid", chain="tron", region="sgp"}[1h]) - - slug: drpc - name: dRPC - tag: Multi-provider RPC load balancer, edge-close routing - formula: "50th percentile over 24h of client-side round-trip latency (ms) for a single `eth_getBlockByNumber(\"latest\", false)` POST sent every 60s from 3 regions (us-east + eu-west + sgp) to dRPC's no-key TRON JSON-RPC endpoint." - queries: - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="drpc", chain="tron"}) - p90: avg(ocb:rpc_latency_milliseconds:p90_24h{provider="drpc", chain="tron"}) - p99: avg(ocb:rpc_latency_milliseconds:p99_24h{provider="drpc", chain="tron"}) - mean: avg(ocb:rpc_latency_milliseconds:mean_24h{provider="drpc", chain="tron"}) - success: sum(ocb:rpc_call:ok_rate_24h{provider="drpc", chain="tron"}) / sum(ocb:rpc_call:rate_24h{provider="drpc", chain="tron"}) - sample_size: sum(ocb:rpc_call:increase_24h{provider="drpc", chain="tron"}) - series: avg(avg_over_time(rpc_latency_milliseconds{provider="drpc", chain="tron"}[1h])) - regions: - - region: us-east - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="drpc", chain="tron", region="us-east"}) - series: avg_over_time(rpc_latency_milliseconds{provider="drpc", chain="tron", region="us-east"}[1h]) - - region: eu-west - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="drpc", chain="tron", region="eu-west"}) - series: avg_over_time(rpc_latency_milliseconds{provider="drpc", chain="tron", region="eu-west"}[1h]) - - region: ap-southeast - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="drpc", chain="tron", region="sgp"}) - series: avg_over_time(rpc_latency_milliseconds{provider="drpc", chain="tron", region="sgp"}[1h]) - - slug: publicnode name: PublicNode tag: Allnodes-operated, 70+ chains, keyless TRON JSON-RPC path diff --git a/benchmarks/warden-rpc.yml b/benchmarks/warden-rpc.yml index 4aa2f76c..c342e0ac 100644 --- a/benchmarks/warden-rpc.yml +++ b/benchmarks/warden-rpc.yml @@ -4,7 +4,7 @@ slug: warden-rpc number: "197" title: Fastest free Warden Protocol RPC, live no-key endpoint latency seo_title: "Fastest free Warden Protocol RPC 2026" -seo_description: "{{best_name}} leads free Warden Protocol RPC at {{best_p50}} (eth_getBlockByNumber p50, 24h). 3 no-key providers measured every 60s from 3 regions." +seo_description: "{{best_name}} leads free Warden Protocol RPC at {{best_p50}} (eth_getBlockByNumber p50, 24h). 2 no-key providers measured every 60s from 3 regions." subtitle: HTTP round-trip latency for eth_getBlockByNumber against every free, no-key public Warden Protocol EVM endpoint, audited every 60 seconds from 3 regions. category: RPCs @@ -14,13 +14,13 @@ unit: ms higher_is_better: false seo_intro: | - Warden Protocol is a modular intent-based L1 for cross-chain smart contract security, built by the Qredo team with WARD as the native gas token. EVM-compatible with Cosmos SDK internals, enabling omnichain key management and intent execution via SpaceWard. Three keyless EVM endpoints are probed continuously: PublicNode (warden-evm-rpc.publicnode.com), dRPC (warden.drpc.org), and the Warden Foundation official endpoint (evm.wardenprotocol.org). + Warden Protocol is a modular intent-based L1 for cross-chain smart contract security, built by the Qredo team with WARD as the native gas token. EVM-compatible with Cosmos SDK internals, enabling omnichain key management and intent execution via SpaceWard. Two keyless EVM endpoints are probed continuously: PublicNode (warden-evm-rpc.publicnode.com) and the Warden Foundation official endpoint (evm.wardenprotocol.org). abstract: | Per-chain member of the RPC latency cluster, extended to Warden Protocol. We measure the round-trip latency of a single, identical RPC call (`eth_getBlockByNumber`) against every no-key public Warden EVM endpoint - that sustains continuous probing, 3 providers at launch, + that sustains continuous probing, 2 providers at launch, every 60 seconds, from us-east, eu-west and Singapore. The cross-chain view lives on the parent `rpc-capabilities` benchmark; this page is the Warden-scoped answer with per-region breakdowns as a first-class dimension. @@ -31,16 +31,16 @@ methodology: - "Latency: client-side round-trip delta in milliseconds, exposed as both a gauge and a histogram (buckets 50 ms to 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`, `stale` (more than 20 blocks behind the cross-provider tip), `timeout`." - "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, cadence and exclusion rules apply on every chain." - - "Chain scope: every query on this page is pinned to `chain=\"warden\"`. Provider coverage at launch: 3 no-key endpoints." + - "Chain scope: every query on this page is pinned to `chain=\"warden\"`. Provider coverage at launch: 2 no-key endpoints." findings: - - "{{best_name}} currently leads free Warden Protocol RPC at {{best_p50}} (`eth_getBlockByNumber` p50, 24h) across 3 measured providers." + - "{{best_name}} currently leads free Warden Protocol RPC at {{best_p50}} (`eth_getBlockByNumber` p50, 24h) across 2 measured providers." faq: - q: "What is the fastest free Warden Protocol RPC right now?" - a: "{{best_name}} currently leads at {{best_p50}} (`eth_getBlockByNumber` p50 over the last 24h), measured against 3 no-key providers probed every 60 seconds from us-east, eu-west and Singapore." + a: "{{best_name}} currently leads at {{best_p50}} (`eth_getBlockByNumber` p50 over the last 24h), measured against 2 no-key providers probed every 60 seconds from us-east, eu-west and Singapore." - q: "Which Warden Protocol RPCs work without an API key?" - a: "3 endpoints sustain continuous keyless probing: PublicNode, dRPC, and the Warden Foundation official endpoint. Every endpoint was live-verified before inclusion." + a: "2 endpoints sustain continuous keyless probing: PublicNode and the Warden Foundation official endpoint. Every endpoint was live-verified before inclusion." - q: "Does the fastest Warden RPC change by region?" a: "Often. The region tabs at the top of the page re-scope every number to a single origin." - q: "How is Warden Protocol RPC latency measured here?" diff --git a/benchmarks/zetachain-rpc.yml b/benchmarks/zetachain-rpc.yml index c53c320d..5c19737d 100644 --- a/benchmarks/zetachain-rpc.yml +++ b/benchmarks/zetachain-rpc.yml @@ -4,7 +4,7 @@ slug: zetachain-rpc number: "187" title: Fastest free ZetaChain RPC, live no-key endpoint latency seo_title: "Fastest free ZetaChain RPC 2026" -seo_description: "{{best_name}} leads free ZetaChain RPC at {{best_p50}} (eth_getBlockByNumber p50, 24h). 5 no-key providers measured every 60s from 3 regions." +seo_description: "{{best_name}} leads free ZetaChain RPC at {{best_p50}} (eth_getBlockByNumber p50, 24h). 1 no-key provider measured every 60s from 3 regions." subtitle: HTTP round-trip latency for eth_getBlockByNumber against every free, no-key public ZetaChain EVM endpoint, audited every 60 seconds from 3 regions. category: RPCs @@ -14,13 +14,13 @@ unit: ms higher_is_better: false seo_intro: | - ZetaChain (chain 7000) is an EVM-compatible omnichain L1 enabling native cross-chain assets (BTC, ETH, BNB) without bridges or wrapped tokens. ZETA is the gas token. Five keyless endpoints are probed continuously: dRPC, BlockPI, Thirdweb (7000.rpc.thirdweb.com), All That Node, and Blast API. + ZetaChain (chain 7000) is an EVM-compatible omnichain L1 enabling native cross-chain assets (BTC, ETH, BNB) without bridges or wrapped tokens. ZETA is the gas token. One keyless endpoint is probed continuously: Thirdweb (7000.rpc.thirdweb.com). BlockPI returned 404 and All That Node's DNS is dead. abstract: | Per-chain member of the RPC latency cluster, extended to ZetaChain. We measure the round-trip latency of a single, identical RPC call - (`eth_getBlockByNumber`) against every no-key public ZetaChain endpoint - that sustains continuous probing, 5 providers at launch, + (`eth_getBlockByNumber`) against the no-key public ZetaChain endpoint + that sustains continuous probing (1 provider: Thirdweb), every 60 seconds, from us-east, eu-west and Singapore. The cross-chain view lives on the parent `rpc-capabilities` benchmark; this page is the ZetaChain-scoped answer with per-region breakdowns as a first-class dimension. @@ -31,16 +31,16 @@ methodology: - "Latency: client-side round-trip delta in milliseconds, exposed as both a gauge and a histogram (buckets 50 ms to 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`, `stale` (more than 20 blocks behind the cross-provider tip), `timeout`." - "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, cadence and exclusion rules apply on every chain." - - "Chain scope: every query on this page is pinned to `chain=\"zetachain\"`. Provider coverage at launch: 5 no-key endpoints." + - "Chain scope: every query on this page is pinned to `chain=\"zetachain\"`. Provider coverage: 1 no-key endpoint (Thirdweb). BlockPI returned 404; AllThatNode DNS is dead." findings: - - "{{best_name}} currently leads free ZetaChain RPC at {{best_p50}} (`eth_getBlockByNumber` p50, 24h) across 5 measured providers." + - "{{best_name}} currently leads free ZetaChain RPC at {{best_p50}} (`eth_getBlockByNumber` p50, 24h) — 1 measured provider." faq: - q: "What is the fastest free ZetaChain RPC right now?" - a: "{{best_name}} currently leads at {{best_p50}} (`eth_getBlockByNumber` p50 over the last 24h), measured against 5 no-key providers probed every 60 seconds from us-east, eu-west and Singapore." + a: "{{best_name}} currently leads at {{best_p50}} (`eth_getBlockByNumber` p50 over the last 24h), measured against 1 no-key provider probed every 60 seconds from us-east, eu-west and Singapore." - q: "Which ZetaChain RPCs work without an API key?" - a: "5 endpoints sustain continuous keyless probing: dRPC, BlockPI, Thirdweb, All That Node, and Blast API. Every endpoint was live-verified before inclusion." + a: "1 endpoint sustains continuous keyless probing: Thirdweb (7000.rpc.thirdweb.com). BlockPI returned 404 during the audit; AllThatNode's DNS is dead." - q: "Does the fastest ZetaChain RPC change by region?" a: "Often. The region tabs at the top of the page re-scope every number to a single origin; pick the one closest to where your requests originate." - q: "How is ZetaChain RPC latency measured here?" @@ -62,52 +62,6 @@ dimensions: - { value: sgp, label: Singapore } providers: - - slug: drpc - name: dRPC - tag: dRPC public gateway for ZetaChain mainnet - formula: "50th percentile over 24h of client-side round-trip latency (ms) for a single `eth_getBlockByNumber` POST sent every 60s from 3 regions to dRPC's no-key ZetaChain endpoint." - queries: - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="drpc", chain="zetachain"}) - p90: avg(ocb:rpc_latency_milliseconds:p90_24h{provider="drpc", chain="zetachain"}) - p99: avg(ocb:rpc_latency_milliseconds:p99_24h{provider="drpc", chain="zetachain"}) - mean: avg(ocb:rpc_latency_milliseconds:mean_24h{provider="drpc", chain="zetachain"}) - success: sum(ocb:rpc_call:ok_rate_24h{provider="drpc", chain="zetachain"}) / sum(ocb:rpc_call:rate_24h{provider="drpc", chain="zetachain"}) - sample_size: sum(ocb:rpc_call:increase_24h{provider="drpc", chain="zetachain"}) - series: avg(avg_over_time(rpc_latency_milliseconds{provider="drpc", chain="zetachain"}[1h])) - regions: - - region: us-east - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="drpc", chain="zetachain", region="us-east"}) - series: avg_over_time(rpc_latency_milliseconds{provider="drpc", chain="zetachain", region="us-east"}[1h]) - - region: eu-west - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="drpc", chain="zetachain", region="eu-west"}) - series: avg_over_time(rpc_latency_milliseconds{provider="drpc", chain="zetachain", region="eu-west"}[1h]) - - region: ap-southeast - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="drpc", chain="zetachain", region="sgp"}) - series: avg_over_time(rpc_latency_milliseconds{provider="drpc", chain="zetachain", region="sgp"}[1h]) - - - slug: blockpi - name: BlockPI - tag: BlockPI public RPC gateway for ZetaChain - formula: "50th percentile over 24h of client-side round-trip latency (ms) for a single `eth_getBlockByNumber` POST sent every 60s from 3 regions to BlockPI's no-key ZetaChain endpoint." - queries: - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="blockpi", chain="zetachain"}) - p90: avg(ocb:rpc_latency_milliseconds:p90_24h{provider="blockpi", chain="zetachain"}) - p99: avg(ocb:rpc_latency_milliseconds:p99_24h{provider="blockpi", chain="zetachain"}) - mean: avg(ocb:rpc_latency_milliseconds:mean_24h{provider="blockpi", chain="zetachain"}) - success: sum(ocb:rpc_call:ok_rate_24h{provider="blockpi", chain="zetachain"}) / sum(ocb:rpc_call:rate_24h{provider="blockpi", chain="zetachain"}) - sample_size: sum(ocb:rpc_call:increase_24h{provider="blockpi", chain="zetachain"}) - series: avg(avg_over_time(rpc_latency_milliseconds{provider="blockpi", chain="zetachain"}[1h])) - regions: - - region: us-east - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="blockpi", chain="zetachain", region="us-east"}) - series: avg_over_time(rpc_latency_milliseconds{provider="blockpi", chain="zetachain", region="us-east"}[1h]) - - region: eu-west - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="blockpi", chain="zetachain", region="eu-west"}) - series: avg_over_time(rpc_latency_milliseconds{provider="blockpi", chain="zetachain", region="eu-west"}[1h]) - - region: ap-southeast - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="blockpi", chain="zetachain", region="sgp"}) - series: avg_over_time(rpc_latency_milliseconds{provider="blockpi", chain="zetachain", region="sgp"}[1h]) - - slug: thirdweb name: Thirdweb tag: Thirdweb chain-ID RPC gateway for ZetaChain @@ -131,25 +85,3 @@ providers: p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="thirdweb", chain="zetachain", region="sgp"}) series: avg_over_time(rpc_latency_milliseconds{provider="thirdweb", chain="zetachain", region="sgp"}[1h]) - - slug: allthatnode - name: All That Node - tag: All That Node archive-grade public gateway for ZetaChain - formula: "50th percentile over 24h of client-side round-trip latency (ms) for a single `eth_getBlockByNumber` POST sent every 60s from 3 regions to All That Node's no-key ZetaChain endpoint." - queries: - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="allthatnode", chain="zetachain"}) - p90: avg(ocb:rpc_latency_milliseconds:p90_24h{provider="allthatnode", chain="zetachain"}) - p99: avg(ocb:rpc_latency_milliseconds:p99_24h{provider="allthatnode", chain="zetachain"}) - mean: avg(ocb:rpc_latency_milliseconds:mean_24h{provider="allthatnode", chain="zetachain"}) - success: sum(ocb:rpc_call:ok_rate_24h{provider="allthatnode", chain="zetachain"}) / sum(ocb:rpc_call:rate_24h{provider="allthatnode", chain="zetachain"}) - sample_size: sum(ocb:rpc_call:increase_24h{provider="allthatnode", chain="zetachain"}) - series: avg(avg_over_time(rpc_latency_milliseconds{provider="allthatnode", chain="zetachain"}[1h])) - regions: - - region: us-east - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="allthatnode", chain="zetachain", region="us-east"}) - series: avg_over_time(rpc_latency_milliseconds{provider="allthatnode", chain="zetachain", region="us-east"}[1h]) - - region: eu-west - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="allthatnode", chain="zetachain", region="eu-west"}) - series: avg_over_time(rpc_latency_milliseconds{provider="allthatnode", chain="zetachain", region="eu-west"}[1h]) - - region: ap-southeast - p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="allthatnode", chain="zetachain", region="sgp"}) - series: avg_over_time(rpc_latency_milliseconds{provider="allthatnode", chain="zetachain", region="sgp"}[1h]) diff --git a/harnesses/rpc-capabilities/cmd/script/config.go b/harnesses/rpc-capabilities/cmd/script/config.go index 325b2daf..8075eccd 100644 --- a/harnesses/rpc-capabilities/cmd/script/config.go +++ b/harnesses/rpc-capabilities/cmd/script/config.go @@ -224,7 +224,7 @@ func chains() []Chain { {Slug: "tenderly", Name: "Tenderly Gateway", URL: envDefault("RPC_URL_MEGAETH_TENDERLY", "https://megaeth.gateway.tenderly.co")}, }, }, - // ─── Ethereum mainnet (9 providers) ──────────────────────── + // ─── Ethereum mainnet (8 providers) ──────────────────────── { Slug: "ethereum", Name: "Ethereum", @@ -233,12 +233,9 @@ func chains() []Chain { {Slug: "drpc", Name: "dRPC", URL: envDefault("RPC_URL_ETHEREUM_DRPC", "https://eth.drpc.org")}, {Slug: "meowrpc", Name: "MeowRPC", URL: envDefault("RPC_URL_ETHEREUM_MEOWRPC", "https://eth.meowrpc.com")}, {Slug: "flashbots", Name: "Flashbots Protect", URL: envDefault("RPC_URL_ETHEREUM_FLASHBOTS", "https://rpc.flashbots.net")}, - {Slug: "cloudflare", Name: "Cloudflare", URL: envDefault("RPC_URL_ETHEREUM_CLOUDFLARE", "https://cloudflare-eth.com")}, {Slug: "tenderly", Name: "Tenderly Gateway", URL: envDefault("RPC_URL_ETHEREUM_TENDERLY", "https://gateway.tenderly.co/public/mainnet")}, {Slug: "nodies", Name: "Nodies (POKT)", URL: envDefault("RPC_URL_ETHEREUM_NODIES", "https://eth-pokt.nodies.app")}, {Slug: "lava", Name: "Lava Network", URL: envDefault("RPC_URL_ETHEREUM_LAVA", "https://eth1.lava.build")}, - {Slug: "blastapi", Name: "Blast API", URL: envDefault("RPC_URL_ETHEREUM_BLASTAPI", "https://eth-mainnet.public.blastapi.io")}, - {Slug: "gatewayfm", Name: "Gateway.fm", URL: envDefault("RPC_URL_ETHEREUM_GATEWAYFM", "https://rpc.eth.gateway.fm")}, {Slug: "bloxroute", Name: "bloXroute", URL: envDefault("RPC_URL_ETHEREUM_BLOXROUTE", "https://eth.rpc.blxrbdn.com")}, }, }, @@ -516,22 +513,21 @@ func chains() []Chain { // wallet + TronWeb/EVM bridge integrates against. Providers // live-verified keyless via eth_blockNumber during launch // audit: TronGrid (api.trongrid.io/jsonrpc — Tron Foundation - // official), dRPC and PublicNode/Allnodes. Excluded by that - // sweep: Ankr (API key required despite public branding), - // Chainstack + NOWNodes + GetBlock + Tatum + BlockPI (all - // require API key on TRON JSON-RPC path), OnFinality + Blast - // API + AllThatNode (no public TRON JSON-RPC gateway). The - // TRON JSON-RPC provider market is materially smaller than - // EVM — most TRON infra vendors expose only the native TRON - // REST API keyless. Native REST API surface is out of scope - // for this cluster; a `tron-rest` bench would need a + // official), PublicNode/Allnodes. Excluded: dRPC (method not + // available on TRON JSON-RPC path), Ankr (API key required + // despite public branding), Chainstack + NOWNodes + GetBlock + + // Tatum + BlockPI (all require API key on TRON JSON-RPC path), + // OnFinality + Blast API + AllThatNode (no public TRON JSON-RPC + // gateway). The TRON JSON-RPC provider market is materially + // smaller than EVM — most TRON infra vendors expose only the + // native TRON REST API keyless. Native REST API surface is out + // of scope for this cluster; a `tron-rest` bench would need a // chain-specific probe. { Slug: "tron", Name: "TRON", Providers: []Provider{ {Slug: "trongrid", Name: "TronGrid", URL: envDefault("RPC_URL_TRON_TRONGRID", "https://api.trongrid.io/jsonrpc")}, - {Slug: "drpc", Name: "dRPC", URL: envDefault("RPC_URL_TRON_DRPC", "https://tron.drpc.org")}, {Slug: "publicnode", Name: "PublicNode", URL: envDefault("RPC_URL_TRON_PUBLICNODE", "https://tron.publicnode.com/jsonrpc")}, }, }, @@ -552,9 +548,9 @@ func chains() []Chain { }, // ─── Kaia (bench 098) — added 2026-07-24. EVM L1 formed by // Klaytn + Finschia merger. Providers live-verified keyless: - // kaia-official (public-en.node.kaia.io), drpc, thirdweb. - // Excluded: BlockPI (`Apikey not found`), Nodies (paid tier), - // Alchemy public (KAIA_MAINNET not enabled), AllThatNode + + // kaia-official (public-en.node.kaia.io). Excluded: dRPC (500 + // paid plan only), BlockPI (`Apikey not found`), Nodies (paid + // tier), Alchemy public (KAIA_MAINNET not enabled), AllThatNode + // OnFinality + Chainstack + Tatum + NowNodes (DNS-fail or key // required). { @@ -562,7 +558,6 @@ func chains() []Chain { Name: "Kaia", Providers: []Provider{ {Slug: "kaia-official", Name: "Kaia Foundation", URL: envDefault("RPC_URL_KAIA_OFFICIAL", "https://public-en.node.kaia.io")}, - {Slug: "drpc", Name: "dRPC", URL: envDefault("RPC_URL_KAIA_DRPC", "https://klaytn.drpc.org")}, }, }, // ─── Ink (bench 099) — added 2026-07-24. OP Stack rollup @@ -599,24 +594,18 @@ func chains() []Chain { }, // ─── Sei EVM (bench 108) — added 2026-07-26. Cosmos SDK L1 with // EVM parallel-execution layer (chain 1329). Native EVM JSON-RPC. - // The 2026-07-03 sweep excluded Sei because drpc cached - // eth_blockNumber leaving only 2 clean providers; re-audit on - // 2026-07-26 confirms dRPC no longer caches, and Thirdweb + - // Stakeme.pro have come online, restoring 4 clean keyless - // providers. Providers live-verified: sei-official - // (evm-rpc.sei-apis.com), drpc, thirdweb, stakeme. Excluded: - // PublicNode (no sei-evm subdomain), Tenderly public (no - // sei route), BlockPI (Apikey required), MeowRPC (defunct), - // Basement Nodes / Node75 / AllThatNode (host unresolvable - // or key-gated). Sei's dual Cosmos + EVM stack means this bench - // scopes strictly to the EVM side; the Cosmos JSON-RPC would - // need a Kind:"cosmos" entry as we did for Osmosis. + // Providers live-verified: sei-official (evm-rpc.sei-apis.com), + // thirdweb, stakeme. Excluded: dRPC (500 persistent internal error + // after 3 consecutive attempts), PublicNode (no sei-evm subdomain), + // Tenderly public (no sei route), BlockPI (Apikey required), + // MeowRPC (defunct), Basement Nodes / Node75 / AllThatNode + // (host unresolvable or key-gated). Sei's dual Cosmos + EVM stack + // means this bench scopes strictly to the EVM side. { Slug: "sei", Name: "Sei EVM", Providers: []Provider{ {Slug: "sei-official", Name: "Sei Labs", URL: envDefault("RPC_URL_SEI_OFFICIAL", "https://evm-rpc.sei-apis.com")}, - {Slug: "drpc", Name: "dRPC", URL: envDefault("RPC_URL_SEI_DRPC", "https://sei.drpc.org")}, {Slug: "thirdweb", Name: "Thirdweb", URL: envDefault("RPC_URL_SEI_THIRDWEB", "https://sei.rpc.thirdweb.com")}, {Slug: "stakeme", Name: "Stakeme", URL: envDefault("RPC_URL_SEI_STAKEME", "https://sei-evm-rpc.stakeme.pro")}, }, @@ -641,9 +630,10 @@ func chains() []Chain { }, // ─── Ronin (bench 110) — added 2026-07-26. EVM gaming L1 // (chain 2020) operated by Sky Mavis, primary home of Axie - // Infinity + Pixels + a broader gaming ecosystem. 4 clean + // Infinity + Pixels + a broader gaming ecosystem. 3 clean // keyless providers live-verified: ronin-official - // (api.roninchain.com), drpc, tenderly, thirdweb. Excluded: + // (api.roninchain.com), tenderly, thirdweb. Excluded: + // dRPC (500 persistent internal error after 3 attempts), // Ronin Tech secondary (DNS-fail), PublicNode (no ronin // subdomain), lgns.net (DNS-fail). { @@ -651,7 +641,6 @@ func chains() []Chain { Name: "Ronin", Providers: []Provider{ {Slug: "ronin-official", Name: "Sky Mavis", URL: envDefault("RPC_URL_RONIN_OFFICIAL", "https://api.roninchain.com/rpc")}, - {Slug: "drpc", Name: "dRPC", URL: envDefault("RPC_URL_RONIN_DRPC", "https://ronin.drpc.org")}, {Slug: "tenderly", Name: "Tenderly Gateway", URL: envDefault("RPC_URL_RONIN_TENDERLY", "https://ronin.gateway.tenderly.co")}, {Slug: "thirdweb", Name: "Thirdweb", URL: envDefault("RPC_URL_RONIN_THIRDWEB", "https://ronin.rpc.thirdweb.com")}, }, @@ -857,11 +846,12 @@ func chains() []Chain { {Slug: "morph-quicknode", Name: "QuickNode", URL: envDefault("RPC_URL_MORPH_QUICKNODE", "https://rpc-quicknode.morph.network")}, }, }, - // 2026-08-03 audit. Moonriver Kusama parachain (chain 1285). 4 clean + // 2026-08-03 audit. Moonriver Kusama parachain (chain 1285). 3 clean // keyless providers: moonriver-official (rpc.api.moonriver.moonbeam.network), // publicnode (moonriver-rpc.publicnode.com), onfinality - // (moonriver.api.onfinality.io/public), unitedbloc (moonriver.unitedbloc.com). - // Excluded: Ankr (key required for moonriver), drpc (no moonriver route). + // (moonriver.api.onfinality.io/public). Excluded: UnitedBloc + // (moonriver.unitedbloc.com DNS dead), Ankr (key required for + // moonriver), drpc (no moonriver route). { Slug: "moonriver", Name: "Moonriver", @@ -869,7 +859,6 @@ func chains() []Chain { {Slug: "moonriver-official", Name: "Moonbeam Foundation", URL: envDefault("RPC_URL_MOONRIVER_OFFICIAL", "https://rpc.api.moonriver.moonbeam.network")}, {Slug: "publicnode", Name: "PublicNode", URL: envDefault("RPC_URL_MOONRIVER_PUBLICNODE", "https://moonriver-rpc.publicnode.com")}, {Slug: "onfinality", Name: "OnFinality", URL: envDefault("RPC_URL_MOONRIVER_ONFINALITY", "https://moonriver.api.onfinality.io/public")}, - {Slug: "unitedbloc", Name: "UnitedBloc", URL: envDefault("RPC_URL_MOONRIVER_UNITEDBLOC", "https://moonriver.unitedbloc.com")}, }, }, // 2026-08-03 audit. Hemi BTC+ETH hybrid OP Stack L2 (chain 43111). 3 clean @@ -987,29 +976,24 @@ func chains() []Chain { {Slug: "ankr", Name: "Ankr", URL: envDefault("RPC_URL_FILECOIN_ANKR", "https://rpc.ankr.com/filecoin")}, }, }, - // 2026-08-04 wave-5. Canto EVM L1 (chain 7700). 4 keyless providers: - // canto-official (canto.gravitychain.io), drpc (canto.drpc.org), - // publicnode (canto-evm.publicnode.com), ankr (rpc.ankr.com/canto). + // 2026-08-04 wave-5. Canto EVM L1 (chain 7700). 1 keyless provider: + // canto-official (canto.gravitychain.io). Excluded: dRPC (404), + // PublicNode (404), Ankr (403 API key required). { Slug: "canto", Name: "Canto", Providers: []Provider{ {Slug: "canto-official", Name: "Canto Official", URL: envDefault("RPC_URL_CANTO_OFFICIAL", "https://canto.gravitychain.io/")}, - {Slug: "drpc", Name: "dRPC", URL: envDefault("RPC_URL_CANTO_DRPC", "https://canto.drpc.org")}, - {Slug: "publicnode", Name: "PublicNode", URL: envDefault("RPC_URL_CANTO_PUBLICNODE", "https://canto-evm.publicnode.com")}, - {Slug: "ankr", Name: "Ankr", URL: envDefault("RPC_URL_CANTO_ANKR", "https://rpc.ankr.com/canto")}, }, }, - // 2026-08-04 wave-5. Aurora EVM on NEAR Protocol (chain 1313161554). 3 keyless - // providers: aurora-official (mainnet.aurora.dev), drpc (aurora.drpc.org), - // ankr (rpc.ankr.com/aurora). + // 2026-08-04 wave-5. Aurora EVM on NEAR Protocol (chain 1313161554). 1 keyless + // provider: aurora-official (mainnet.aurora.dev). Excluded: Ankr (403 API key + // required), dRPC (403 API key required). { Slug: "aurora", Name: "Aurora", Providers: []Provider{ {Slug: "aurora-official", Name: "Aurora Labs", URL: envDefault("RPC_URL_AURORA_OFFICIAL", "https://mainnet.aurora.dev")}, - {Slug: "drpc", Name: "dRPC", URL: envDefault("RPC_URL_AURORA_DRPC", "https://aurora.drpc.org")}, - {Slug: "ankr", Name: "Ankr", URL: envDefault("RPC_URL_AURORA_ANKR", "https://rpc.ankr.com/aurora")}, }, }, // 2026-08-04 wave-5. Bitlayer Bitcoin L2 EVM (chain 200901). 3 keyless @@ -1070,25 +1054,24 @@ func chains() []Chain { {Slug: "drpc", Name: "dRPC", URL: envDefault("RPC_URL_BOBA_DRPC", "https://boba-eth.drpc.org")}, }, }, - // XDC Network — Enterprise EVM L1 (chain 50). 5 keyless providers. + // XDC Network — Enterprise EVM L1 (chain 50). 4 keyless providers. + // Excluded: dRPC (400 paid plan only). { Slug: "xdc", Name: "XDC Network", Providers: []Provider{ {Slug: "publicnode", Name: "PublicNode", URL: envDefault("RPC_URL_XDC_PUBLICNODE", "https://rpc.xdc.org")}, {Slug: "ankr", Name: "Ankr", URL: envDefault("RPC_URL_XDC_ANKR", "https://rpc.ankr.com/xdc")}, - {Slug: "drpc", Name: "dRPC", URL: envDefault("RPC_URL_XDC_DRPC", "https://xdc.drpc.org")}, {Slug: "xdc-erpc", Name: "XDC eRPC", URL: envDefault("RPC_URL_XDC_ERPC", "https://erpc.xinfin.network")}, {Slug: "xdc-org", Name: "XDC.org", URL: envDefault("RPC_URL_XDC_ORG", "https://rpc.xdc.org")}, }, }, - // Astar — Polkadot EVM parachain (chain 592). 4 keyless providers. + // Astar — Polkadot EVM parachain (chain 592). 2 keyless providers. + // Excluded: PublicNode (404), BlastAPI (DNS dead). { Slug: "astar", Name: "Astar", Providers: []Provider{ - {Slug: "publicnode", Name: "PublicNode", URL: envDefault("RPC_URL_ASTAR_PUBLICNODE", "https://astar-rpc.publicnode.com")}, - {Slug: "blastapi", Name: "BlastAPI", URL: envDefault("RPC_URL_ASTAR_BLASTAPI", "https://astar.public.blastapi.io")}, {Slug: "onfinality", Name: "OnFinality", URL: envDefault("RPC_URL_ASTAR_ONFINALITY", "https://astar.api.onfinality.io/public")}, {Slug: "1rpc", Name: "1RPC", URL: envDefault("RPC_URL_ASTAR_1RPC", "https://1rpc.io/astr")}, }, @@ -1360,28 +1343,15 @@ func chains() []Chain { {Slug: "drpc", Name: "dRPC", URL: envDefault("RPC_URL_KUSAMA_DRPC", "https://kusama.drpc.org")}, }, }, - // Hydration — Polkadot DeFi parachain (HydraDX). 5 keyless providers. - { - Slug: "hydration", - Name: "Hydration", - Kind: "polkadot", - Providers: []Provider{ - {Slug: "hydration-official", Name: "Hydration Foundation", URL: envDefault("RPC_URL_HYDRATION_OFFICIAL", "https://rpc.hydration.cloud")}, - {Slug: "dwellir", Name: "Dwellir", URL: envDefault("RPC_URL_HYDRATION_DWELLIR", "https://hydradx-rpc.dwellir.com")}, - {Slug: "helikon", Name: "Helikon", URL: envDefault("RPC_URL_HYDRATION_HELIKON", "https://rpc.helikon.io/hydradx")}, - {Slug: "dotters-network", Name: "Dotters Network", URL: envDefault("RPC_URL_HYDRATION_DOTTERS", "https://hydradx.dotters.network")}, - {Slug: "parachains-network", Name: "Parachains.network", URL: envDefault("RPC_URL_HYDRATION_PARACHAINS", "https://rpc.parachains.network/hydradx")}, - }, - }, - // ZetaChain — EVM omnichain L1 (chain 7000). 4 keyless providers. + // Hydration — Polkadot DeFi parachain (HydraDX). All providers dead + // (DNS dead or HTTP 400). Chain suspended from active probing. + // ZetaChain — EVM omnichain L1 (chain 7000). 1 keyless provider. + // Excluded: BlockPI (404), AllThatNode (DNS dead). { Slug: "zetachain", Name: "ZetaChain", Providers: []Provider{ - {Slug: "drpc", Name: "dRPC", URL: envDefault("RPC_URL_ZETACHAIN_DRPC", "https://zetachain.drpc.org")}, - {Slug: "blockpi", Name: "BlockPi", URL: envDefault("RPC_URL_ZETACHAIN_BLOCKPI", "https://zetachain.blockpi.network/v1/rpc/public")}, {Slug: "thirdweb", Name: "Thirdweb", URL: envDefault("RPC_URL_ZETACHAIN_THIRDWEB", "https://7000.rpc.thirdweb.com")}, - {Slug: "allthatnode", Name: "AllThatNode", URL: envDefault("RPC_URL_ZETACHAIN_ATN", "https://zetachain-mainnet.rpc.public.allthatnode.com")}, }, }, // HAQQ — EVM Islamic finance L1 (chain 11235). 3 keyless providers. @@ -1422,14 +1392,13 @@ func chains() []Chain { {Slug: "drpc", Name: "dRPC", URL: envDefault("RPC_URL_WEMIX_DRPC", "https://wemix.drpc.org")}, }, }, - // Songbird — Flare canary network (chain 19). 3 keyless providers. + // Songbird — Flare canary network (chain 19). 1 keyless provider. + // Excluded: ftso-au (DNS dead). { Slug: "songbird", Name: "Songbird", Providers: []Provider{ {Slug: "flare-official", Name: "Flare Foundation", URL: envDefault("RPC_URL_SONGBIRD_FLARE", "https://songbird-api.flare.network/ext/C/rpc")}, - {Slug: "drpc", Name: "dRPC", URL: envDefault("RPC_URL_SONGBIRD_DRPC", "https://songbird.drpc.org")}, - {Slug: "ftso-au", Name: "FTSO AU", URL: envDefault("RPC_URL_SONGBIRD_FTSOAU", "https://songbird.rpc.ftso.au")}, }, }, // Cronos zkEVM — zkSync-stack Cronos L2 (chain 388). 2 keyless providers. @@ -1451,12 +1420,12 @@ func chains() []Chain { {Slug: "etcmc", Name: "ETCMC", URL: envDefault("RPC_URL_ETC_ETCMC", "https://etcmc.rpc.nz")}, }, }, - // Telos EVM — High-performance EVM (chain 40). 2 keyless providers. + // Telos EVM — High-performance EVM (chain 40). 1 keyless provider. + // Excluded: telos-official (404). { Slug: "telos", Name: "Telos", Providers: []Provider{ - {Slug: "telos-official", Name: "Telos Foundation", URL: envDefault("RPC_URL_TELOS_OFFICIAL", "https://mainnet.telos.net/evm")}, {Slug: "drpc", Name: "dRPC", URL: envDefault("RPC_URL_TELOS_DRPC", "https://telos.drpc.org")}, }, },