METHODS
84 methods. Testnet and mainnet run the same list and the same limits — this one page covers both. Client: erigon-pulse 2.4.0.
Every method below is rate-limited. The limits are per-client and deliberately unpublished — they may change without notice. Batches count per element and never cache.
| Method | Rate class | Recommended windows | Cached |
|---|---|---|---|
| web3_clientVersion | — | — | No |
| web3_sha3 | — | — | No |
| net_listening | — | — | No |
| net_peerCount | — | — | No |
| net_version | — | — | No |
| eth_blockNumber | — | — | No |
| eth_chainID | — | — | No |
| eth_chainId | — | — | Always |
| eth_protocolVersion | — | — | No |
| eth_syncing | — | — | No |
| eth_gasPrice | — | — | No |
| eth_maxPriorityFeePerGas | — | — | No |
| eth_feeHistory | — | — | No |
| eth_getBlockByHash | — | — | By hash (two-sight) |
| eth_getBlockByNumber | — | — | Below finality |
| eth_getBlockTransactionCountByHash | — | — | No |
| eth_getBlockTransactionCountByNumber | — | — | No |
| eth_getUncleByBlockHashAndIndex | — | — | No |
| eth_getUncleByBlockNumberAndIndex | — | — | No |
| eth_getUncleCountByBlockHash | — | — | No |
| eth_getUncleCountByBlockNumber | — | — | No |
| eth_getTransactionByHash | — | — | No |
| eth_getRawTransactionByHash | — | — | No |
| eth_getTransactionByBlockHashAndIndex | — | — | No |
| eth_getRawTransactionByBlockHashAndIndex | — | — | No |
| eth_getTransactionByBlockNumberAndIndex | — | — | No |
| eth_getRawTransactionByBlockNumberAndIndex | — | — | No |
| eth_getTransactionReceipt | — | — | No |
| eth_getBlockReceipts | — | — | By hash or below finality |
| eth_estimateGas | — | — | No |
| eth_getBalance | — | — | By hash or below finality |
| eth_getCode | — | — | By hash or below finality |
| eth_getTransactionCount | — | — | By hash or below finality |
| eth_getStorageAt | — | — | By hash or below finality |
| eth_exist | — | — | No |
| eth_call | — | — | Below finality (two-sight) |
| eth_callBundle | heavy window | — | No |
| eth_callMany | heavy window | — | No |
| eth_createAccessList | — | — | Below finality (two-sight) |
| eth_getLogs | getLogs window | Recommended range ≤ 10,000 blocks; larger ranges may be slow. blockHash queries are not affected. | Below finality (numeric span) |
| eth_sendRawTransaction | — | — | No |
| eth_getProof | heavy window | — | No |
| debug_accountAt | — | — | No |
| debug_getModifiedAccountsByNumber | — | — | No |
| debug_getModifiedAccountsByHash | — | — | No |
| debug_getRawHeader | — | — | No |
| debug_getRawBlock | — | — | No |
| debug_traceBlockByHash | — | — | No |
| debug_traceBlockByNumber | — | — | No |
| debug_traceTransaction | — | — | No |
| debug_traceCall | — | — | Below finality (two-sight) |
| trace_call | — | — | Below finality (two-sight) |
| trace_callMany | — | — | No |
| trace_replayBlockTransactions | — | — | No |
| trace_replayTransaction | — | — | No |
| trace_block | — | — | Below finality |
| trace_filter | getLogs window | Recommended range ≤ 10,000 blocks; larger ranges may be slow. | No |
| trace_get | — | — | No |
| trace_transaction | — | — | No |
| txpool_content | — | — | No |
| txpool_contentFrom | — | — | No |
| txpool_status | — | — | No |
| erigon_getHeaderByHash | — | — | No |
| erigon_getHeaderByNumber | — | — | Below finality |
| erigon_getLogsByHash | — | — | No |
| erigon_getLogs | getLogs window | Recommended range ≤ 10,000 blocks; larger ranges may be slow. blockHash queries are not affected. | No |
| erigon_getBalanceChangesInBlock | — | — | No |
| erigon_forks | — | — | No |
| erigon_getBlockByTimestamp | — | — | No |
| erigon_getBlockReceiptsByBlockHash | — | — | No |
| erigon_blockNumber | — | — | No |
| erigon_getLatestLogs | getLogs window | Recommended: logCount ≤ 100 and blockCount ≤ 1,000; larger requests may be slow. | No |
| ots_getApiLevel | — | — | Always |
| ots_getInternalOperations | — | — | No |
| ots_hasCode | — | — | By hash or below finality |
| ots_getTransactionError | — | — | No |
| ots_traceTransaction | — | — | No |
| ots_getBlockDetails | — | — | Below finality |
| ots_getBlockDetailsByHash | — | — | By hash (two-sight) |
| ots_getBlockTransactions | — | — | Below finality |
| ots_searchTransactionsBefore | — | — | No |
| ots_getTransactionBySenderAndNonce | — | — | Always (two-sight) — frozen once mined |
| ots_getContractCreator | — | — | Always (two-sight) |
| ots_searchTransactionsAfter | — | — | No |
Caching is not enabled yet: today every response arrives uncached. The Cached column describes the behavior after caching is enabled: Always = cached for every query. By hash = cached when the block param is a 0x hash. Hash-based transaction lookups (eth_getTransactionByHash, eth_getTransactionReceipt, eth_getRawTransactionByHash, and the by-tx traces) never cache: the pre-mine answer (null or "0x") is transient, and caching it lies to a poller for up to 24 h. Below finality = cached when the numeric block sits below the finalized checkpoint; latest tags and recent blocks never cache. Two-sight = a second identical request within 60 s confirms the store, so a null or error body never enters the cache.
Every cached response echoes your request id back and serves only clean bodies: a null result or a JSON-RPC error is remembered for 24 h instead of being cached. Equivalent spellings share one entry: addresses and hashes fold to lowercase, quantity zeros strip, and object keys sort.
This endpoint runs the erigon-pulse client. Its ots_traceTransaction returns empty internal-frame lists, where upstream erigon populates them. The erigon-pulse fork and upstream erigon are different clients with different configurations, so their tracing outputs are not identical.