Skip to main content
The public Autheo Testnet JSON-RPC endpoints enforce per-IP rate limits to ensure fair access for all developers.

What triggers rate limiting

  • High-frequency polling (e.g., checking balance every 100ms)
  • Large eth_getLogs queries spanning many blocks
  • Burst traffic from scripts without backoff logic

Handling 429 responses

When you receive a 429 Too Many Requests HTTP response, implement exponential backoff:

Best practices to reduce API usage

Use WebSocket subscriptions instead of polling
Public 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.
Instead of calling eth_getBlockNumber every few seconds, subscribe to new blocks:
Paginate eth_getLogs in reasonably sized chunks
Cache immutable data Contract ABIs, deployed addresses, and historical block data don’t change. Cache them locally rather than re-fetching on every request. Load balance across endpoints Distribute requests across the public mainnet endpoints. Never mix networks in the same pool, since each endpoint serves a different chain ID:

Production workloads

For applications that require consistent high-volume access, use a managed node provider (InfStones, Zeeve) which offers dedicated capacity with SLA guarantees. See hosting options for details.