Documentation

Methods & subscriptions

Which JSON-RPC methods and WebSocket subscriptions work on the Supanode Robinhood Chain node, how far back history and state go, and the Arbitrum L2 details that change client code.

// updated 2026-09-24

Everything on this page was called against the node on 24 September 2026. If a method is not listed as working, assume it is not available.

JSON-RPC methods

GroupMethods
Chain and networketh_chainId, eth_blockNumber, net_version, web3_clientVersion, eth_syncing, eth_accounts (always [])
Gas and feeseth_gasPrice, eth_maxPriorityFeePerGas, eth_feeHistory, eth_blobBaseFee, eth_estimateGas, eth_createAccessList
Blockseth_getBlockByNumber (latest, pending, safe, finalized or a number), eth_getBlockByHash, eth_getBlockReceipts, eth_getBlockTransactionCountByNumber, eth_getBlockTransactionCountByHash, eth_getUncleCountByBlockNumber
Transactionseth_getTransactionByHash, eth_getTransactionReceipt, eth_getTransactionByBlockNumberAndIndex, eth_getTransactionByBlockHashAndIndex, eth_getTransactionCount (latest and pending)
Stateeth_getBalance, eth_getCode, eth_getStorageAt, eth_getProof, eth_call, eth_simulateV1
Logs and filterseth_getLogs (block range or blockHash), eth_newFilter, eth_newBlockFilter, eth_getFilterChanges, eth_getFilterLogs, eth_uninstallFilter
Sendingeth_sendRawTransaction
Tracingdebug_traceTransaction, debug_traceBlockByNumber, debug_traceBlockByHash, debug_traceCall (callTracer and prestateTracer tested), debug_getRawTransaction, debug_getRawReceipts, debug_getRawBlock

Batch requests (a JSON array of calls) work up to 1,000 calls per batch. See Limits.

Not available

MethodsResponse
trace_*, arbtrace_*, txpool_*, admin_*, personal_*, miner_*, net_listening, net_peerCount, eth_protocolVersion, eth_coinbase, eth_mining, eth_hashrate-32601 method does not exist / is not available
eth_sendTransaction, eth_sign-32000 unknown account: the node holds no keys. Sign on your side and send with eth_sendRawTransaction.
eth_subscribe over HTTPS-32601 notifications not supported: subscriptions need the WebSocket endpoint.

For call-level traces use debug_traceTransaction with callTracer. On Arbitrum its output carries two extra fields, beforeEVMTransfers and afterEVMTransfers.

WebSocket subscriptions

eth_subscribeStatus
newHeadsWorks. About 10 notifications per second, one per L2 block.
logsWorks, with or without an address / topics filter. Unfiltered it is around 300 events per second.
newPendingTransactionsReturns a subscription id and then stays silent. Arbitrum has no public mempool: the sequencer orders transactions directly. Don't build on it.
syncingNot available.

Regular JSON-RPC calls (eth_call, eth_getLogs, eth_getBlockByNumber) work on the same WebSocket connection. eth_unsubscribe closes a subscription.

A newHeads notification looks like this (trimmed):

{"jsonrpc":"2.0","method":"eth_subscription","params":{"subscription":"0x8b9e63df4cf5b0919e691cbf5e3e1ddf","result":{"parentHash":"0xa4b0...ab8d","miner":"0xa4b000000000000000000073657175656e636572","number":"0x43f5f3f","timestamp":"0x6ab4ecf2","baseFeePerGas":"0x2a84c40","gasUsed":"0x2ac5f8","difficulty":"0x1","hash":"0x..."}}}

History depth

DataHow far back
Blocks, transactions, receipts, logsSince the first block, 30 April 2026
State at a past block: eth_call, eth_getBalance, eth_getStorageAt, eth_getCode with a block number, and debug_trace* of past transactionsAbout the last 5 days (around 4.6 million blocks)

This is a full node, not an archive node. Asking for state older than the window returns -32000 missing trie node ..., and tracing an older transaction returns -32000 required historical state unavailable. That is the pruning window, not a fault.

TIP

Need decoded history rather than raw state? The Robinhood Indexer holds every Uniswap v3/v4 swap, pool and launchpad event in SQL. For state at arbitrary old blocks, an archive dedicated node is the way.

Arbitrum specifics

TopicWhat to expect
Block timeAbout 0.1 s, roughly 10 blocks per second. The latest block is 0-1 s old.
safe tagAbout 4,200-4,900 blocks (7-8 minutes) behind latest.
finalized tagAbout 15-20 minutes behind latest.
How the tags moveBoth advance in steps as batches settle on the parent chain, not block by block.
Extra block fieldsl1BlockNumber, sendCount, sendRoot. miner is 0xa4b0...73657175656e636572, "sequencer" in hex. difficulty is 1.
l1BlockNumberPresent in eth_getBlockByNumber results, absent from newHeads notifications. Fetch the block if you need it.
block.number in SolidityReturns a parent-chain block number on Arbitrum. For the L2 block number call ArbSys(0x64).arbBlockNumber() through eth_call.
GasPaid in ETH. eth_maxPriorityFeePerGas is 0: tips are not needed. A plain transfer estimates at 21,000 gas.
Pending transactionsNot exposed: no txpool_*, and pending filters and subscriptions stay empty.
Sendingeth_sendRawTransaction validates the transaction and returns clear errors, for example insufficient funds for gas * price + value.

External references