eth_getTransactionByHash on Arbitrum
Everything below was measured on 2026-10-13 by calling eth_getTransactionByHash on Arbitrum through the same endpoint customers use, and is re-measured weekly.
What eth_getTransactionByHash does
Returns a transaction by its hash: sender, recipient, value, input data, gas fields and signature, plus the block it was included in. It returns null for a hash the node does not know, and a transaction still in the mempool has a null blockNumber.
Transaction types on Arbitrum
Types of the 44 transactions in five consecutive blocks when we measured. Decoders that reject unknown types will fail on Arbitrum if any of these is missing from their list.
| 0x2 EIP-1559 | 33 (75%) |
|---|---|
| 0x0 legacy | 6 (14%) |
| 0x6a Arbitrum internal (per-block system update) | 5 (11%) |
A real Arbitrum transaction
A type 0x2 transaction from one of the latest blocks, as our endpoint returned it (long hex values shortened).
{
"blockHash": "0x4c7b470aa12cae66402b2ec5f6c8cfb742625ee95b71beea12c85e6ac3df83c7",
"blockNumber": "0x1ea98b88",
"from": "0xbf97926a5e28e98bb5de8e2460138c90f0431774",
"gas": "0x4e200",
"gasPrice": "0x142d0a0",
"maxFeePerGas": "0x2625a00",
"maxPriorityFeePerGas": "0x10c8e0",
"hash": "0xaa139c671cfac96fd23f6b819d83919c5b983a99822ef811319cc2bf667475e8",
"input": "0x0005f7a2bc0a0a00000000ffff00000000ffff00000000ffff0001a13538109e40",
"nonce": "0x3b26",
"to": "0xe844701934d9c6085b292e428f41b911cc0b3872",
"transactionIndex": "0x1",
"value": "0x0",
"type": "0x2",
"accessList": [],
"chainId": "0xa4b1",
"v": "0x0",
"r": "0x6b3e97300e6412260c6d1fab17ea5227915667d8ca60f6b258a90177f3335fc0",
"s": "0x647e6d135be6b475792130bcc51d8c4cab7a8209ea077b1556c0b30f01bbdbd4",
"yParity": "0x0"
}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_getTransactionByHash","params":["0xaa139c671cfac96fd23f6b819d83919c5b983a99822ef811319cc2bf667475e8"]}'import { createPublicClient, http } from "viem";
const client = createPublicClient({
transport: http("https://rpc.swiftnodes.io/rpc/arbitrum?key=YOUR_API_KEY"),
});
const tx = await client.getTransaction({ hash: "0xaa139c671cfac96fd23f6b819d83919c5b983a99822ef811319cc2bf667475e8" });
if (tx.blockNumber === null) console.log("still pending");
console.log(tx.type, tx.from, tx.to, tx.value);Other methods on Arbitrum
- eth_blockNumberSupported
- eth_chainIdSupported
- eth_getBalanceSupported
- eth_getBlockByNumberSupported
- 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_transactionNot available
eth_getTransactionByHash on other chains
- Ethereum
- Base
- 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
- 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 Arbitrum support eth_getTransactionByHash?
Yes. eth_getTransactionByHash answered on the SwiftNodes Arbitrum endpoint when our weekly probe called it through the customer path (2026-10-13).
Which transaction types does Arbitrum use?
In five recent blocks: 5 × 0x6a (Arbitrum internal (per-block system update)), 33 × 0x2 (EIP-1559), 6 × 0x0 (legacy).
Why does eth_getTransactionByHash return null on Arbitrum?
The node does not know the hash: it was never broadcast, it was dropped from the mempool, or it was sent to another chain. Check the hash and the chain ID before retrying.
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.