RPC method

eth_getTransactionByHash on Celo

Supported on SwiftNodes

Everything below was measured on 2026-10-13 by calling eth_getTransactionByHash on Celo 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 Celo

Types of the 60 transactions in five consecutive blocks when we measured. Decoders that reject unknown types will fail on Celo if any of these is missing from their list.

0x7b Celo CIP-64 fee currency36 (60%)
0x2 EIP-155913 (22%)
0x0 legacy6 (10%)
0x7e L1-to-L2 deposit (OP Stack)5 (8%)

Fields beyond Ethereum's

Type 0x7e (L1-to-L2 deposit (OP Stack)) transactions carry extra fields. sourceHash: the unique ID of an L1-to-L2 deposit, derived from its L1 origin; mint: the amount of ETH minted on L2 by a deposit; depositReceiptVersion: the version of the deposit receipt format.

Type 0x7b (Celo CIP-64 fee currency) transactions carry extra fields. feeCurrency: the ERC-20 token gas was paid in (Celo fee abstraction).

Transactions include blockTimestamp, so you get the block time without a second call for the block.

A real Celo transaction

A type 0x2 transaction from one of the latest blocks, as our endpoint returned it (long hex values shortened).

{
  "accessList": [],
  "blockHash": "0x2bdc3a258be8a5fda2f3f680a1a371a53a61a0b71440be7d3ada14451443874b",
  "blockNumber": "0x4c49c6f",
  "blockTimestamp": "0x6ace24c5",
  "chainId": "0xa4ec",
  "from": "0xbbc43db9463bd5889af9c967de4394a3b3b106b5",
  "gas": "0x86470",
  "gasPrice": "0x33391660e0",
  "hash": "0xfe1948ab954fd0aff315a71f3f75a14c8be8dc050edf26760351479d2ce0063b",
  "input": "0x49aa240200000000…(1860 bytes)",
  "maxFeePerGas": "0x33391660e0",
  "maxPriorityFeePerGas": "0x33391660e0",
  "nonce": "0x377a04",
  "r": "0x2963983fdbb461324525d84e26698ea0588e01fff1effd7255c1207b453e02e9",
  "s": "0x592366c7e9509eb22093ac7f7ed50dc26cded618b659865f8139a6c2ae24993",
  "to": "0xb64c8b0a3f8008d5028d8f9323b858f17b18c3c4",
  "transactionIndex": "0x1",
  "type": "0x2",
  "v": "0x0",
  "value": "0x0",
  "yParity": "0x0"
}

Example request

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

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

const tx = await client.getTransaction({ hash: "0xfe1948ab954fd0aff315a71f3f75a14c8be8dc050edf26760351479d2ce0063b" });
if (tx.blockNumber === null) console.log("still pending");
console.log(tx.type, tx.from, tx.to, tx.value);

Other methods on Celo

eth_getTransactionByHash on other chains

Frequently asked questions

Does Celo support eth_getTransactionByHash?

Yes. eth_getTransactionByHash answered on the SwiftNodes Celo endpoint when our weekly probe called it through the customer path (2026-10-13).

Which transaction types does Celo use?

In five recent blocks: 5 × 0x7e (L1-to-L2 deposit (OP Stack)), 13 × 0x2 (EIP-1559), 36 × 0x7b (Celo CIP-64 fee currency), 6 × 0x0 (legacy).

Why does eth_getTransactionByHash return null on Celo?

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.

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

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