eth_blockNumber on X Layer
Everything below was measured on 2026-10-13 by calling eth_blockNumber on X Layer 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 X Layer: what we measured
| Head block when measured | 73,127,741 (0x45bd73d) |
|---|---|
| Age of that block when read | 1 s |
| Average block time (last 1,000 blocks) | 1.0 s |
| Median gap between newHeads over WebSocket | 1.0 s |
| "safe" behind the head | 154 blocks (about 3 min) |
| "finalized" behind the head | 1,349 blocks (about 22 min) |
What this means for polling
At 1.0 s per block, a one-second poll returns a new number on roughly every call. Polling at the block time keeps you current without wasting requests.
The number eth_blockNumber returns is the newest block, which can still change in a reorg. On X Layer, "finalized" was 1,349 blocks (about 22 min) behind it and "safe" 154 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, X Layer has the 17th fastest block cadence of the 40 chains we measure.
Example request
curl -s https://rpc.swiftnodes.io/rpc/xlayer?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/xlayer?key=YOUR_API_KEY"),
});
const head = await client.getBlockNumber(); // bigint
// Follow the chain: poll about once per block (1.0 s on X Layer)
const unwatch = client.watchBlockNumber({
pollingInterval: 1000,
onBlockNumber: (n) => console.log("new head", n),
});Other methods on X Layer
- eth_chainIdSupported
- eth_getBalanceSupported
- eth_getBlockByNumberSupported
- eth_getTransactionByHashSupported
- eth_getTransactionReceiptSupported
- eth_callSupported
- eth_estimateGasSupported
- eth_gasPriceSupported
- eth_maxPriorityFeePerGasSupported
- eth_sendRawTransactionSupported
- eth_getTransactionCountSupported
- eth_getCodeSupported
- eth_subscribeSupported
- eth_getLogsSupported
- eth_getBlockReceiptsSupported
- eth_feeHistorySupported
- eth_getProofSupported
- eth_createAccessListSupported
- debug_traceCallSupported
- trace_blockSupported
- trace_transactionSupported
eth_blockNumber on other chains
- Ethereum
- Base
- Arbitrum
- Optimism
- Polygon
- BNB Smart Chain
- Avalanche
- Sonic
- Linea
- Scroll
- zkSync Era
- Blast
- Mantle
- Gnosis
- Celo
- Berachain
- Monad
- Unichain
- Kaia
- PulseChain
- World Chain
- Ronin
- Abstract
- ApeChain
- MegaETH
- Fantom
- Lisk
- Hemi
- BOB
- Plasma
- Fraxtal
- Zora
- Story
- Soneium
- Sei
- Hyperliquid
- Taiko
- Morph
- Ink
- Katana
- Ethereum Classic
- opBNB
- Mode
- Flare
- Core
- Chiliz
- Telos EVM
- Tempo
- Cronos
- Manta Pacific
- Shibarium
- Boba Network
- Arbitrum Nova
- Immutable zkEVM
Frequently asked questions
Does X Layer support eth_blockNumber?
Yes. eth_blockNumber answered on the SwiftNodes X Layer endpoint when our weekly probe called it through the customer path (2026-10-13).
How fast are blocks on X Layer?
About 1.0 s per block, averaged over recent blocks (measured 2026-10-13).
How often should I poll eth_blockNumber on X Layer?
About once per block, every 1.0 s. Faster polling mostly returns the same number.
X Layer endpoints, live block height and WebSocket status are on the X Layer RPC page.
One key covers every chain we serve, and SwiftNodes has a free tier.