Speed distribution
How fast the endpoint responds across normal and tail requests.
This page explains exactly how the benchmark run is executed, what signals are measured, how verdicts are produced, and what the results do and do not mean.
In practice, endpoint performance is shaped by provider routing, freshness of chain data, repeated-request behavior, cache state, and rate limiting. This benchmark isolates those signals with one short, same-server, mainnet-only comparison run.
Benchmark signals
A quick map of the signals behind every result: speed, stability, method support, throttling, freshness, and production risk.
How fast the endpoint responds across normal and tail requests.
Per-method performance, compatibility, and failures.
Detect throttling before it becomes production traffic pain.
0.8%
Errors
1.2%
Timeout
JTR
Stability
Timeout rate, error types, and consistency are grouped into one reliability read.
Your RPC
18.4M
GetBlock
18.4M
Freshness, sync lag, and production readiness turn raw metrics into a decision.
Core rules
Your endpoint and the GetBlock baseline are tested from the same benchmark server, during the same run window, with the same timeout and the same generated request sequence. The backend selects the GetBlock baseline endpoint for the benchmark server region, not for the visitor browser location; if that regional endpoint is unavailable, the report marks the fallback region in metadata. Every sampled method chosen for your endpoint is also sent to GetBlock, which keeps method mix and request count aligned. This keeps the comparison fair, but it also means the tool is not a multi-region synthetic benchmark.
The public tool benchmarks mainnet endpoints only. A run is valid only when the pasted endpoint belongs to the selected protocol on mainnet, such as Ethereum mainnet vs GetBlock Ethereum mainnet. Testnet and devnet endpoints are blocked because they would produce misleading latency, freshness, and method-level results against a mainnet baseline.
The benchmark uses only read-only JSON-RPC calls. It never asks for private keys, seed phrases, wallet secrets, transaction signing, or write methods. The goal is to test speed and reliability without creating on-chain side effects.
The run is intentionally short. It is meant to reveal obvious differences in latency, reliability, compatibility, throttling, and freshness, not to certify an SLA or predict exact production throughput.
Latency measurement
Latency is measured on the backend benchmark service, not in the visitor’s browser. The timer starts immediately before the HTTP RPC request is sent from the benchmark server and stops after the response is received and parsed.
The measured value is round-trip RPC time: network travel from the benchmark server to the provider, provider processing time, and network travel back. It is the latency your app would see only if your app ran from a similar region.
Only successful samples are used for p50, p95, p99, average latency, jitter, and max latency. Failed requests are counted separately in error rate, timeout rate, method compatibility, and findings.
Both endpoints receive the same generated request sequence. If request #18 is `eth_getBlockByNumber` for your endpoint, request #18 is also `eth_getBlockByNumber` for GetBlock. This paired mode keeps the latency comparison method-for-method.
Profiles and methods
The selected profile changes the read-only method mix and method weights. It does not give either provider an advantage: the generated sequence is shared, so your endpoint and GetBlock receive the same methods, params, timeout, and request count.
Balanced lightweight reads for common frontend and backend dApp traffic.
Prioritizes balances, latest blocks, and lightweight contract or account reads.
Emphasizes block-heavy and log-heavy reads that indexers and analytics pipelines depend on.
Focuses on fresh state, low tail latency, and methods that trading flows call repeatedly.
Tests NFT-style read patterns where method support and consistency matter more than a single average latency.
Protocol support matters. EVM chains can use contract and log methods, Solana uses Solana JSON-RPC methods, Tron uses EVM-compatible JSON-RPC reads, and Bitcoin-like protocols use safe node-status and height methods. If a method cannot be generated safely for a protocol, it is skipped.
Benchmark flow
Measured signals
Average latency is the mean of successful request latencies. It is useful, but it can hide slow outliers. That is why the report also emphasizes tail latency.
p50 latency is the median successful latency. Half of successful requests are faster than this number, and half are slower.
p95 latency shows the response time that 95% of successful requests fall under. This is one of the most useful numbers for real user experience because it captures slow-but-common tail behavior.
p99 latency shows the slowest edge of normal successful behavior. If p99 spikes while average latency looks fine, users can still experience inconsistent loading times.
Success rate is the share of all sampled requests that completed successfully. Error rate is the share that failed for any reason. Timeout rate is the share that did not complete before the benchmark timeout.
Latency standard deviation and jitter help describe consistency. In this tool, jitter is calculated as `p95 - p50`, which gives a simple tail-spread signal. A low median latency with high jitter usually means the endpoint is fast sometimes, but not predictably fast.
Observed RPS is calculated as `requestCount / durationSec`. It describes how much traffic this benchmark actually generated. It should not be interpreted as a contractual throughput limit or as a production-ready load test result.
Verdict logic
Per-method verdicts compare the same method on both providers. If one side has zero successful responses while the other succeeds, the method is marked as failed on that provider. If one side has high error rate or timeout rate, the method is marked unstable. Otherwise, p95 latency decides the winner unless the difference is under 10%, in which case the method is marked similar.
Provider scores combine average latency, p95 latency, p99 latency, success rate, timeout rate, and protocol-aware freshness. The score is latency-sensitive but reliability still matters: a very fast endpoint with many failed calls should not look production-ready. The score is not a protocol standard; it is a compact comparison signal used by this tool.
Production readiness labels are chosen from the measured results. Examples include method compatibility issues, stale node risk, high timeout risk, possible rate limiting, fast and stable, slow but reliable, and similar performance. The label is meant to summarize what is most likely to break in real usage.
Actionable findings are generated from concrete benchmark evidence and use a Problem → Why it matters → What to do next structure in the report. Repeated HTTP 429 responses produce a rate-limit finding, 401/403 responses produce an access finding, high timeout rate produces a timeout-risk finding, method-specific failures produce compatibility findings, high jitter produces a consistency finding, and block lag produces a freshness finding.
Freshness rules
Limitations