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
23 changes: 23 additions & 0 deletions benchmarks/bnb-rpc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,29 @@ providers:
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="publicnode", chain="bnb", region="sgp"})
series: avg_over_time(rpc_latency_milliseconds{provider="publicnode", chain="bnb", region="sgp"}[1h])

- slug: nownodes
name: NOWNodes
tag: Public node, 110+ chains, 5 RPS free 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 NOWNodes public no-key BNB Chain endpoint."
queries:
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="nownodes", chain="bnb"})
p90: avg(ocb:rpc_latency_milliseconds:p90_24h{provider="nownodes", chain="bnb"})
p99: avg(ocb:rpc_latency_milliseconds:p99_24h{provider="nownodes", chain="bnb"})
mean: avg(ocb:rpc_latency_milliseconds:mean_24h{provider="nownodes", chain="bnb"})
success: sum(ocb:rpc_call:ok_rate_24h{provider="nownodes", chain="bnb"}) / sum(ocb:rpc_call:rate_24h{provider="nownodes", chain="bnb"})
sample_size: sum(ocb:rpc_call:increase_24h{provider="nownodes", chain="bnb"})
series: avg(avg_over_time(rpc_latency_milliseconds{provider="nownodes", chain="bnb"}[1h]))
regions:
- region: us-east
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="nownodes", chain="bnb", region="us-east"})
series: avg_over_time(rpc_latency_milliseconds{provider="nownodes", chain="bnb", region="us-east"}[1h])
- region: eu-west
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="nownodes", chain="bnb", region="eu-west"})
series: avg_over_time(rpc_latency_milliseconds{provider="nownodes", chain="bnb", region="eu-west"}[1h])
- region: ap-southeast
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="nownodes", chain="bnb", region="sgp"})
series: avg_over_time(rpc_latency_milliseconds{provider="nownodes", chain="bnb", region="sgp"}[1h])

- slug: drpc
name: dRPC
tag: Decentralized RPC mesh, consensus-checked
Expand Down
23 changes: 23 additions & 0 deletions benchmarks/ethereum-rpc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,29 @@ providers:
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="publicnode", chain="ethereum", region="sgp"})
series: avg_over_time(rpc_latency_milliseconds{provider="publicnode", chain="ethereum", region="sgp"}[1h])

- slug: nownodes
name: NOWNodes
tag: Public node, 110+ chains, 5 RPS free 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 NOWNodes public no-key Ethereum endpoint."
queries:
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="nownodes", chain="ethereum"})
p90: avg(ocb:rpc_latency_milliseconds:p90_24h{provider="nownodes", chain="ethereum"})
p99: avg(ocb:rpc_latency_milliseconds:p99_24h{provider="nownodes", chain="ethereum"})
mean: avg(ocb:rpc_latency_milliseconds:mean_24h{provider="nownodes", chain="ethereum"})
success: sum(ocb:rpc_call:ok_rate_24h{provider="nownodes", chain="ethereum"}) / sum(ocb:rpc_call:rate_24h{provider="nownodes", chain="ethereum"})
sample_size: sum(ocb:rpc_call:increase_24h{provider="nownodes", chain="ethereum"})
series: avg(avg_over_time(rpc_latency_milliseconds{provider="nownodes", chain="ethereum"}[1h]))
regions:
- region: us-east
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="nownodes", chain="ethereum", region="us-east"})
series: avg_over_time(rpc_latency_milliseconds{provider="nownodes", chain="ethereum", region="us-east"}[1h])
- region: eu-west
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="nownodes", chain="ethereum", region="eu-west"})
series: avg_over_time(rpc_latency_milliseconds{provider="nownodes", chain="ethereum", region="eu-west"}[1h])
- region: ap-southeast
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="nownodes", chain="ethereum", region="sgp"})
series: avg_over_time(rpc_latency_milliseconds{provider="nownodes", chain="ethereum", region="sgp"}[1h])

- slug: drpc
name: dRPC
tag: Decentralized RPC mesh, consensus-checked
Expand Down
6 changes: 4 additions & 2 deletions harnesses/rpc-capabilities/cmd/script/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -237,7 +237,7 @@ func chains() []Chain {
{Slug: "tenderly", Name: "Tenderly Gateway", URL: envDefault("RPC_URL_MEGAETH_TENDERLY", "https://megaeth.gateway.tenderly.co")},
},
},
// ─── Ethereum mainnet (8 providers) ────────────────────────
// ─── Ethereum mainnet (9 providers) ────────────────────────
{
Slug: "ethereum",
Name: "Ethereum",
Expand All @@ -250,6 +250,7 @@ func chains() []Chain {
{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: "bloxroute", Name: "bloXroute", URL: envDefault("RPC_URL_ETHEREUM_BLOXROUTE", "https://eth.rpc.blxrbdn.com")},
{Slug: "nownodes", Name: "NOWNodes", URL: envDefault("RPC_URL_ETHEREUM_NOWNODES", "https://public-eth.nownodes.io")},
},
},
// ─── Polygon PoS (5 providers) ──────────────────────────────
Expand Down Expand Up @@ -304,7 +305,7 @@ func chains() []Chain {
{Slug: "bloxroute", Name: "bloXroute", URL: envDefault("RPC_URL_BASE_BLOXROUTE", "https://base.rpc.blxrbdn.com")},
},
},
// ─── BNB Chain (5 providers) ────────────────────────────────
// ─── BNB Chain (7 providers) ────────────────────────────────
{
Slug: "bnb",
Name: "BNB Chain",
Expand All @@ -315,6 +316,7 @@ func chains() []Chain {
{Slug: "binance", Name: "Binance Official", URL: envDefault("RPC_URL_BNB_OFFICIAL", "https://bsc-dataseed1.binance.org")},
{Slug: "blastapi", Name: "Blast API", URL: envDefault("RPC_URL_BNB_BLASTAPI", "https://bsc-mainnet.public.blastapi.io")},
{Slug: "bloxroute", Name: "bloXroute", URL: envDefault("RPC_URL_BNB_BLOXROUTE", "https://bsc.rpc.blxrbdn.com")},
{Slug: "nownodes", Name: "NOWNodes", URL: envDefault("RPC_URL_BNB_NOWNODES", "https://public-bsc.nownodes.io")},
},
},
// ─── Avalanche C-Chain (6 providers) ────────────────────────
Expand Down
13 changes: 12 additions & 1 deletion src/data/provider-registry.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2311,8 +2311,19 @@ export const PROVIDER_REGISTRY: Record<string, ProviderRegistryEntry> = {
nownodes: {
url: "https://nownodes.io",
description:
"NOWNodes is a multi-chain node provider covering Gram (TON), Bitcoin, Ethereum and 50+ other chains. Offers API-key-based access with a free trial tier.",
"Multi-chain node provider covering 110+ blockchains. Key-based REST and WebSocket RPC plus block explorers, with keyless public endpoints on a handful of chains (Ethereum, BNB, Bitcoin) rate-limited to 5 requests per second.",
twitter: "@NOWNodes_io",
docs: "https://docs.nownodes.io",
chains: ["ethereum", "bnb", "bitcoin", "litecoin", "dogecoin", "gram", "xrp", "tron"],
features: [
"110+ chains via a single API key",
"REST and WebSocket JSON-RPC endpoints",
"Block explorers for major UTXO chains",
"Keyless public endpoints on Ethereum, BNB and Bitcoin (5 RPS)",
"Free trial tier, then usage-based paid plans",
],
pricing:
"Free trial key, then paid plans by request volume. Public no-key endpoints exist on select chains at 5 requests per second.",
},
tatum: {
url: "https://tatum.io",
Expand Down
Loading