RPC method

eth_blockNumber on Arbitrum

Supported on SwiftNodes

Everything below was measured on 2026-10-13 by calling eth_blockNumber on Arbitrum through the same endpoint customers use, and is re-measured weekly.

What eth_blockNumber does

Returns the number of the most recent block the node has, as a hex string. It is the cheapest way to tell whether a node is keeping up and the usual starting point for polling a chain.

eth_blockNumber on Arbitrum: what we measured

Head block when measured514,427,784 (0x1ea98b88)
Age of that block when read1 s
Average block time (last 1,000 blocks)295 ms
Median gap between newHeads over WebSocket262 ms
"safe" behind the head2,609 blocks (about 13 min)
"finalized" behind the head4,250 blocks (about 21 min)

What this means for polling

Arbitrum produces a block about every 295 ms, so a client that polls eth_blockNumber once a second sees the number jump by about 3 each time. If you need every block, subscribe to newHeads over WebSocket (see eth_subscribe on Arbitrum) or fetch the skipped range with eth_getBlockByNumber.

The number eth_blockNumber returns is the newest block, which can still change in a reorg. On Arbitrum, "finalized" was 4,250 blocks (about 21 min) behind it and "safe" 2,609 blocks behind. Use eth_getBlockByNumber("finalized") when you need a height that will not change.

Compared with other chains

Measured by the gap between WebSocket headers, Arbitrum has the 2nd fastest block cadence of the 40 chains we measure.

Example request

curl -s https://rpc.swiftnodes.io/rpc/arbitrum?key=YOUR_API_KEY \
  -X POST -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}'
import { createPublicClient, http } from "viem";

const client = createPublicClient({
  transport: http("https://rpc.swiftnodes.io/rpc/arbitrum?key=YOUR_API_KEY"),
});

const head = await client.getBlockNumber(); // bigint

// Follow the chain: poll about once per block (295 ms on Arbitrum)
const unwatch = client.watchBlockNumber({
  pollingInterval: 295,
  onBlockNumber: (n) => console.log("new head", n),
});

Other methods on Arbitrum

eth_blockNumber on other chains

Frequently asked questions

Does Arbitrum support eth_blockNumber?

Yes. eth_blockNumber answered on the SwiftNodes Arbitrum endpoint when our weekly probe called it through the customer path (2026-10-13).

How fast are blocks on Arbitrum?

About 295 ms per block, averaged over recent blocks (measured 2026-10-13).

How often should I poll eth_blockNumber on Arbitrum?

Polling cannot keep up with 295 ms blocks; subscribe to newHeads over WebSocket instead.

Arbitrum endpoints, live block height and WebSocket status are on the Arbitrum RPC page.

One key covers every chain we serve, and SwiftNodes has a free tier.