JSON-RPC methods

The supported method set, including the QBFT methods.

Docs / Reference / JSON-RPC methods

The method set available on the public endpoints, measured against them rather than copied from a client's feature list.

Endpoints

TransportURL
HTTPShttps://rpc.aere.network, https://rpc2.aere.network
WebSocketwss://wss.aere.network, wss://api.aere.network/ws

Subscriptions live on the WebSocket endpoints. eth_subscribe is not available over HTTPS, which is the normal split for a JSON-RPC endpoint.

Available

MethodNotes
eth_blockNumber
eth_chainIdReturns 0xaf0
eth_getBlockByNumber, eth_getBlockByHash
eth_getBlockReceipts
eth_getTransactionByHash, eth_getTransactionReceipt
eth_getTransactionCountOnly meaningful inside the 512-block state window
eth_getBalance, eth_getCode, eth_getStorageAt
eth_getProofThe correct way to prove an account fact
eth_call, eth_estimateGas, eth_createAccessList
eth_sendRawTransaction
eth_getLogs
eth_gasPrice, eth_maxPriorityFeePerGas, eth_feeHistoryReport the floor correctly
eth_subscribe, eth_unsubscribeWebSocket only
net_version, net_peerCount
web3_clientVersion, web3_sha3
txpool_status
qbft_getValidatorsByBlockNumberThe correct way to read the validator set
qbft_getSignerMetricsWhich validators actually produced blocks over a range

Not available on the public endpoints

NamespaceWhy it matters
debug_No debug_traceTransaction. Tracing needs your own node.
trace_No trace_block or trace_transaction.
admin_No peer list, no enode. Operational surface is not exposed.

If your workflow needs tracing, run your own node: the package and options are published. See Run a node.

Two behaviours to design around

eth_getTransactionCount outside the state window returns 0x0, not an error. The public endpoints keep state for 512 blocks. Use eth_getProof for anything you rely on.

An eth_call that returns empty data means that selector is not present. It does not mean the capability is absent. Prove a capability positively, from bytecode.

Checking this page

This table was produced by calling each method against the public endpoint and recording whether it answered, returned a parameter error, or reported that the method does not exist. You can repeat that check in a loop; a method that reports a parameter error is present, a method that reports it does not exist is not.