Data Sources & Methodology

Full transparency on all addresses, contracts, and providers used in our benchmarks. Every address is verifiable on-chain through the links provided below.

Why Transparency Matters

Benchmark results are only meaningful if they're reproducible. By using the same well-known addresses across all providers, we ensure fair comparisons. High-activity wallets like vitalik.eth stress-test API performance with real-world data volumes. All addresses are publicly verifiable.

Test Wallets
Wallet addresses used for portfolio, transfer, and NFT benchmarks

Vitalik Buterin

vitalik.eth

Ethereum

Primary test wallet

One of the most active wallets on Ethereum with thousands of token holdings, hundreds of NFTs, and millions of transactions. Chosen because it stress-tests API pagination, indexing depth, and response payload handling. Every provider must demonstrate they can handle real-world data volumes.

Why chosen: Massive transaction history, diverse token holdings, extensive NFT collection - perfect for stress-testing data APIs

Uniswap Wallet

Alternative Test

Ethereum

Validation wallet

Secondary wallet used to validate consistency of benchmark results. Ensures APIs don't have special-case optimizations for popular addresses like vitalik.eth.

Why chosen: Cross-validates results, ensures no special-casing for famous addresses

Solana Test Wallet

High Activity

Solana

Solana benchmarks

High-activity Solana wallet with substantial SOL and SPL token holdings. Used for Solana-specific benchmarks and QuickNode RPC comparisons.

Why chosen: High transaction volume, diverse SPL token holdings, suitable for Solana API testing

USDC Contracts
Stablecoin contracts used for RPC race benchmarks (balanceOf calls)

USDC on Ethereum Mainnet

Ethereum Mainnet

RPC race - balanceOf()

Circle's official USDC stablecoin contract on Ethereum mainnet. This is one of the highest-volume contracts on Ethereum, processing millions of transfers daily.

Why chosen: Most liquid stablecoin, highest transfer volume, ideal for real-world RPC latency testing

USDC on Base Mainnet

Base Mainnet

RPC race - balanceOf()

Native USDC on Base L2 (not bridged). This is the official Circle-issued USDC contract on Coinbase's L2 network.

Why chosen: L2 comparison, native USDC (not bridged), high activity on Base

USDC on Ethereum Sepolia

Ethereum Sepolia

Testnet benchmarks

Circle's official USDC testnet token on Sepolia. Used for development and testing without real assets.

Why chosen: Official testnet token, faucet available, matches mainnet contract interface

USDC on Base Sepolia

Base Sepolia

Testnet benchmarks

USDC test token on Base's Sepolia testnet. Used for L2 development testing.

Why chosen: Base L2 testnet, compatible with Base mainnet workflows

USDC on Solana Mainnet

Solana Mainnet

Solana token benchmarks

Circle's official USDC SPL Token Mint on Solana. This is the canonical USDC token on Solana with the highest liquidity and adoption.

Why chosen: Official SPL token mint, highest Solana stablecoin volume, cross-chain comparison

USDC on Solana Devnet

Solana Devnet

Solana testnet benchmarks

USDC SPL Token on Solana devnet for development testing and integration validation.

Why chosen: Devnet testing, faucet tokens available

Race Target Wallets
High-balance wallets used as targets for balanceOf() calls in RPC races

Circle USDC Treasury

Ethereum

balanceOf() target

Circle's primary USDC treasury on Ethereum. This address holds billions of USDC and is used as the target for balanceOf() calls in RPC benchmarks.

Why chosen: Guaranteed high balance (billions), stable holdings, never zero - ensures consistent benchmark results

Coinbase on Base

Base

balanceOf() target

Coinbase's custody address on Base L2. Holds significant USDC reserves and is used as the target for Base chain RPC benchmarks.

Why chosen: Major L2 holder, significant USDC balance, reliable for Base chain testing

Benchmark Contracts (Data API vs RPC)
Custom deployed contracts for real-time comparison of Data API indexing vs direct RPC calls

How This Benchmark Works

These custom contracts let us measure the real-time performance gap between Data APIs and direct RPC calls:

  1. Write: Call increment() to change contract state and emit an event
  2. RPC Read: Immediately call get() via RPC to read the new value
  3. Data API Read: Query the Data API for the event/transaction to see when it's indexed
  4. Compare: Measure the latency difference between RPC (instant) and Data API (indexing delay)

This shows the trade-off: RPC is faster for reads, but Data APIs provide enriched, queryable data.

Counter Contract (EVM)

Ethereum Sepolia

Data API vs RPC

Custom Solidity counter contract deployed for real-time benchmarking. Exposes get() for reads, increment() for writes, and emits events on state changes. Compares how fast Data APIs index new events vs direct RPC reads.

Functions

get() - Read current valueincrement() - Increase and emit eventset(uint256) - Set value

Events

Incremented(uint256 newValue)Set(uint256 newValue)

Why chosen: Simple, deterministic state changes with events - perfect for measuring indexing latency vs RPC latency

contracts/Counter.solView on Etherscan

Counter Program (Solana)

Solana Devnet

Data API vs RPC

Custom Anchor program deployed for Solana benchmarking. Stores a counter in a PDA account. Tests how fast Data APIs reflect account state changes vs direct RPC account reads.

Functions

initialize(u64) - Create counterincrement() - Increase countset(u64) - Set value

Events

Account state changes logged via Anchor

Why chosen: Minimal Anchor program with predictable account structure - measures Solana indexing latency

solana/benchmark_counter/src/lib.rsView on Solscan
Event Signatures (Topics)
ERC20 event topic hashes used for log filtering and streaming benchmarks

Transfer

Event streaming benchmarks

Signature

Transfer(address indexed from, address indexed to, uint256 value)

Topic / Selector Hash

0xddf252ad1be2c89b69c2b068fc378daa80d26c7b64e6aed60d5a63c29e1f96e5

The ERC20 Transfer event emitted whenever tokens are transferred between addresses. This is the most common event on Ethereum and is used for real-time transfer monitoring benchmarks.

Approval

Event filtering tests

Signature

Approval(address indexed owner, address indexed spender, uint256 value)

Topic / Selector Hash

0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925

The ERC20 Approval event emitted when an allowance is set. Used to test event filtering capabilities alongside Transfer events.

Function Selectors
ERC20 function selectors used for eth_call RPC benchmarks

balanceOf

Primary RPC benchmark

Signature

balanceOf(address)

Topic / Selector Hash

0x70a08231

Returns the token balance of an address. This is the function called in RPC races to measure raw read latency across different providers.

totalSupply

Contract verification

Signature

totalSupply()

Topic / Selector Hash

0x18160ddd

Returns the total token supply. Used to verify contract state and validate RPC responses.

decimals

Response parsing

Signature

decimals()

Topic / Selector Hash

0x313ce567

Returns the number of decimals for the token. Used to correctly parse balance responses (USDC uses 6 decimals).

Available Benchmark Tests
Two benchmark tests comparing Data API vs RPC performance

Ethereum Test

Sepolia Testnet

Compares Data API indexing speed vs direct RPC calls on Ethereum Sepolia

Contract

0xB3492cf80B1C2F6FaF88abF40c315FaC1E48CAeF

Solana Test

Devnet

Compares Data API indexing speed vs direct RPC calls on Solana Devnet

Contract

HN5wEkDnunHUqRzZZMudVBVDvdbQVgrcbGJnvyPZ8D7p
API Providers Tested
Data API and RPC providers included in the benchmark suite
ProviderTypeCoverageStreamingDescription
GoldRush (Covalent)Data APIEVM + SolanaGraphQL WebSocketUnified multichain data API with REST and GraphQL WebSocket streaming. Provides indexed, enriched blockchain data.
MoralisData APIEVMWebhooksWeb3 data platform with extensive EVM chain support. Uses webhook-based streaming.
CodexData APIEVMGraphQLToken price and market data API via GraphQL. Specializes in DeFi token analytics.
MobulaData APIEVM + MultiWebSocketMarket data and wallet analytics with WebSocket streaming support.
AlchemyRPCEVMWebSocketEnterprise-grade node infrastructure with enhanced APIs. Industry standard for EVM RPC.
AnkrRPCEVMRPCDistributed multichain RPC with geo-distributed nodes. Free tier available.
PublicNodeRPCEVMRPCFree, public RPC endpoints. No rate limiting, community-operated.
dRPCRPCEVMRPCDecentralized RPC network with multiple node providers. Free tier with generous limits.
LlamaRPCRPCEVMRPCPrivacy-preserving RPC by DefiLlama. No request logging, free to use.
QuickNodeRPCSolanaWebSocketHigh-performance Solana RPC with WebSocket support. Used for Solana benchmarks.

Benchmark Methodology

  • Server-side timing: All latency measurements are taken server-side using high-resolution timers to eliminate client-side variance, network jitter, and browser differences.
  • Warm-up calls: 2 warm-up requests are made before measuring to account for cold starts, connection pooling, and DNS resolution. Only steady-state performance is measured.
  • Identical parameters: Same wallet addresses (vitalik.eth), page sizes (100 items), and time windows across all providers to ensure apples-to-apples comparison.
  • Rate limit compliance: All requests stay within each provider's free tier limits. We implement exponential backoff (400ms base, 4s max) for rate-limited responses.
  • No caching: Each test makes fresh API calls without response caching. We measure actual API performance, not CDN or cache performance.
  • Timeout handling: 30-second timeout per request. Failed requests are recorded separately and don't skew latency averages.

Summary

3
Test Wallets
2
Benchmark Contracts
10
Providers
2
Available Tests

Reproducibility

All addresses and contracts listed on this page are publicly verifiable. Click any address to view it on the corresponding block explorer. You can independently verify:

  • • Wallet transaction history and token holdings
  • • Contract source code (verified contracts)
  • • Token transfer volumes and activity levels
  • • Historical balance changes