RPC method

eth_getTransactionReceipt on Katana

Supported on SwiftNodes

Everything below was measured on 2026-10-13 by calling eth_getTransactionReceipt on Katana 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 Katana: what we measured

Fields26 (11 beyond the Ethereum set)
Receipt for an unknown hashnull
Size of the sample receipt1.3 KB

Reading the fee and fields

Beyond the Ethereum fields, Katana receipts carry 11 more. daFootprintGasScalar: the data-availability footprint scalar from the OP Stack fee configuration; depositNonce: the nonce of an L1-to-L2 deposit transaction; depositReceiptVersion: the version of the deposit receipt format; l1BaseFeeScalar: the weight of Ethereum's execution base fee in the L1 fee (post-Ecotone formula); l1BlobBaseFee: the Ethereum blob base fee the L1 fee was priced with; l1BlobBaseFeeScalar: the weight of Ethereum's blob base fee in the L1 fee; 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; operatorFeeConstant: the fixed operator fee (OP Stack Isthmus operator fee); operatorFeeScalar: the operator fee scalar (OP Stack Isthmus operator fee).

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 Katana receipt

As our endpoint returned it; logs collapsed to a count and long hex values shortened.

{
  "blobGasUsed": "0xb090",
  "blockHash": "0xb09df6e9fa3a5029622ec24137a8e968f98e4d677d469f54e9f77bff82136dce",
  "blockNumber": "0x2b0f99f",
  "contractAddress": null,
  "cumulativeGasUsed": "0xb4ba",
  "daFootprintGasScalar": "0x190",
  "depositNonce": "0x2b0f9bd",
  "depositReceiptVersion": "0x1",
  "effectiveGasPrice": "0x0",
  "from": "0xdeaddeaddeaddeaddeaddeaddeaddeaddead0001",
  "gasUsed": "0xb4ba",
  "l1BaseFeeScalar": "0x558",
  "l1BlobBaseFee": "0x710876",
  "l1BlobBaseFeeScalar": "0xc3c9d",
  "l1Fee": "0x0",
  "l1GasPrice": "0x6a59178",
  "l1GasUsed": "0x71d",
  "logs": "0 logs",
  "logsBloom": "0x0000000000000000…(256 bytes)",
  "operatorFeeConstant": "0x0",
  "operatorFeeScalar": "0x186a0",
  "status": "0x1",
  "to": "0x4200000000000000000000000000000000000015",
  "transactionHash": "0x3a20eaf56b905e2af1e800567be789071bd4c7f94585afbd1daa60d6d8994716",
  "transactionIndex": "0x0",
  "type": "0x7e"
}

Example request

curl -s https://rpc.swiftnodes.io/rpc/katana?key=YOUR_API_KEY \
  -X POST -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"eth_getTransactionReceipt","params":["0x3a20eaf56b905e2af1e800567be789071bd4c7f94585afbd1daa60d6d8994716"]}'
import { createPublicClient, http } from "viem";

const client = createPublicClient({
  transport: http("https://rpc.swiftnodes.io/rpc/katana?key=YOUR_API_KEY"),
});

const receipt = await client.waitForTransactionReceipt({ hash, timeout: 60_000 });
if (receipt.status !== "success") throw new Error("reverted");

// Total cost on Katana: execution plus the L1 data fee
const execution = receipt.gasUsed * receipt.effectiveGasPrice;
const total = execution + (receipt.l1Fee ?? 0n);

Other methods on Katana

eth_getTransactionReceipt on other chains

Frequently asked questions

Does Katana support eth_getTransactionReceipt?

Yes. eth_getTransactionReceipt answered on the SwiftNodes Katana 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 Katana?

Add the receipt's l1Fee to gasUsed × effectiveGasPrice.

Why is the Katana receipt null?

The transaction is not in a block yet, or the hash is unknown to the node. Keep polling with a timeout.

Katana endpoints, live block height and WebSocket status are on the Katana RPC page.

One key covers every chain we serve, and SwiftNodes has a free tier.