Pinging dRPC public nodes

0 of 6

RouteLab, an independent tool. Not affiliated with dRPC.

Skip to content

How the numbers are produced

Everything here is computed in your browser from a few documented rules. This page lists them, along with what the tools do not tell you.

Latency

For each endpoint the page sends one warm-up call that is not counted, so DNS and TLS setup do not skew the result. It then sends six timed calls in sequence. The call is eth_blockNumber.

p50 and p95 use the nearest-rank method on those six samples. With six samples, p95 is effectively the slowest call. Treat it as a worst case from a small run, not a stable percentile.

A call fails after 4 seconds. Failures are labelled by cause: timeout, rate-limited (HTTP 429), rpc-error (a JSON-RPC error object), bad-response, an HTTP status, or network/cors when the browser blocks or loses the request. Two failures in a row end that endpoint’s run early.

The preloader and the home page strip use a single call per public endpoint with no warm-up, which is why those figures are higher than the benchmark. If an endpoint answers with a rate limit, they retry once after a short wait. The benchmark never retries, so rate limits stay visible there.

Failover verdict

The primary passes when its p50 is at or under your threshold and its chain head is not stale. If it fails, the verdict says whether your backup would take over, and whether the backup itself passes the head check.

Head lag is measured at the end of the run by asking your route and dRPC’s public node for the same chain at the same moment. Stale means more than a per-chain tolerance, set to roughly six seconds of chain time: 2 blocks on Ethereum, 3 on Base, Optimism and Polygon, 12 on BSC and 24 on Arbitrum. These tolerances are approximations, not protocol values.

This is a verdict on one test, not a simulation of a production router. Real failover logic, such as NodeCore’s upstream scoring, also weighs error rates over time.

Pricing model

dRPC: 20 compute units per request on Free, Pay as You Go and overage. Inside the Pro and Scale pools a request costs about 16 and 14 CU, which is why they include roughly 10M and 47M requests. The plans are modeled as listed on its pricing page. Free: 210M CU, about 10.5M requests, 100 RPS, public nodes only. Pay as You Go: $6 per 1M requests, 100 RPS, no commitment. Pro: $49 a month with 10M requests included and 300 RPS. Scale: $199 a month with 47M requests included and 600 RPS. Enterprise starts at $990 a month with unlimited RPS and needs a quote.

Once a Pro or Scale pool is used, overage is charged from the account balance at $6 per 1M multi-chain requests. If the balance is empty and there is no overdraft, requests stop until funds are added, and a paid plan does not fall back to Free. The simulator picks the cheapest listed plan that fits your volume and peak RPS. The 100 RPS limit on Pay as You Go applies to new accounts, and existing customers keep their current terms. Pricing is for EVM chains. Solana is billed separately by dRPC and is not modeled.

Alchemy: $0.525 per 1M compute units, weighted by method. This tool uses 10 CU for eth_blockNumber, 26 CU for eth_call and 60 CU for eth_getLogs, which gives $5.25, $13.65 and $31.50 per 1M requests. The eth_getLogs weight and the per-unit rate are the figures most worth confirming on Alchemy’s own pricing page.

QuickNode: the cheapest plan that fits your volume and peak RPS, at 20 API credits per call. Build is $49 for 80M credits at 50 RPS with $0.62 overage per 1M credits. Accelerate is $249 for 450M at 125 RPS with $0.56. Scale is $499 for 950M at 250 RPS with $0.53. Business is $999 for 2B at 500 RPS with $0.50.

Ankr: 200 API credits per EVM request at $0.10 per 1M credits, or $20 per 1M requests.

These are published rates as reported for October 2026. Vendors change prices, so confirm each one on its own page: dRPC. Competitor free allowances are not modeled, so their figures are a ceiling for comparison, not a quote. Competitor RPS limits are not modeled either.

Generated files

The nodecore.yml follows the structure in the NodeCore README: upstream-config, a list of upstreams, and a json-rpc connector per upstream. The Docker image, the mount at /nodecore.yml, port 9090 and the /queries/chain request path come from the same README. The key is a placeholder you replace yourself, because RouteLab never sees it. The quorum request follows the NodeCore quorum guide: quorum=N asks for up to N signed responses and quorum_required=M needs at least M to verify. Quorum works only against dRPC upstreams over HTTP, and it skips the cache. See the verification guide and the NodeCore repository.

The viem snippet uses the fallback transport with ranking. Ranking pings each transport with eth_blockNumber instead of the default net_listening, because many public endpoints do not answer net_listening well.

Generated files are starting points. Run them against a test key before they go near production.

What this does not do

It does not rank providers. A browser test measures your own network path at one moment, to one region of each service. For provider comparisons across regions over time, use a continuous monitoring dashboard.

It covers six EVM chains. dRPC’s public Solana endpoint answers “chain is not available on free plan”, so there is nothing public to test, and Solana is left out. The Free plan covers public nodes only.

It does not store your RPC URLs, send them to a server, or keep results. Closing the tab clears everything. See the privacy page for the details.

It is an independent project and has no connection to dRPC beyond using its public documentation and public endpoints.