Ethereum
eth_getUncleByBlockNumberAndIndex
eth_getUncleByBlockNumberAndIndex is the by-height twin of the hash-based uncle lookup: you give it a block number (or a tag like earliest) and the uncle's index, and it returns that ommer's header. Because you address the block by its position in the chain rather than by a 32-byte hash, this is the variant you reach for when walking a contiguous range of Ethereum history to harvest uncles. The data only exists for the Proof-of-Work era. After The Merge at block 15537393, every slot yields a single PoS block with no ommers, so a query against a recent height resolves to null. Call it on https://ethereum.therpc.io/YOUR_API_KEY (chain ID 1); the payload is the uncle's header, no transactions attached.
Use cases
- Iterate over a numeric range of pre-Merge blocks (everything below 15537393) and collect every uncle header to compute an uncle-rate curve across Ethereum's PoW years.
- Reach early chain history with the
earliesttag instead of hardcoding genesis-adjacent heights, which keeps a backfill script readable when crawling the oldest uncles.
Parameters
| # | Name | Type | Required | Description |
|---|---|---|---|---|
| 1 | blockTag | string | Yes | The block that references the uncle. |
| 2 | uncleIndex | string (hex) | Yes | Zero-based index of the uncle within the block's uncles array. |
Response
| Type | Description |
|---|---|
| object | null | Same uncle header object as eth_getUncleByBlockHashAndIndex. Returns null if not found. |
Example request
Try it live in the Ethereum playground.
Errors & troubleshooting
| Code | Message | Cause |
|---|---|---|
-32602 | Invalid params | Block tag or uncle index is malformed. |
Common pitfalls
- Pointing this at
latestor any post-Merge height returnsnullevery time, because PoS Ethereum simply does not produce ommers. Keep your scan bounded below block 15537393 to avoid wasting calls. - The header you get back has no transactions array. An uncle's transactions never entered the canonical chain, so there is nothing transactional to decode from the result.
Supported networks
- Mainnet — Chain ID: 1
- Sepolia — Chain ID: 11155111
See also
Parameters
hex block number or "latest"/"earliest"/"pending"/"safe"/"finalized"
0x-prefixed hex integer (e.g. "0x0")