eth_getTransactionReceipt on World Chain
Everything below was measured on 2026-10-13 by calling eth_getTransactionReceipt on World Chain through the same endpoint customers use, and is re-measured weekly.
What eth_getTransactionReceipt does
Returns the outcome of a mined transaction: status (1 success, 0 reverted), gas used, the effective gas price, the logs it emitted and any contract it created. It returns null until the transaction is in a block.
eth_getTransactionReceipt on World Chain: what we measured
| Fields | 22 (7 beyond the Ethereum set) |
|---|---|
| Receipt for an unknown hash | null |
| Size of the sample receipt | 4.9 KB |
Reading the fee and fields
Beyond the Ethereum fields, World Chain receipts carry 7 more. l1Fee: the L1 data fee in wei, charged on top of gasUsed × effectiveGasPrice. Add it to get the real cost; l1GasPrice: the Ethereum base fee the L1 fee was priced with; l1GasUsed: the L1 gas the transaction's compressed data was estimated to use; l1BlobBaseFee: the Ethereum blob base fee the L1 fee was priced with; l1BaseFeeScalar: the weight of Ethereum's execution base fee in the L1 fee (post-Ecotone formula); l1BlobBaseFeeScalar: the weight of Ethereum's blob base fee in the L1 fee; daFootprintGasScalar: the data-availability footprint scalar from the OP Stack fee configuration.
gasUsed × effectiveGasPrice is not the whole cost on World Chain. In the sample receipt below, execution cost 214,882,500,000 wei and the L1 data fee (l1Fee) 9,311,631,766 wei, so 4.1% of what the sender paid was the L1 fee. A wallet or accounting tool that ignores l1Fee understates fees.
A hash the node has not seen returns null, not an error, so poll until it is non-null (viem's waitForTransactionReceipt does this) and give up after a timeout.
A real World Chain receipt
As our endpoint returned it; logs collapsed to a count and long hex values shortened.
{
"type": "0x2",
"status": "0x1",
"cumulativeGasUsed": "0x2e42d",
"logsBloom": "0x0000000000001000…(256 bytes)",
"logs": "5 logs",
"transactionHash": "0x5705db8af2bbc2a1e0f6fce6c873feaa6b39c1f94941bf4443c3f0f4b282d31a",
"from": "0x6b20d52f8a76dc799a411240a50b2513ce3d8773",
"to": "0x0000000071727de22e5e9d8baf0edac6f37da032",
"contractAddress": null,
"gasUsed": "0x22f97",
"effectiveGasPrice": "0x16e360",
"blockHash": "0x695dcac567c8a7dd868d3d02ceb72caaa4dfd69d54eb5f8c98cf2679b98a5311",
"blockNumber": "0x2299a13",
"transactionIndex": "0x1",
"blobGasUsed": "0x22f60",
"l1Fee": "0x22b043996",
"l1GasPrice": "0x8209086",
"l1GasUsed": "0x166e",
"l1BlobBaseFee": "0x7556d0",
"l1BaseFeeScalar": "0x21f9",
"l1BlobBaseFeeScalar": "0xdd3ef",
"daFootprintGasScalar": "0x190"
}Example request
curl -s https://rpc.swiftnodes.io/rpc/worldchain?key=YOUR_API_KEY \
-X POST -H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"eth_getTransactionReceipt","params":["0x5705db8af2bbc2a1e0f6fce6c873feaa6b39c1f94941bf4443c3f0f4b282d31a"]}'import { createPublicClient, http } from "viem";
const client = createPublicClient({
transport: http("https://rpc.swiftnodes.io/rpc/worldchain?key=YOUR_API_KEY"),
});
const receipt = await client.waitForTransactionReceipt({ hash, timeout: 60_000 });
if (receipt.status !== "success") throw new Error("reverted");
// Total cost on World Chain: execution plus the L1 data fee
const execution = receipt.gasUsed * receipt.effectiveGasPrice;
const total = execution + (receipt.l1Fee ?? 0n);Other methods on World Chain
- eth_blockNumberSupported
- eth_chainIdSupported
- eth_getBalanceSupported
- eth_getBlockByNumberSupported
- eth_getTransactionByHashNot available
- 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_getTransactionReceipt 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
- 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 World Chain support eth_getTransactionReceipt?
Yes. eth_getTransactionReceipt answered on the SwiftNodes World Chain endpoint when our weekly probe called it through the customer path (2026-10-13).
How do I get the total fee of a transaction on World Chain?
Add the receipt's l1Fee to gasUsed × effectiveGasPrice.
Why is the World Chain receipt null?
The transaction is not in a block yet, or the hash is unknown to the node. Keep polling with a timeout.
World Chain endpoints, live block height and WebSocket status are on the World Chain RPC page.
One key covers every chain we serve, and SwiftNodes has a free tier.