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

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
159 changes: 159 additions & 0 deletions benchmarks/cosmos-hub-rpc.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,159 @@
# OpenChainBench. Bench № 094

slug: cosmos-hub-rpc
number: "094"
title: Fastest free Cosmos Hub RPC, live no-key Cosmos SDK endpoint latency
seo_title: "Fastest free Cosmos Hub RPC 2026"
seo_description: "{{best_name}} leads free Cosmos Hub RPC at {{best_p50}} (Tendermint `status` p50, 24h). 4 no-key providers measured every 60s from 3 regions."
subtitle: HTTP round-trip latency for the Tendermint `status` method against every free, no-key public Cosmos Hub Cosmos SDK endpoint, audited every 60 seconds from 3 regions.

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

seo_intro: |
Cosmos Hub is the original Cosmos SDK chain and the IBC hub. ATOM staking secures both Cosmos Hub itself and consumer chains via Interchain Security. Same Tendermint `status` probe used on Osmosis; every provider live-verified with 4 consecutive keyless probes at launch. `rpc.cosmos.network` returned Cloudflare 525 during the launch audit and was excluded until the Cloudflare rate limit is lifted.

abstract: |
Per-chain member of the RPC latency cluster, extended to Cosmos Hub.
We measure the round-trip latency of a single, identical JSON-RPC call
(Tendermint `status`) against every no-key public Cosmos Hub endpoint
that sustains continuous probing, 4 providers at launch,
every 60 seconds, from us-east, eu-west and Singapore. The harness
classifies every response (ok / http_err / jsonrpc_err / stale /
timeout) with a Cosmos Hub-scaled staleness gap (40 blocks at
Cosmos Hub's ~6 s block time). The cross-chain view lives
on the parent `rpc-capabilities` benchmark; this page is the
Cosmos Hub-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."
- "Payload: `{\"jsonrpc\":\"2.0\",\"id\":<rotating>,\"method\":\"status\",\"params\":[]}`. Plain HTTP POST, identical for every endpoint, no API key in any request. Non-cacheable by design: the rotating id defeats edge caches that would answer a bare head query without touching a node."
- "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 decimal `sync_info.latest_block_height`), `http_err`, `jsonrpc_err` (HTTP 200 carrying an error body), `stale` (more than 40 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=\"cosmos-hub\"`. Provider coverage at launch: 4 no-key endpoints (PublicNode, Polkachu, LavenderFive, Lava Network)."

findings:
- "{{best_name}} currently leads free Cosmos Hub RPC at {{best_p50}} (Tendermint `status` p50, 24h) across 4 measured providers."

faq:
- q: "What is the fastest free Cosmos Hub RPC right now?"
a: "{{best_name}} currently leads at {{best_p50}} (Tendermint `status` 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, 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 Cosmos Hub RPCs work without an API key?"
a: "4 endpoints sustain continuous keyless probing at launch: PublicNode, Polkachu, LavenderFive, Lava Network. Every listed endpoint was live-verified with a Tendermint `status` POST returning a parsable response before inclusion. See the methodology section for the specific endpoints that were audited and excluded."
- q: "Does the fastest Cosmos Hub 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 Cosmos Hub RPC latency measured here, technically?"
a: "One identical Tendermint `status` POST every 60 seconds against each provider from each of 3 regions, using the same plain HTTP client the rest of the RPC cluster uses. 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."

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

prometheus:
window: 24h
freshness_metric: rpc_latency_milliseconds

rank_matrix_query: avg by (provider, region) (ocb:rpc_latency_milliseconds:p50_24h{chain="cosmos-hub"})

dimensions:
region:
- { value: all, label: All regions }
- { value: us-east, label: US-East }
- { value: eu-west, label: EU-West }
- { value: sgp, label: Singapore }

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

- slug: polkachu
name: Polkachu
tag: Community Cosmos validator + public RPC network
formula: "50th percentile over 24h of client-side round-trip latency (ms) for a single Tendermint `status` POST sent every 60s from 3 regions (us-east + eu-west + sgp) to Polkachu's no-key cosmos-hub RPC endpoint."
queries:
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="polkachu", chain="cosmos-hub"})
p90: avg(ocb:rpc_latency_milliseconds:p90_24h{provider="polkachu", chain="cosmos-hub"})
p99: avg(ocb:rpc_latency_milliseconds:p99_24h{provider="polkachu", chain="cosmos-hub"})
mean: avg(ocb:rpc_latency_milliseconds:mean_24h{provider="polkachu", chain="cosmos-hub"})
success: sum(ocb:rpc_call:ok_rate_24h{provider="polkachu", chain="cosmos-hub"}) / sum(ocb:rpc_call:rate_24h{provider="polkachu", chain="cosmos-hub"})
sample_size: sum(ocb:rpc_call:increase_24h{provider="polkachu", chain="cosmos-hub"})
series: avg(avg_over_time(rpc_latency_milliseconds{provider="polkachu", chain="cosmos-hub"}[1h]))
regions:
- region: us-east
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="polkachu", chain="cosmos-hub", region="us-east"})
series: avg_over_time(rpc_latency_milliseconds{provider="polkachu", chain="cosmos-hub", region="us-east"}[1h])
- region: eu-west
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="polkachu", chain="cosmos-hub", region="eu-west"})
series: avg_over_time(rpc_latency_milliseconds{provider="polkachu", chain="cosmos-hub", region="eu-west"}[1h])
- region: ap-southeast
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="polkachu", chain="cosmos-hub", region="sgp"})
series: avg_over_time(rpc_latency_milliseconds{provider="polkachu", chain="cosmos-hub", region="sgp"}[1h])

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

- slug: lava
name: Lava Network
tag: Multi-chain RPC gateway with a no-key Cosmos Hub tier
formula: "50th percentile over 24h of client-side round-trip latency (ms) for a single Tendermint `status` POST sent every 60s from 3 regions (us-east + eu-west + sgp) to Lava Network's no-key cosmos-hub RPC endpoint."
queries:
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="lava", chain="cosmos-hub"})
p90: avg(ocb:rpc_latency_milliseconds:p90_24h{provider="lava", chain="cosmos-hub"})
p99: avg(ocb:rpc_latency_milliseconds:p99_24h{provider="lava", chain="cosmos-hub"})
mean: avg(ocb:rpc_latency_milliseconds:mean_24h{provider="lava", chain="cosmos-hub"})
success: sum(ocb:rpc_call:ok_rate_24h{provider="lava", chain="cosmos-hub"}) / sum(ocb:rpc_call:rate_24h{provider="lava", chain="cosmos-hub"})
sample_size: sum(ocb:rpc_call:increase_24h{provider="lava", chain="cosmos-hub"})
series: avg(avg_over_time(rpc_latency_milliseconds{provider="lava", chain="cosmos-hub"}[1h]))
regions:
- region: us-east
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="lava", chain="cosmos-hub", region="us-east"})
series: avg_over_time(rpc_latency_milliseconds{provider="lava", chain="cosmos-hub", region="us-east"}[1h])
- region: eu-west
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="lava", chain="cosmos-hub", region="eu-west"})
series: avg_over_time(rpc_latency_milliseconds{provider="lava", chain="cosmos-hub", region="eu-west"}[1h])
- region: ap-southeast
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="lava", chain="cosmos-hub", region="sgp"})
series: avg_over_time(rpc_latency_milliseconds{provider="lava", chain="cosmos-hub", region="sgp"}[1h])
Loading
Loading