Summary
eth_getLogs
Documented: BOT Chain’s JSON-RPC page sayseth_getLogs is disabled on the public endpoints and points to third-party providers.
Measured: On 2026-10-01 both public RPCs answered eth_getLogs for bounded ranges. A 50,000-block range, queried in 5,000-block chunks, returned results in about 8 seconds. A query from block 0 to latest timed out.
What to do: Treat eth_getLogs as unsupported in production. Query small ranges, or use the Explorer API. See Known limitations.
Blob API
Documented: BOT Chain implements EIP-4844 and keeps blob data on the execution layer, so it adds two methods:eth_getBlobSidecarByTxHash and eth_getBlobSidecars. Ethereum serves blobs from the consensus layer’s Beacon API instead.
See Blob API for parameters.
Finality methods
Documented: BOT Chain uses Parlia, a difficulty-based fork choice with FFG finality, as described in BEP-126. Validators produce several blocks in a row, as described in BEP-341. Measured: The standardsafe and finalized block tags work. These extra methods from the BNB Smart Chain client also answered on both networks:
On 2026-10-01 the validator-count parameter accepted values from 1 to 7, matching the 7 validators producing blocks. For most apps, the
finalized tag is simpler:
finalized.sh
Block header fields
Headers follow the Ethereum Prague format, with these Parlia-specific values:Subscriptions, filters, debug and trace
These are not documented by BOT Chain. We found them on 2026-10-01:- No WebSocket.
eth_subscribereturns “notifications not supported”. Poll over HTTP instead. - Filters are unreliable.
eth_newFilterreturns an ID, buteth_getFilterChangesandeth_getFilterLogsreturned “filter not found” for about half of calls. The public endpoint likely spreads requests across several nodes. Don’t use filters; poll with block numbers. - No
debug_*ortrace_*. Both return error-32601. To trace transactions, run your own node with these APIs enabled.
eth_createAccessList
Not documented by BOT Chain. On testnet on 2026-10-01,eth_createAccessList checks that the sender can pay for gas at the default price, and fails with “insufficient funds” otherwise. Pass a funded from address, or set gasPrice to 0x0:
access-list.sh
Related pages
JSON-RPC
Endpoints and method support.
Known limitations
Workarounds for each gap.