Guides
Receipts & event logs (EVM)
On EVM chains, the transaction object is not enough for status and events — you need the receipt. eth_getLogs queries indexed topics over a block range (respect full-node retention).
Steps
- After broadcast, poll eth_getTransactionReceipt until non-null (or timeout).
- Check receipt.status (0x1 success / 0x0 revert) and gasUsed.
- Read receipt.logs for events, or query eth_getLogs with address + topics + fromBlock/toBlock.
- Keep log ranges modest — large historical scans belong on archive/indexer stacks, not a full-node RPC plan.
Transaction receipt (curl)
curl
curl https://holy-burned-sky-ethereum-mainnet.rpcnode.dev/7c9e6679-7425-40de-944b-e07fc1f90ae7 \
-X POST \
-H 'content-type: application/json' \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "eth_getTransactionReceipt",
"params": [
"0x0000000000000000000000000000000000000000000000000000000000000001"
]
}'Transaction receipt (JavaScript)
fetch
const response = await fetch('https://holy-burned-sky-ethereum-mainnet.rpcnode.dev/7c9e6679-7425-40de-944b-e07fc1f90ae7', {
method: 'POST',
headers: { 'content-type': 'application/json' },
body: JSON.stringify({
jsonrpc: '2.0',
id: 1,
method: 'eth_getTransactionReceipt',
params: [
"0x0000000000000000000000000000000000000000000000000000000000000001"
],
}),
});
const data = await response.json();
console.log(data);eth_getLogs (small range) (curl)
curl
curl https://holy-burned-sky-ethereum-mainnet.rpcnode.dev/7c9e6679-7425-40de-944b-e07fc1f90ae7 \
-X POST \
-H 'content-type: application/json' \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "eth_getLogs",
"params": [
{
"fromBlock": "0x0",
"toBlock": "latest",
"address": "0x0000000000000000000000000000000000000000",
"topics": []
}
]
}'eth_getLogs (small range) (JavaScript)
fetch
const response = await fetch('https://holy-burned-sky-ethereum-mainnet.rpcnode.dev/7c9e6679-7425-40de-944b-e07fc1f90ae7', {
method: 'POST',
headers: { 'content-type': 'application/json' },
body: JSON.stringify({
jsonrpc: '2.0',
id: 1,
method: 'eth_getLogs',
params: [
{
"fromBlock": "0x0",
"toBlock": "latest",
"address": "0x0000000000000000000000000000000000000000",
"topics": []
}
],
}),
});
const data = await response.json();
console.log(data);Tips
- Same methods work on base, arbitrum, optimism, polygon, bsc, hyperliquid endpoints — change the network slug in the URL.
- Avoid fromBlock: 0 on busy chains; use a recent window.
- Reverts still produce a receipt with status 0x0 — do not treat null receipt as revert.