What triggers rate limiting
- High-frequency polling (e.g., checking balance every 100ms)
- Large
eth_getLogsqueries spanning many blocks - Burst traffic from scripts without backoff logic
Handling 429 responses
When you receive a429 Too Many Requests HTTP response, implement exponential backoff:
Best practices to reduce API usage
Use WebSocket subscriptions instead of pollingPublic WebSocket endpoints are not currently offered on Mainnet or Testnet (see Network endpoints). This pattern applies to a node you run yourself. Against the public endpoints, poll at a modest interval and cache what you can.
eth_getBlockNumber every few seconds, subscribe to new blocks: