Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
178 commits
Select commit Hold shift + click to select a range
c79087c
fix(harnesses): cap LZ/CCIP/Axelar cardinality to bench-tracked chain…
Flotapponnier Aug 28, 2026
61c8997
fix(cache): strip heavy fields from aggregate blob to pass 2MB limit …
Flotapponnier Aug 28, 2026
e36c3a5
fix: include still-open Gains positions in carry projection (#2189)
Flotapponnier Aug 29, 2026
fdfd864
fix: update Gains action names v5→v6, handle position size increases …
Flotapponnier Aug 29, 2026
fe90c0a
fix: Gains carry projection (v6 action names + still-open positions)
Flotapponnier Aug 29, 2026
0b2978a
fix: widen coin name column for long tickers (xyz:NVDA)
Flotapponnier Aug 29, 2026
db108c1
feat(rpc): add Union bench #253 (Nodes.Guru, Stake And Relax, High St…
Flotapponnier Aug 29, 2026
6877507
fix(union-rpc): remove em dashes from YAML (#2196)
Flotapponnier Aug 29, 2026
2a45697
feat(rpc): Shentu #254 + MANTRA Chain #255 (#2199)
Flotapponnier Aug 29, 2026
91faaeb
feat: Band Protocol #256 + cheqd #257 benches
Flotapponnier Aug 29, 2026
59a872a
fix: bench-blob revalidate 300s to fix perp ISR conflict (#2206)
Flotapponnier Aug 29, 2026
128e575
fix(fee-compare): clearer Gains labels — Position size + vault fee (#…
Flotapponnier Aug 29, 2026
02a01df
fix(fee-compare): total position value + inline vault fee explanation…
Flotapponnier Aug 29, 2026
46533b3
fix(fee-compare): remove vault fee — carry fees settled per-action, n…
Flotapponnier Aug 29, 2026
1de4e80
feat(rpc): ICON bench #258 (#2210)
Flotapponnier Aug 30, 2026
410fb2d
merge main into dev, keep ICON bench additions
Flotapponnier Aug 30, 2026
fb90b3b
fix(rpc): rewrite bench YAMLs 256-258 with proper SpecSchema format
Flotapponnier Aug 30, 2026
35bd243
merge main, keep proper SpecSchema icon-rpc.yml
Flotapponnier Aug 30, 2026
a2311fd
fix: show signed HL funding projection, rename Volume to Total positi…
Flotapponnier Aug 30, 2026
6aa8d84
fix: Gains position reconstruction for HL funding projection (#2213)
Flotapponnier Aug 30, 2026
b48c980
fix: 1yr Gains lookback for accurate HL funding projection (#2214)
Flotapponnier Aug 30, 2026
990da13
feat: apples-to-apples fee comparison (HL-comparable coins only)
Flotapponnier Aug 30, 2026
16e8d86
fix: HL funding projection accuracy + equivFee + sort + coin filter
Flotapponnier Aug 30, 2026
ab9ea00
fix(citation): allow negative p50 for deviation benches (#2197)
Flotapponnier Aug 30, 2026
5a4dda1
fix: fee-compare accuracy — paginated HL funding, multi-slice positio…
Flotapponnier Aug 30, 2026
240ddae
report: fastest Robinhood Chain RPC (Chainstack vs Alchemy vs QuickNode)
Flotapponnier Aug 31, 2026
d606dce
Merge pull request #2218 from ChainBench/report/robinhood-rpc
Flotapponnier Aug 31, 2026
def7455
fee-compare: signed funding, maker/taker-aware equiv, symmetric coin …
Flotapponnier Aug 31, 2026
b598cc3
report: retitle Best Robinhood Chain RPC, scope claims to 24h median
Flotapponnier Aug 31, 2026
5eef8e2
Merge pull request #2220 from ChainBench/report/robinhood-rpc-v2
Flotapponnier Aug 31, 2026
709f283
fix(reports): use per-report OG card instead of site-wide fallback
Flotapponnier Aug 31, 2026
bfb9218
Merge pull request #2221 from ChainBench/fix/report-og-image
Flotapponnier Aug 31, 2026
684e087
feat(rpc): link keyed-rpc benches into the /rpc cluster (both directi…
Flotapponnier Aug 31, 2026
84ad442
Merge pull request #2222 from ChainBench/feat/keyed-rpc-cluster-link
Flotapponnier Aug 31, 2026
1e19dda
feat(bench-243): add Singapore probe region to keyed-rpc-robinhood
Flotapponnier Sep 1, 2026
ecb0d0f
Merge pull request #2223 from ChainBench/feat/keyed-robinhood-sgp-region
Flotapponnier Sep 1, 2026
b4ebcd5
fee-compare: fix signed-carry gates, Paradex signed funding, GMX sche…
Flotapponnier Sep 1, 2026
9b4a2f3
fix(bench-243): per-provider regions queries so the region picker ren…
Flotapponnier Sep 1, 2026
ff62a69
Merge pull request #2226 from ChainBench/fix/keyed-robinhood-region-p…
Flotapponnier Sep 1, 2026
f1a3872
feat(spec): aggregate_filters — pin the unfiltered build to a dimensi…
Flotapponnier Sep 1, 2026
1f69bd1
Merge pull request #2227 from ChainBench/feat/aggregate-filters
Flotapponnier Sep 1, 2026
3e34b05
fix(bench-243): prod is Singapore-only — no dims inherited from snaps…
Flotapponnier Sep 1, 2026
3d61760
Merge pull request #2229 from ChainBench/fix/prod-sgp-only-dev
Flotapponnier Sep 1, 2026
96b6725
fix: by-region grid driven by live spec (port from main)
Flotapponnier Sep 1, 2026
1304147
Merge pull request #2231 from ChainBench/fix/region-grid-sgp-dev
Flotapponnier Sep 1, 2026
92cef36
report: align Robinhood RPC report on Singapore probe and current med…
Flotapponnier Sep 2, 2026
d20c9a0
Merge pull request #2232 from ChainBench/fix/report-sgp-align
Flotapponnier Sep 2, 2026
7be4c1b
fix(bench-243): dev texts — discreet region wording, headline cites S…
Flotapponnier Sep 2, 2026
0bd14cb
Merge pull request #2233 from ChainBench/fix/dev-spec-useast-text
Flotapponnier Sep 2, 2026
15d28bf
feat: add OG image cards for all hub pages missing dedicated cards (#…
Flotapponnier Sep 2, 2026
b6393f5
feat: add OG image cards for dynamic routes
Flotapponnier Sep 3, 2026
a5ce0d9
perf(seo): cache OG renders, SSR home ticker snapshot, fee-compare JS…
Flotapponnier Sep 3, 2026
943d585
Merge pull request #2236 from ChainBench/fix/og-cache-ssr-home
Flotapponnier Sep 3, 2026
1e774d9
feat: /speedtest-rpc — browser-side RPC speed test with live gauge
Flotapponnier Sep 3, 2026
1ffcbcb
Merge pull request #2238 from ChainBench/feat/speedtest-rpc
Flotapponnier Sep 3, 2026
8472c6b
fix(speedtest): allow https connect-src on /speedtest-rpc — site CSP …
Flotapponnier Sep 3, 2026
9633cba
Merge pull request #2239 from ChainBench/fix/speedtest-csp
Flotapponnier Sep 3, 2026
6c7e7c6
feat(speedtest): one live gauge per endpoint, clearer no-CORS state
Flotapponnier Sep 3, 2026
0efb183
Merge pull request #2240 from ChainBench/feat/speedtest-multigauge
Flotapponnier Sep 3, 2026
f928be6
feat(speedtest): chain picker prefills the benchmarked no-key cohort
Flotapponnier Sep 3, 2026
139f47a
Merge pull request #2241 from ChainBench/feat/speedtest-chainpicker
Flotapponnier Sep 3, 2026
3053ae5
fix(speedtest): directory filtered to public bench cohorts (drop MEV …
Flotapponnier Sep 3, 2026
e708a82
Merge pull request #2242 from ChainBench/fix/speedtest-directory-cohort
Flotapponnier Sep 3, 2026
a7ed74d
feat(speedtest): validate prefills in-browser, hide blocked tiles, pr…
Flotapponnier Sep 3, 2026
dd2401f
Merge pull request #2243 from ChainBench/feat/speedtest-polish
Flotapponnier Sep 3, 2026
737ad0e
feat(speedtest): live instrument feel — concurrent probes, rAF needle…
Flotapponnier Sep 3, 2026
6df5614
Merge pull request #2244 from ChainBench/feat/speedtest-live-feel
Flotapponnier Sep 3, 2026
07a7258
fix(speedtest): drop em dashes from user-facing copy
Flotapponnier Sep 3, 2026
c4a16ed
Merge pull request #2245 from ChainBench/fix/speedtest-no-emdash
Flotapponnier Sep 3, 2026
7570ab9
feat(speedtest): responsive polish — readout in dial mouth, self-cent…
Flotapponnier Sep 3, 2026
f5baf29
Merge pull request #2246 from ChainBench/feat/speedtest-responsive-po…
Flotapponnier Sep 3, 2026
0c41738
feat(speedtest): SEO/GEO pass — FAQ + FAQPage JSON-LD, open-source li…
Flotapponnier Sep 3, 2026
a308758
Merge pull request #2247 from ChainBench/feat/speedtest-seo
Flotapponnier Sep 3, 2026
096edfc
feat(speedtest): stop button moved below progress, red outlined
Flotapponnier Sep 3, 2026
6a2adbb
Merge pull request #2248 from ChainBench/feat/speedtest-stop-button
Flotapponnier Sep 3, 2026
846389e
feat(speedtest): dedicated OG/Twitter card with the dial
Flotapponnier Sep 3, 2026
0873ec8
Merge pull request #2249 from ChainBench/feat/speedtest-og
Flotapponnier Sep 3, 2026
b789d23
fix(speedtest): OG card without svg text nodes (satori limitation)
Flotapponnier Sep 3, 2026
778ae9e
Merge pull request #2250 from ChainBench/fix/speedtest-og-satori
Flotapponnier Sep 3, 2026
5bedc81
feat: crowdsourced RPC latency world map (/rpc-map) + anonymous contr…
Flotapponnier Sep 4, 2026
6916ca6
Merge pull request #2251 from ChainBench/feat/rpc-map
Flotapponnier Sep 4, 2026
3d1952f
feat(map): chain search, provider multi-compare, viewport-driven rank…
Flotapponnier Sep 4, 2026
8cc4a58
Merge pull request #2252 from ChainBench/feat/rpc-map-v2
Flotapponnier Sep 4, 2026
8ac48a2
feat(map): clickable cells with per-provider history and freshness
Flotapponnier Sep 4, 2026
3eeb701
Merge pull request #2253 from ChainBench/feat/rpc-map-cell-detail
Flotapponnier Sep 4, 2026
d38dcb7
feat(map): near-me geolocation and droppable pin with nearest-area re…
Flotapponnier Sep 4, 2026
6171cc3
Merge pull request #2254 from ChainBench/feat/rpc-map-pin
Flotapponnier Sep 4, 2026
fd2f451
fix(speedtest): fail-open prefill validation when every endpoint flunks
Flotapponnier Sep 4, 2026
84445d0
Merge pull request #2255 from ChainBench/fix/speedtest-failopen
Flotapponnier Sep 4, 2026
2105466
fix(bench-205): Solana-scoped volumes via chain overview, GMGN was sh…
Flotapponnier Sep 5, 2026
0b284b5
Merge pull request #2259 from ChainBench/fix/solana-dex-volume-scope
Flotapponnier Sep 5, 2026
5dc8d21
feat: add Serialized as provider on benches 004 and 008 (#2261)
Flotapponnier Sep 5, 2026
0730b30
feat: declare Serialized in the 004 and 008 bench specs (#2262)
Flotapponnier Sep 5, 2026
8ae50fe
feat: add Serialized to benches 005 and 090 (chain coverage) (#2263)
Flotapponnier Sep 5, 2026
dcfe080
docs: correct the head-lag claim in the Serialized audit, add follow-…
Flotapponnier Sep 5, 2026
7814dc0
docs: correct the BONK root cause to a pool-ranking unit bug, add tok…
Flotapponnier Sep 5, 2026
a34a429
fix: add stricter companion series to benches 004 and 008 (#2266)
Flotapponnier Sep 5, 2026
8cae12f
fix(001): measure head lag against a node we hold, not the provider's…
Flotapponnier Sep 5, 2026
74a7d2d
feat(001): add Serialized to aggregator-head-lag (#2268)
Flotapponnier Sep 5, 2026
53c69c8
fix(seo): regenerate bench-published map, new benches were stuck at t…
Flotapponnier Sep 7, 2026
1f0e81c
fix(243): scope headline and report to the Singapore probe, drop the …
Flotapponnier Sep 8, 2026
a8d2fb8
fix: single-origin bench payload guard + sitemap lists only servable …
Flotapponnier Sep 8, 2026
d9fd0a5
fix: confine single-origin benches to their pinned region in overlayE…
Flotapponnier Sep 8, 2026
e8374d3
revert(001): drop Serialized from aggregator-head-lag (#2278)
Flotapponnier Sep 8, 2026
eda2da8
fix(products): per-chain chips show real leadership only, with the de…
Flotapponnier Sep 8, 2026
b6ba6b0
fix(ranking): rank multi-chain benches by contested-chain wins, not t…
Flotapponnier Sep 8, 2026
401d0a7
fix(scoring): scope the value to contested chains, opt-in per bench (…
Flotapponnier Sep 9, 2026
5ef21d8
chore(cache): bump bench-unfiltered and all-benchmarks for contested-…
Flotapponnier Sep 9, 2026
31f69ae
feat(rpc): add NOWNodes to ethereum-rpc and bnb-rpc (#2283)
Flotapponnier Sep 9, 2026
ba96ffe
fix(logo): replace NOWNodes placeholder with brand-purple N mark (#2285)
Flotapponnier Sep 9, 2026
710ed67
fix(ui): stop badging a single measurement as a percentile (#2286)
Flotapponnier Sep 9, 2026
7fdba76
feat(rpc): add Bitcoin and LUKSO benches, NOWNodes on Coreum (#2287)
Flotapponnier Sep 9, 2026
7087aa9
feat(rpc): add NOWNodes to the rpc-capabilities cross-chain provider …
Flotapponnier Sep 9, 2026
f7945d7
fix(registry): correct NOWNodes X handle to @NOWNodes (#2290)
Flotapponnier Sep 9, 2026
498a91d
fix(logo): add official LUKSO mark for the chain and lukso-official (…
Flotapponnier Sep 9, 2026
a515333
fix(chains): register Bitcoin and LUKSO so they display capitalized (…
Flotapponnier Sep 9, 2026
8c312ac
bridge-monitor: 3/30 tiers + 5-route conserving loop + HL withdraw (#…
Flotapponnier Sep 9, 2026
9a354bc
feat(001): measure Base against the flashblock reference, re-add Seri…
Flotapponnier Sep 9, 2026
db7f47e
bridge-monitor: add Near Intents as executing bridge on a USDC-only t…
Flotapponnier Sep 9, 2026
f619617
copy(001): name Serialized in the headline, drop the stale per-chain …
Flotapponnier Sep 10, 2026
b195c0e
bridge-monitor: fix nil-interface panic in evmClientFor (crash-looped…
Flotapponnier Sep 10, 2026
d71003a
feat(001): defer reference matching so a late reference still matches…
Flotapponnier Sep 10, 2026
3777109
bench 261: on-chain bridge execution latency + success rate (3/30, pe…
Flotapponnier Sep 10, 2026
93fd754
bridge-monitor: switch triangle to all-USDC (Arb leg USDT->USDC), avo…
Flotapponnier Sep 10, 2026
f59760f
bridge-monitor: capture exec-cost metrics (realized output, quote-vs-…
Flotapponnier Sep 10, 2026
d267365
sync to dev: series density fix + Near Intents single-test hook (#2314)
Flotapponnier Sep 10, 2026
c73f35a
bridge-monitor: reliability tail metrics (stuck rate + refund latency…
Flotapponnier Sep 10, 2026
d9acd6f
bridge: exec metric baseline fix + realized-cost bench + MCP allowlis…
Flotapponnier Sep 10, 2026
d3e1477
fix: slippage recorded only on fills + bench 263 region dimension (#2…
Flotapponnier Sep 10, 2026
fd9dca9
fiat-onramp-cost: bench 262 harness, spec, On-ramps category, product…
Flotapponnier Sep 11, 2026
3b834c8
bridge: exact execution latency (no buckets) + Near Intents in benche…
Flotapponnier Sep 11, 2026
361aebd
bridge exec benches: recording rules for always-fresh sparse-run valu…
Flotapponnier Sep 11, 2026
c9b521d
bench 264: dedicated Solana quote-latency (SOL to X) (#2327)
Flotapponnier Sep 11, 2026
9c490f3
bench 264: add SOL->Robinhood Chain (chainId 4663, USDG cross-asset) …
Flotapponnier Sep 11, 2026
ff62ff7
bench 264: correct Robinhood methodology — only Mobula quotes SOL->Ro…
Flotapponnier Sep 11, 2026
5356401
sync: bring dev up to date with main (resolve 5 conflicts) (#2334)
Flotapponnier Sep 11, 2026
a370cf1
bridge-monitor: map BNB(56)/Ethereum(1)/Robinhood(4663) in relay/lifi…
Flotapponnier Sep 11, 2026
3635b0a
bench 265 perp-pf-ratio: perp DEX price-to-fees valuation table (dev-…
Flotapponnier Sep 12, 2026
d5b599a
logos: official SVG marks for Avantis, ApeX and Derive (#2341)
Flotapponnier Sep 12, 2026
2253521
perf(vercel): stop the per-minute ISR purge, cache OG images, slim mi…
Flotapponnier Sep 13, 2026
69f06d6
middleware: literal 410 matcher only (Vercel matchers are case-insens…
Flotapponnier Sep 13, 2026
4915956
perf: fetch the search index on demand (-63% page weight); data cache…
Flotapponnier Sep 14, 2026
c7c1103
perf: cache share-card renders, aggregate proxy TTL 300s, slow-moving…
Flotapponnier Sep 14, 2026
7bdd0cf
bench 265: token-less rows report harness health (were shown as UNRES…
Flotapponnier Sep 14, 2026
9a371f6
fiat-onramp-cost: Mercuryo parser on the live response shape; MoonPay…
Flotapponnier Sep 14, 2026
5fcc638
fiat-onramp-cost: Transak verified live (SEPA no_quote until bank tra…
Flotapponnier Sep 14, 2026
47c9eab
logos: theme-safe official marks for the on-ramp cohort (#2353)
Flotapponnier Sep 14, 2026
970ea51
chore: untrack harnesses/perp-volume-history (WIP swept in by mistake…
Flotapponnier Sep 14, 2026
3d9b810
perp venue pages: Gains daily volume re-index jumps dropped; DeFiLlam…
Flotapponnier Sep 14, 2026
b9f7cb1
bench 265: pre-TGE perp DEXes listed unranked with fees and OI; edgeX…
Flotapponnier Sep 14, 2026
15e6a1d
bench 266: daily perp DEX volume on closed UTC days, backfilled; Gain…
Flotapponnier Sep 14, 2026
7035320
perp-volume-history: publish gauges after every source so the bench r…
Flotapponnier Sep 14, 2026
1ea25d7
perp venue pages: daily volume from OCB's own cohort bench; Gains 24h…
Flotapponnier Sep 14, 2026
9a54d13
perp-cohort-stats: Gains 24h volume on the DefiLlama perimeter (volum…
Flotapponnier Sep 14, 2026
646b415
api/series: serve harness-backfilled history for bench 266 on every r…
Flotapponnier Sep 14, 2026
8a277f7
perp-volume-history: remember the backfill horizon per venue (Hyperli…
Flotapponnier Sep 14, 2026
f9e4360
bench spec: optional chart block (min_range, default_range, window_la…
Flotapponnier Sep 14, 2026
796bd25
rename: gains.trade / Gains Network -> Gains everywhere the brand is …
Flotapponnier Sep 14, 2026
817755f
bench page: the parent-controlled chart range honours chart.default_r…
Flotapponnier Sep 14, 2026
a877d40
bench page: metric view tabs carry their definition as a tooltip; act…
Flotapponnier Sep 14, 2026
3a99aea
compare pages: two-line trend chart on every shared bench card; hero …
Flotapponnier Sep 14, 2026
807140d
compare: per-card trend charts only on perp venue pairs, with a y axi…
Flotapponnier Sep 14, 2026
f172e89
compare: drop the per-card trend charts, the perp volume hero is the …
Flotapponnier Sep 14, 2026
c1231f4
bench 265 copy: meta description no longer renders "1.559xx"; intro c…
Flotapponnier Sep 14, 2026
8e4baa1
compare: trend chart back on every shared bench card, with view tabs …
Flotapponnier Sep 14, 2026
8360d93
compare charts: accent on the selected view/range, hidden when either…
Flotapponnier Sep 14, 2026
ee1963d
perp-volume-history: sources run concurrently; dYdX honours 429 and g…
Flotapponnier Sep 14, 2026
43a40bb
bench 265: un-gate perp-pf-ratio on dev too, so the worker's sitemap …
Flotapponnier Sep 14, 2026
3629692
perp-volume-history: Extended skips a host after three consecutive fa…
Flotapponnier Sep 14, 2026
e080720
bench 265: Open interest ledger column, so pre-TGE rows show fees and…
Flotapponnier Sep 14, 2026
54ec353
bench 266 copy: Gains series is the Dune view, refresh runs in parall…
Flotapponnier Sep 14, 2026
3a85d8d
social cards: the leader claim is highlighted in orange on bench, rep…
Flotapponnier Sep 14, 2026
9a5dc0f
bench 262 fiat-onramp-cost: live, headline cell BTC by card at 500 EU…
Flotapponnier Sep 15, 2026
2a0ddbf
bench 262: only keyed providers declared (MoonPay, Transak) so the wo…
Flotapponnier Sep 15, 2026
7989d22
bench 262: view tabs and ledger columns per grid cell (declared fee, …
Flotapponnier Sep 15, 2026
87dd01a
head-lag: Solana headline becomes the lag behind the first feed to re…
Flotapponnier Sep 16, 2026
d226251
head-lag race: a race needs two participants (a lone GeckoTerminal po…
Flotapponnier Sep 16, 2026
d1646ef
head-lag: Solana opens on First to report; leader lag floored at 1 ms…
Flotapponnier Sep 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 6 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,9 @@
# Optional. Live-page WebSocket relay. Public (NEXT_PUBLIC_) so it's baked
# into the browser bundle. Defaults to the production relay if unset.
# NEXT_PUBLIC_RELAY_WS_URL=wss://ocb-stream-relay-production.up.railway.app/ws

# Optional. Minimum seconds between two full ISR tag purges triggered by
# the materialize worker's /api/internal/revalidate-aggregate hook. The
# worker calls the hook after every 60 s publish; without this throttle
# every ISR page was invalidated each minute. Default 600. "0" disables.
# REVALIDATE_MIN_INTERVAL_SEC=600
98 changes: 76 additions & 22 deletions benchmarks/aggregator-head-lag.yml

Large diffs are not rendered by default.

13 changes: 13 additions & 0 deletions benchmarks/asset-registry-coverage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,19 @@ providers:
sample_size: networks_supported_total{provider="coingecko"}
series: networks_supported_total{provider="coingecko"}

- slug: serialized
name: Serialized
tag: Own indexers, 18 EVM + Solana
formula: "Count of chains returned as live by Serialized's `/v1/meta/chains` endpoint, refreshed every 6 hours."
queries:
p50: networks_supported_total{provider="serialized"}
p90: networks_supported_total{provider="serialized"}
p99: networks_supported_total{provider="serialized"}
mean: networks_supported_total{provider="serialized"}
success: clamp_max(networks_supported_total{provider="serialized"} > bool 0, 1)
sample_size: networks_supported_total{provider="serialized"}
series: networks_supported_total{provider="serialized"}

- slug: coinpaprika
name: CoinPaprika
tag: Market-data API asset registry
Expand Down
159 changes: 131 additions & 28 deletions benchmarks/bandchain-rpc.yml
Original file line number Diff line number Diff line change
@@ -1,35 +1,138 @@
id: 256
# OpenChainBench. Bench No 256

slug: bandchain-rpc
title: "Band Protocol RPC"
chain: bandchain
description: "Latency and availability benchmark for Band Protocol public RPC endpoints"
category: rpc
kind: cosmos
number: "256"
title: Fastest free Band Protocol RPC, live no-key endpoint latency
seo_title: "Fastest free Band Protocol RPC 2026"
seo_description: "{{best_name}} leads free Band Protocol RPC at {{best_p50}} (block height p50, 24h). 3 no-key providers measured every 60s from 3 regions."
subtitle: HTTP round-trip latency for Tendermint /status queries against every available public Band Protocol (laozi-mainnet) endpoint, audited every 60 seconds from 3 regions.

providers:
- slug: band-official
name: "Band Protocol"
url: "http://rpc.laozi1.bandchain.org:80"
- slug: highstakes
name: "High Stakes"
url: "https://bandprotocol-rpc.highstakes.ch"
- slug: stakewolle
name: "Stakewolle"
url: "https://public.stakewolle.com/cosmos/bandchain/rpc"
category: RPCs
status: live
metric: RPC latency
unit: ms
higher_is_better: false

seo_intro: |
Band Protocol is a cross-chain oracle network built on Cosmos SDK that aggregates and connects real-world data and APIs to smart contracts. The laozi-mainnet hosts its decentralized data oracle infrastructure, enabling DeFi protocols across multiple blockchains to access tamper-proof price feeds.
Band Protocol is a cross-chain decentralized oracle network built on Cosmos SDK (chain ID laozi-mainnet). It aggregates and connects real-world data and APIs to smart contracts across multiple blockchains via its Yoda oracle daemon and data feed infrastructure. The chain uses the standard Tendermint RPC interface; block height is fetched via the /status endpoint. Public keyless RPC nodes are provided by the Band Protocol official team, High Stakes, and Stakewolle. Every provider was live-verified with consecutive block-height probes at launch.

This benchmark continuously measures RPC latency, availability and block-height freshness across public Band Protocol Tendermint endpoints from three geographic regions. Use it to select the fastest endpoint for your integration or validator setup.
abstract: |
Per-chain member of the RPC latency cluster, extended to Band Protocol (laozi-mainnet).
We measure the round-trip latency of a Tendermint /status query against
every available public Band Protocol endpoint that sustains continuous probing:
3 providers at launch, every 60 seconds, from us-east, eu-west and
Singapore. Each provider is probed via a GET /status request
from which the block number is extracted.
The harness classifies every response (ok / http_err / jsonrpc_err / stale / timeout)
with a Cosmos-scaled staleness gap (40 blocks, around 4 min at 6 s/block).
The cross-chain view lives on the parent rpc-capabilities benchmark;
this page is the Band Protocol-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: GET /status. The result.sync_info.latest_block_height field is extracted as the current block height."
- "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 (parsable block height returned), http_err, jsonrpc_err, stale (block more than 40 behind the cross-provider tip), timeout."
- "This page is part of the per-chain RPC cluster derived from the cross-chain 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=bandchain. Provider coverage at launch: 3 endpoints (Band Protocol official, High Stakes, Stakewolle)."

findings:
- "{{best_name}} leads free Band Protocol RPC at {{best_p50}} (Tendermint /status p50, 24h) across 3 measured providers."

faq:
- q: "What does this benchmark measure?"
a: "Each probe issues a GET /status request with anti-cache headers to retrieve the latest block height. We record round-trip latency (p50/p90/p99), HTTP availability, and whether the returned block height is current. Probes run every 30 seconds from US East, EU West, and AP Southeast."
- q: "Which endpoints are included?"
a: "The benchmark covers the Band Protocol official endpoint (rpc.laozi1.bandchain.org), High Stakes, and Stakewolle. All three are keyless public endpoints requiring no authentication."
- q: "Why does Band Protocol RPC performance matter?"
a: "Band Protocol validators and oracle scripts depend on reliable RPC access to submit data requests and retrieve oracle results. DeFi protocols integrating Band price feeds need low-latency RPC for real-time data consumption."
- q: "How are oracle scripts affected by RPC latency?"
a: "Yoda (the oracle daemon) and Bothan (data proxy) both rely on RPC to monitor pending data requests and submit responses within the request window. High latency or downtime directly reduces oracle reliability and can cause missed rewards."
- q: "Can I contribute an endpoint?"
a: "Yes. Open an issue or PR at github.com/ChainBench/OpenChainBench with the endpoint URL and operator name. We verify liveness and independence before adding."
- q: "What is the fastest free Band Protocol RPC right now?"
a: "{{best_name}} currently leads at {{best_p50}} (Band Protocol block height p50 over the last 24h), measured against 3 providers probed every 60 seconds from us-east, eu-west and Singapore. The leaderboard re-sorts continuously against fresh Prometheus samples."
- q: "Which Band Protocol RPC endpoints work without an API key?"
a: "3 endpoints sustain continuous keyless probing at launch: Band Protocol official (rpc.laozi1.bandchain.org), High Stakes (bandprotocol-rpc.highstakes.ch), and Stakewolle (public.stakewolle.com/cosmos/bandchain/rpc). Every listed endpoint was live-verified before inclusion."
- q: "What is Band Protocol and why does its RPC latency matter?"
a: "Band Protocol is a cross-chain data oracle that aggregates real-world data feeds and delivers them to smart contracts via oracle scripts. Validators running the Yoda daemon and DeFi protocols consuming Band price feeds both depend on low-latency reliable RPC access to the Band chain."
- q: "Does the fastest Band Protocol RPC change by region?"
a: "Yes. The official Band node and community validators are hosted in different regions. The region tabs re-scope every number to a single probe origin so you can pick the best endpoint for your deployment geography."
- q: "What is the BAND token?"
a: "BAND is the native staking and governance token of Band Protocol (denominated as uband on-chain). It is used to stake as validators, pay for oracle data requests, and participate in on-chain governance of the laozi-mainnet."

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="bandchain"})

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: band-official
name: Band Protocol
tag: Band Protocol official public RPC node, no API key required
formula: "50th percentile over 24h of client-side round-trip latency (ms) for a GET /status sent every 60s from 3 regions to rpc.laozi1.bandchain.org."
queries:
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="band-official", chain="bandchain"})
p90: avg(ocb:rpc_latency_milliseconds:p90_24h{provider="band-official", chain="bandchain"})
p99: avg(ocb:rpc_latency_milliseconds:p99_24h{provider="band-official", chain="bandchain"})
mean: avg(ocb:rpc_latency_milliseconds:mean_24h{provider="band-official", chain="bandchain"})
success: sum(ocb:rpc_call:ok_rate_24h{provider="band-official", chain="bandchain"}) / sum(ocb:rpc_call:rate_24h{provider="band-official", chain="bandchain"})
sample_size: sum(ocb:rpc_call:increase_24h{provider="band-official", chain="bandchain"})
series: avg(avg_over_time(rpc_latency_milliseconds{provider="band-official", chain="bandchain"}[1h]))
regions:
- region: us-east
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="band-official", chain="bandchain", region="us-east"})
series: avg_over_time(rpc_latency_milliseconds{provider="band-official", chain="bandchain", region="us-east"}[1h])
- region: eu-west
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="band-official", chain="bandchain", region="eu-west"})
series: avg_over_time(rpc_latency_milliseconds{provider="band-official", chain="bandchain", region="eu-west"}[1h])
- region: ap-southeast
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="band-official", chain="bandchain", region="sgp"})
series: avg_over_time(rpc_latency_milliseconds{provider="band-official", chain="bandchain", region="sgp"}[1h])

- slug: highstakes
name: High Stakes
tag: High Stakes public Band Protocol RPC, no API key required
formula: "50th percentile over 24h of client-side round-trip latency (ms) for a GET /status sent every 60s from 3 regions to bandprotocol-rpc.highstakes.ch."
queries:
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="highstakes", chain="bandchain"})
p90: avg(ocb:rpc_latency_milliseconds:p90_24h{provider="highstakes", chain="bandchain"})
p99: avg(ocb:rpc_latency_milliseconds:p99_24h{provider="highstakes", chain="bandchain"})
mean: avg(ocb:rpc_latency_milliseconds:mean_24h{provider="highstakes", chain="bandchain"})
success: sum(ocb:rpc_call:ok_rate_24h{provider="highstakes", chain="bandchain"}) / sum(ocb:rpc_call:rate_24h{provider="highstakes", chain="bandchain"})
sample_size: sum(ocb:rpc_call:increase_24h{provider="highstakes", chain="bandchain"})
series: avg(avg_over_time(rpc_latency_milliseconds{provider="highstakes", chain="bandchain"}[1h]))
regions:
- region: us-east
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="highstakes", chain="bandchain", region="us-east"})
series: avg_over_time(rpc_latency_milliseconds{provider="highstakes", chain="bandchain", region="us-east"}[1h])
- region: eu-west
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="highstakes", chain="bandchain", region="eu-west"})
series: avg_over_time(rpc_latency_milliseconds{provider="highstakes", chain="bandchain", region="eu-west"}[1h])
- region: ap-southeast
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="highstakes", chain="bandchain", region="sgp"})
series: avg_over_time(rpc_latency_milliseconds{provider="highstakes", chain="bandchain", region="sgp"}[1h])

- slug: stakewolle
name: Stakewolle
tag: Stakewolle public Band Protocol RPC, no API key required
formula: "50th percentile over 24h of client-side round-trip latency (ms) for a GET /status sent every 60s from 3 regions to public.stakewolle.com/cosmos/bandchain/rpc."
queries:
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="stakewolle", chain="bandchain"})
p90: avg(ocb:rpc_latency_milliseconds:p90_24h{provider="stakewolle", chain="bandchain"})
p99: avg(ocb:rpc_latency_milliseconds:p99_24h{provider="stakewolle", chain="bandchain"})
mean: avg(ocb:rpc_latency_milliseconds:mean_24h{provider="stakewolle", chain="bandchain"})
success: sum(ocb:rpc_call:ok_rate_24h{provider="stakewolle", chain="bandchain"}) / sum(ocb:rpc_call:rate_24h{provider="stakewolle", chain="bandchain"})
sample_size: sum(ocb:rpc_call:increase_24h{provider="stakewolle", chain="bandchain"})
series: avg(avg_over_time(rpc_latency_milliseconds{provider="stakewolle", chain="bandchain"}[1h]))
regions:
- region: us-east
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="stakewolle", chain="bandchain", region="us-east"})
series: avg_over_time(rpc_latency_milliseconds{provider="stakewolle", chain="bandchain", region="us-east"}[1h])
- region: eu-west
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="stakewolle", chain="bandchain", region="eu-west"})
series: avg_over_time(rpc_latency_milliseconds{provider="stakewolle", chain="bandchain", region="eu-west"}[1h])
- region: ap-southeast
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="stakewolle", chain="bandchain", region="sgp"})
series: avg_over_time(rpc_latency_milliseconds{provider="stakewolle", chain="bandchain", region="sgp"}[1h])
Loading