eth_blockNumber on Monad
Everything below was measured on 2026-10-13 by calling eth_blockNumber on Monad 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 Monad: what we measured
| Head block when measured | 113,043,817 (0x6bce969) |
|---|---|
| Age of that block when read | 1 s |
| Average block time (last 1,000 blocks) | 302 ms |
| Median gap between newHeads over WebSocket | 301 ms |
| "safe" behind the head | 0 blocks |
| "finalized" behind the head | 0 blocks |
What this means for polling
Monad produces a block about every 302 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 Monad) or fetch the skipped range with eth_getBlockByNumber.
"finalized" pointed at the head block itself on Monad: its nodes report each new block as finalized, so the tag adds no safety over "latest". If you need settlement on Ethereum or protection from deep reorgs, check Monad's own finality rules rather than the tag.
Compared with other chains
Measured by the gap between WebSocket headers, Monad has the 3rd fastest block cadence of the 40 chains we measure.
Example request
curl -s https://rpc.swiftnodes.io/rpc/monad?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/monad?key=YOUR_API_KEY"),
});
const head = await client.getBlockNumber(); // bigint
// Follow the chain: poll about once per block (302 ms on Monad)
const unwatch = client.watchBlockNumber({
pollingInterval: 302,
onBlockNumber: (n) => console.log("new head", n),
});Other methods on Monad
- 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_getProofNot available
- eth_createAccessListSupported
- debug_traceCallNot available
- trace_blockNot available
- trace_transactionNot available
eth_blockNumber on other chains
- Ethereum
- Base
- Arbitrum
- Optimism
- Polygon
- BNB Smart Chain
- Avalanche
- Sonic
- Linea
- Scroll
- zkSync Era
- Blast
- Mantle
- Gnosis
- Celo
- Berachain
- Unichain
- Kaia
- PulseChain
- World Chain
- Ronin
- Abstract
- ApeChain
- MegaETH
- Fantom
- Lisk
- Hemi
- X Layer
- 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 Monad support eth_blockNumber?
Yes. eth_blockNumber answered on the SwiftNodes Monad endpoint when our weekly probe called it through the customer path (2026-10-13).
How fast are blocks on Monad?
About 302 ms per block, averaged over recent blocks (measured 2026-10-13).
How often should I poll eth_blockNumber on Monad?
Polling cannot keep up with 302 ms blocks; subscribe to newHeads over WebSocket instead.
Monad endpoints, live block height and WebSocket status are on the Monad RPC page.
One key covers every chain we serve, and SwiftNodes has a free tier.