eth_getLogs or WebSockets.
The limitation
eth_getLogs. BOT Chain’s JSON-RPC page says it’s disabled on the public endpoints and points to third-party providers. In our tests (2026-10-01 and 2026-10-03) it answered bounded ranges, such as 5,000 or 50,000 blocks. A query from block 0 to the latest block failed.- WebSockets. No WebSocket URL is published.
wss://versions of both RPC URLs failed to connect, soeth_subscribeisn’t available.
Why it matters
Most dApp frameworks and indexers expect both. Without them:- Activity feeds, token transfer histories and leaderboards can’t simply query events.
- Indexers that read events over RPC, such as Ponder, need
eth_getLogsto backfill. - Libraries that default to WebSocket subscriptions fail to connect.
Workarounds
Bounded getLogs
Ask for a fixed range instead of the whole chain. This reads the last 5,000 blocks of testnet USDT logs with Foundry:recent-logs.sh
Poll instead of subscribing
With viem, use anhttp transport. Its watch actions (watchBlockNumber, watchContractEvent) poll automatically. Set pollingInterval: 1_000, since blocks come about every 0.75 seconds. A full example is in Known limitations.
watchContractEvent polls with eth_getLogs under the hood. It works on small ranges today, but because the method is documented as disabled, also have a fallback such as polling a state variable.What will change
Uzo RPC is planned to supporteth_getLogs and WebSockets, and Uzo Index is planned to serve indexed events. Both are planned, not live.
Troubleshooting
eth_getLogs times out or returns a gateway error
eth_getLogs times out or returns a gateway error
The range is too large. Query from a recent block, not 0, and split long ranges into chunks of 5,000 blocks or fewer.
WebSocket connection fails
WebSocket connection fails
BOT Chain has no WebSocket endpoint. Replace
webSocket() with http() in viem, or WebSocketProvider with JsonRpcProvider in ethers, and poll.Events show up late
Events show up late
Lower the polling interval to 1 second. Polling faster than the 0.75-second block time doesn’t help.
Next steps
Events without getLogs
Frontend patterns that don’t need event queries.
Use the BOTScan API
Read decoded logs from the explorer.