RPC errors · eth_getLogs
Please specify an address in your request (eth_getLogs without an address)
What it means
An eth_getLogs call with only topics (or no filter at all) asks the node to scan every contract's logs in the range. Many shared nodes refuse that shape outright, before looking at the range size, and name address as the missing field. The -32701 code here is about the request's shape, not about the method being unsupported: the same call with an address succeeds.
The "max results 20000" variants come from nodes that do run the scan but stop when the result set would exceed 20,000 logs. They usually suggest a smaller range in the message itself.
The exact messages, and where we saw them
Returned by real upstream nodes when we triggered this error on 2026-09-24 through our endpoint on each chain we serve.
Please specify an address in your request or, to remove restrictions, order a dedicated full node here: …query exceeds max results 20000, retry with the range …-…query returns too many logs, narrow your filter: 20000Code
-32602. Seen on 1 chain: Ethereum.How to fix it
- Pass the contract address (or a list of addresses) in the filter. If you genuinely need every emitter of an event across the chain, that is an indexing job: run it against a node you control, or use an indexer.
- For the result-count variant, shrink the block range until the result set fits, or add topics to narrow it.
// Refused by many shared nodes: topic-only filter
await client.getLogs({ event: transferEvent, fromBlock, toBlock });
// Accepted: the same query, scoped to the contract you care about
await client.getLogs({ address: USDC, event: transferEvent, fromBlock, toBlock });