CompareNodes provides independent and transparent RPC benchmarking services for blockchain nodes and endpoints. Our default regions are North America, Europe and Asia. Other regions are also available upon request.
A typical benchmark run lasts 15 minutes and dispatches between 1 million and 5 million RPC requests to capture successes, fails and timeouts for a mix of 23-25 popular RPC methods.
Related Materials
- Use Cases: RPC Consumers & RPC Sellers
- Example: AWS Managed Blockchain M5.4xlarge vs. C5.4xlarge
- Dashboard Documentation (request permission)
- 25 RPC Scenarios for EVM Protocols
- Sign-Up for RPC Benchmarking With These Steps
Supported Protocols & Networks
| Protocol | Networks | Full-node mode | Archive mode |
| Arbitrum One | Mainnet, Sepolia | 24 RPC scenarios | 24 RPC scenarios |
| Avalanche | C-chain Mainnet | 24 RPC scenarios | 24 RPC scenarios |
| Base | Mainnet, Sepolia | 24 RPC scenarios | 24 RPC scenarios |
| Blast | Mainnet, Sepolia | 24 RPC scenarios | 24 RPC scenarios |
| BSC | Mainnet, Chapel | 24 RPC scenarios | 24 RPC scenarios |
| Ethereum | Mainnet, Holesky, Sepolia | 24 RPC scenarios | 24 RPC scenarios |
| Mantle | Mainnet, Sepolia | 24 RPC scenarios | 24 RPC scenarios |
| opBNB | Mainnet, Testnet | 25 RPC scenarios | 25 RPC scenarios |
| Optimism | Mainnet, Sepolia | 24 RPC scenarios | 24 RPC scenarios |
| Polygon | Mainnet, Amoy | 24 RPC scenarios | 24 RPC scenarios |
| Scroll | Mainnet, Sepolia | 24 RPC scenarios | 24 RPC scenarios |
| Swellchain | Mainnet, Testnet | 24 RPC scenarios | 24 RPC scenarios |
| Unichain | Sepolia | 24 RPC scenarios | 24 RPC scenarios |
| ZKsync Era | Mainnet, Sepolia | 24 RPC scenarios | 24 RPC scenarios |
| OTHER EVM Protocols | Please let us know |
25 RPC Scenarios for EVM Protocols
Percentage values are adjustable for each protocol-network. The table below shows the setup for a “generic” EVM network. Specific setup is determined during the consultation call (see the steps section on the bottom).
| Method | Weight | RPC / sec @ 5k peak | Note |
| eth_call | 0.3300 | 1650 | Executes Sol bytecode for eth_blockNumber() |
| eth_blockNumber | 0.2100 | 1050 | Additional requests are made to update params for other methods |
| eth_chainId | 0.1200 | 600 | — |
| eth_getBalance | 0.0815 | 408 | Updated with new blockNumbers or offset for archive mode |
| eth_getBlockByNumber | 0.0700 | 350 | Additional requests are made to update params for other methods |
| eth_getTransactionReceipt | 0.0700 | 350 | Updated with new txHash to follow the top of the chain |
| eth_getLogs | 0.0500 | 250 | Updated with new blockNumbers to follow the top of the chain |
| eth_getTransactionByHash | 0.0200 | 100 | Updated with new txHash to follow the top of the chain |
| eth_getTransactionCount | 0.0200 | 100 | Updated with new blockNumbers to follow the top of the chain |
| eth_getCode | 0.0055 | 28 | — |
| eth_gasPrice | 0.0050 | 25 | — |
| eth_feeHistory | 0.0035 | 18 | — |
| batch_eth_blockNumber | 0.0035 | 18 | 21 invocations of eth_blockNumber(); not applicable to Amazon Managed Blockchain |
| eth_getStorageAt | 0.0035 | 18 | — |
| eth_getBlockByHash | 0.0016 | 8 | Updated with new hash to follow the top of the chain |
| web3_clientVersion | 0.0016 | 8 | — |
| eth_estimateGas | 0.0016 | 8 | Executes Sol bytecode for eth_blockNumber() |
| eth_getTransactionByBlockHashAndIndex | 0.0006 | 3 | Updated with new hash to follow the top of the chain |
| eth_syncing | 0.0006 | 3 | — |
| net_listening | 0.0006 | 3 | — |
| net_version | 0.0006 | 3 | — |
| eth_getBlockTransactionCountByHash | 0.0001 | 1 | Updated with new hash to follow the top of the chain |
| eth_getBlockTransactionCountByNumber | 0.0001 | 1 | Updated with new blockNumbers to follow the top of the chain |
| eth_maxPriorityFeePerGas | 0.0001 | 1 | — |
| debug_traceCall | 0.0 | 0 | ad hoc |
RPC Benchmarking Setup Process & Steps
- Schedule a consultation with our CTO Simon using this Calendly link
- We will evaluate your goals and determine the appropriate benchmark setup parameters: RPC requests per second; regions; protocols; full-node vs. archive mode etc.
- Also, we will share pricing and timing information during this session.
- Schedule each of your benchmarks:
- You will receive a separate calendar link during the consultation call;
- When you pick your slot, you will provide to us endpoints/credentials;
- We will share with you our static IP addresses in case you need to setup firewall.
- We will run the benchmarks during the slots you selected.
- Receive private results:
- For each rpc benchmark run, we will create a dedicated dashboard in Grafana and share it with you & your team privately — we will send dedicated user credentials.
- After your review of the results, you will inform us if you wish that we publish your results on CompareNodes.com and/or on your domain via <iFrame>. Otherwise, the results will remain private and accessible to your credentials in Grafana.
