eth_getLogs Block Range Limits: Why Your Queries Fail and How to Fetch 1,000 Blocks at Once
If you have ever indexed an ERC-20, backfilled a DEX, or built a liquidation monitor, you have met this error:
query returned more than 10000 results
Or one of its many cousins: Exceed maximum block range: 5000, eth_getLogs is limited to a 1024 block range, or a silent query timeout. They all mean the same thing: your eth_getLogs call asked for more than the provider is willing to return in one request. This post explains why those limits exist, lists where the common providers draw the line, and shows a chunking strategy that fetches any range reliably. At the end we look at why running your code on the node sidesteps most of the pain entirely.