EVM RPC and Node Providers: Ethereum, Base, Arbitrum

The same RPC call returns different things on Ethereum, Base and Arbitrum. Here is why that matters when you choose an EVM RPC or node provider, and where the JSON-RPC layer runs out.

Share
EVM RPC and Node Providers: Ethereum, Base, Arbitrum

Here is the thing most teams learn the hard way: an EVM RPC endpoint on Ethereum, Base and Arbitrum speaks the same language but does not return the same reality. All three implement the Ethereum JSON-RPC specification, so eth_getBalance and eth_getLogs look identical across them. But an Arbitrum block, a Base L2 fee, and an Ethereum finality guarantee mean different things, and a naive multi-chain integration built on "it's all EVM" will quietly return inconsistent data. That gap is the whole reason to think carefully about which EVM RPC and node providers you use.

An EVM RPC provider gives your application a hosted JSON-RPC endpoint to read blockchain state and submit transactions without running your own node. A node provider runs the actual client software (execution and consensus clients) and exposes it as a service. For Ethereum and its rollups (Base, Arbitrum, Optimism, and others), these are the plumbing every wallet, indexer and backend depends on.

Key takeaways

  • EVM RPC and node providers all implement the same JSON-RPC methods, but Ethereum L1, Base and Arbitrum differ in block structure, finality and fee mechanics, so identical calls carry different meaning.
  • RPC access is optimized for reading current state and sending transactions. It is a poor fit for historical analysis across many chains, which requires an indexing and normalization layer on top.
  • Base is an OP Stack rollup operated by Coinbase, and Arbitrum One runs the Arbitrum Nitro stack. Their sequencing and fee models are documented by their own teams and are not interchangeable.
  • Choose a provider by the job: low-latency writes and free-tier reads point to hosted RPC, while cross-chain reconciliation and audited history point to a data infrastructure layer.

Why the "it's all EVM" assumption breaks

Ethereum mainnet reaches finality through its consensus layer, with a block considered final after roughly two epochs under the current proof-of-stake design described in the Ethereum developer documentation. Base and Arbitrum are Layer 2 rollups. They post data and proofs back to Ethereum, which means an L2 transaction your RPC endpoint reports as "included" is not final in the L1 sense until the underlying batch settles. If your application treats an L2 block confirmation the same way it treats an L1 one, you can act on state that could still reorganize during the settlement window.

Fees diverge too. On Ethereum, gas covers execution and the base fee mechanism from EIP-1559. On an OP Stack chain like Base, a transaction pays an L2 execution fee plus an L1 data fee that reflects the cost of posting the transaction to Ethereum. Arbitrum's Nitro stack, documented in the Arbitrum developer docs, uses its own gas accounting that separates L2 gas from L1 calldata costs. A single "gas used" number pulled through RPC does not tell you the full cost of a transaction on either rollup without additional context.

This is why choosing an EVM node provider is not just an uptime question. The provider determines which chains you can reach, how deep the history goes, and whether your reads are consistent when you fan out across L1 and L2s.

How EVM RPC access works, step by step

  1. Your app opens a connection to a provider endpoint over HTTPS or WebSocket. WebSocket matters when you want to subscribe to new blocks or pending transactions rather than poll.
  2. You send a JSON-RPC request such as eth_call (read a contract), eth_getLogs (fetch events) or eth_sendRawTransaction (broadcast a signed transaction).
  3. The provider routes it to a node running the relevant client for that chain, executes the query against current or historical state, and returns the result.
  4. Archive versus full node matters here. A full node keeps recent state and can serve current reads cheaply. An archive node retains all historical state, which is what you need for eth_getBalance at an old block. Archive access is heavier and usually gated behind higher tiers.
  5. You handle the response quirks per chain. Rate limits, block-range caps on eth_getLogs, and reorg handling all vary by provider and by chain.

What to compare across providers

Compare EVM RPC and node providers on attributes you can verify from their own documentation: which chains they support, whether they offer archive data, their access model, and their published certifications. Latency claims are real but hard to verify without your own load testing, so treat them as directional. The table below frames the categories rather than declaring a winner, because the right pick depends on whether you are building a wallet, a backend, or an analytics pipeline.

Provider typeBest-fit jobChain coverageHistorical depthAccess model
Hosted EVM RPC (e.g. Alchemy, Infura)Wallet reads, transaction broadcast, dApp backendsEthereum plus major L2s including Base and Arbitrum, per each provider's docsFull and archive tiers vary by planAPI key, tiered rate limits, pricing on the vendor page
Self-run node (Geth, Reth, Nitro)Full control, no third-party dependencyWhatever you deploy and maintainArchive if you provision the storageYour own infrastructure and ops burden
Indexing layer (e.g. The Graph)Querying contract events as structured dataPer-subgraph, chain by chainFrom subgraph start blockGraphQL, subgraph deployment
Data infrastructure (Allium)Cross-chain analysis, reconciliation, audited historyEthereum, Base, Arbitrum and other chains, per Allium's docsFull history normalized into shared schemasDatabase, API, and data streams; covered by a SOC 2 Type II report

Read this as a job map, not a ranking. A wallet team broadcasting transactions wants a hosted RPC with low write latency. A team building a lending dashboard across Ethereum, Base and Arbitrum wants structured, comparable history and will hit a wall trying to assemble it from raw RPC calls.

What raw RPC gives you, and where it stops

RPC is excellent at what it was designed for. Concretely, here is the before and after of choosing correctly:

  • Faster reads on current state: instead of syncing and maintaining your own node before you can call a contract, a hosted endpoint returns a balance or an event log in one request.
  • Reliable transaction broadcast: instead of managing peer connections and mempool propagation yourself, you post a signed transaction and the provider handles propagation.
  • No ops burden for archive history: instead of provisioning multi-terabyte archive storage per chain, you query an old block through a provider tier.

Where RPC stops is analysis across time and across chains. eth_getLogs returns raw event topics and data, not decoded, labeled records. To ask "how much USDC moved across Ethereum, Base and Arbitrum last month, by sender and recipient," you would have to fetch logs from three chains, decode them against each contract ABI, reconcile the different fee and finality semantics, deduplicate reorged blocks, and convert to USD. That is thousands of paginated RPC calls and a decoding pipeline you now own and must keep correct.

The normalization problem RPC leaves you holding

Say you want to compare stablecoin activity on Base with the same activity on Ethereum and Arbitrum. Through RPC, a USDC transfer on each chain arrives as a Transfer event log: a contract address, indexed topics for sender and recipient, and a data field with the amount. But the contract addresses differ per chain, the amount needs decimal scaling, the L2 fee has two components, and the USD value depends on a price at that block. For the comparison to be valid, the same transfer has to resolve to the same fields on every chain: asset, issuer, sender, recipient, amount, USD value, and transaction type. Allium ingests raw data from many chains and standardizes it into those shared fields across Ethereum, Base, Arbitrum and the rest, turning three streams of raw logs into one comparable dataset.

If your question is closer to "read state and send transactions," stay on RPC. If it is closer to "reconcile and analyze onchain activity," the deciding factors are coverage and a consistent schema. The distinction between the RPC layer, higher-level APIs, and full data infrastructure is worth understanding before you commit, and we walk through it in RPC vs APIs vs data infrastructure. For teams weighing certification requirements in an enterprise context, SOC 2 for blockchain data providers covers what an attestation actually attests to.

Risks and open questions

  • Reorg and finality handling is on you at the RPC layer. Providers report inclusion, but your application must decide how many confirmations to wait for, and that number is not the same on L1 and L2.
  • Rate limits and block-range caps shape architecture. Large historical backfills through RPC hit pagination limits fast, which pushes teams toward batch data access anyway.
  • Sequencer dependence on L2s. Base and Arbitrum currently rely on centralized sequencers described in their own docs. Decentralization roadmaps are ongoing, and the trust assumptions differ from Ethereum L1.
  • Cross-chain consistency is not free. Whether you build normalization yourself or buy it, someone maintains the decoding and reconciliation as contracts and chains change.

For the equivalent breakdown on a non-EVM chain, our Solana RPC and data providers comparison covers how the same trade-offs look outside the EVM world.

Allium provides onchain data infrastructure. Companies named in this article may be Allium customers, prospects or commercial counterparties. This article is informational only and is not investment, legal or tax advice. Data and information last reviewed: September 25, 2026.

Frequently asked questions

What is the difference between an EVM RPC provider and a node provider?

A node provider runs the underlying client software (execution and consensus clients) and exposes it as a service. An EVM RPC provider gives you a hosted JSON-RPC endpoint to read state and send transactions on that node without operating it yourself. In practice most hosted providers do both: they run the nodes and expose the RPC interface.

Can I use the same RPC code for Ethereum, Base and Arbitrum?

The JSON-RPC method names are shared across all three because they implement the Ethereum JSON-RPC specification. But block finality, fee structure and sequencing differ. Base is an OP Stack rollup and Arbitrum runs the Nitro stack, so an L2 confirmation does not carry the same finality as Ethereum L1, and gas accounting differs. Your code can call the same methods but must handle these differences per chain.

Do I need an archive node for historical EVM data?

To read historical state such as a token balance at an old block, yes, you need archive access, either a self-run archive node or a provider tier that offers it. For current state and recent reads, a full node is enough. For querying large amounts of decoded history across chains, an indexing or data infrastructure layer is usually more practical than raw archive RPC.

Why is fetching cross-chain data hard through RPC alone?

eth_getLogs returns raw, undecoded event logs, and contract addresses, decimals, fee components and USD prices differ across Ethereum, Base and Arbitrum. Assembling a comparable dataset means decoding against each ABI, reconciling fee and finality semantics, handling reorgs, and converting to USD, all across thousands of paginated calls. That work is what a normalization layer removes.

Is running my own EVM node worth it?

It gives you full control and removes third-party dependency, but you take on sync time, archive storage costs that run into terabytes per chain, and ongoing operations. For most teams a hosted RPC covers reads and writes, and a data infrastructure layer covers analysis, without the maintenance burden. Self-running makes sense when control or specific privacy requirements outweigh the operational cost.

What does SOC 2 Type II mean for a blockchain data provider?

SOC 2 Type II is an attestation report by an independent auditor covering how an organization operates its security controls over a period of time. It is a report, not a certification, and it applies to the provider's controls rather than to any individual dataset or field. For enterprise buyers it signals that the provider's data handling has been independently examined.


Interested in learning more about Allium’s onchain data infrastructure? Speak to someone on the team.