Posts tagged #indexing

4 posts.

August 7, 2026 · 5 min read

Decoding Event Logs: Topics, Signatures, and Indexed Parameters

You can fetch logs with eth_getLogs and eth_subscribe — but the raw log is address + topics + data, not a readable event. This tutorial explains how logs are encoded (topic0 = the event signature hash, indexed params in topics, the rest in data), how to decode them in viem/ethers/web3.py, and the traps: indexed dynamic types, address padding, and anonymous events.

Read →
July 6, 2026 · 4 min read

eth_getBlockReceipts: Every Receipt in a Block, One Call

Fetching every receipt in a block one transaction at a time is the N+1 problem in disguise — hundreds of round-trips per block. eth_getBlockReceipts returns all of them in a single call. Here's how it works, when to use it over JSON-RPC batching, and how to fall back when a node doesn't support it.

Read →
June 1, 2026 · 6 min read

How `eth_getLogs` Range Caps Bite You in Production

Your indexer works fine until it hits a single dense block range, then everything stops. Here's the cap mechanics across providers, the adaptive chunking pattern that actually works, and the code to do it right.

Read →