eth_getBlockByNumber on Mantle
Everything below was measured on 2026-10-13 by calling eth_getBlockByNumber on Mantle through the same endpoint customers use, and is re-measured weekly.
What eth_getBlockByNumber does
Returns a block by number or tag (latest, safe, finalized, pending, earliest): the header, and either the transaction hashes or the full transactions. Indexers, explorers and wallets use it to follow the chain.
eth_getBlockByNumber on Mantle: what we measured
| Header fields | 26 |
|---|---|
| Transactions per block | 1, 1, 1, 1, 1 in five consecutive blocks |
| Response size, full transactions (true) | 2.6 KB average |
| Response size, hashes only (false) | 1.8 KB |
| Gas limit | 60,000,000 |
| Gas used in the latest block | 57,487 (0.096% of the limit) |
| Base fee | 50.00 gwei |
| Tag "safe" | block 101,881,983 |
| Tag "finalized" | block 101,881,533 |
| Tag "pending" | block 101,882,184 |
| Tag "earliest" | block 0 |
What is different on Mantle
The header includes the fields added by London (EIP-1559 base fee), Shanghai (withdrawals), Cancun (EIP-4844 blob gas), Cancun (EIP-4788 beacon root), Prague (EIP-7685 requests). Code that assumes Ethereum's current header shape will parse it as is.
5 of the 5 transactions in those five blocks were system transactions (5 × type 0x7e, L1-to-L2 deposit (OP Stack)). They are not user activity: filter them out when counting transactions.
"finalized" was 646 blocks (about 22 min) behind the head.
A real Mantle block header
From block 101,882,178, as our endpoint returned it (long hex values shortened).
{
"baseFeePerGas": "0xba43b7400",
"blobGasUsed": "0x0",
"difficulty": "0x0",
"excessBlobGas": "0x0",
"extraData": "0x0100000032000000040000000ba43b7400",
"gasLimit": "0x3938700",
"gasUsed": "0xe08f",
"hash": "0xa0f2f7e077c652c89a20bbb5a6cf047f41d223b24056a00568ce1d06dfb0d379",
"logsBloom": "0x0000000000000000…(256 bytes)",
"miner": "0x4200000000000000000000000000000000000011",
"mixHash": "0x7b64dc7bd1f126c844f84c48696e6f343509b594fe1189f66bf1db070668b70b",
"nonce": "0x0000000000000000",
"number": "0x6129942",
"parentBeaconBlockRoot": "0xf13b5cfac215ea3fff5e9087faa9ee9a6d048d80dfd16f7ba2efe41e478f6ee1",
"parentHash": "0xd2e72dd2bd708b29508d983532633f6d831fae8a9838357ca661b2ec0618615e",
"receiptsRoot": "0x72fb0c7c38013bcf1578ce0d41a757b24157a884e243cdcf5b486c9600e19a06",
"requestsHash": "0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"size": "0x390",
"stateRoot": "0x430ef38483c17500b1af9ed962aa09d21267fddc36db70605c6acee1d96ae8a4",
"timestamp": "0x6ace248c",
"transactions": "1 transactions",
"transactionsRoot": "0x2076144e5b84d041ce59c02d077ce7a45b752f1de30435351f731738dd0e95e9",
"uncles": [],
"withdrawals": [],
"withdrawalsRoot": "0xafefd36ac60f0ee83cf878a9dab0f1ca86e77650940fc453b9718ece6b7b5c02"
}Example request
curl -s https://rpc.swiftnodes.io/rpc/mantle?key=YOUR_API_KEY \
-X POST -H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"eth_getBlockByNumber","params":["latest",false]}'import { createPublicClient, http } from "viem";
const client = createPublicClient({
transport: http("https://rpc.swiftnodes.io/rpc/mantle?key=YOUR_API_KEY"),
});
// Header plus transaction hashes (1.8 KB)
const block = await client.getBlock({ blockTag: "latest" });
// With full transactions (2.6 KB on average on Mantle)
const full = await client.getBlock({ blockNumber: block.number, includeTransactions: true });
const userTxs = full.transactions.filter((t) => !["0x7e"].includes(t.typeHex));
// A block that will not be reorganised
const final = await client.getBlock({ blockTag: "finalized" });Other methods on Mantle
- eth_blockNumberSupported
- eth_chainIdSupported
- eth_getBalanceSupported
- 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_blockNot available
- trace_transactionNot available
eth_getBlockByNumber on other chains
- Ethereum
- Base
- Arbitrum
- Optimism
- Polygon
- BNB Smart Chain
- Avalanche
- Sonic
- Linea
- Scroll
- zkSync Era
- Blast
- Gnosis
- Celo
- Berachain
- Monad
- 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 Mantle support eth_getBlockByNumber?
Yes. eth_getBlockByNumber answered on the SwiftNodes Mantle endpoint when our weekly probe called it through the customer path (2026-10-13).
How many transactions are in each Mantle block?
In five consecutive blocks on 2026-10-13: 1, 1, 1, 1, 1.
Mantle endpoints, live block height and WebSocket status are on the Mantle RPC page.
One key covers every chain we serve, and SwiftNodes has a free tier.