JSON-RPC
Method matrix
Generated from probes against production Arc nodes, not copied from an Ethereum reference. Last run 2026-09-16 04:00 UTC.
Four states. Live returns data. Returns null means the client registers the method but answers null, which fails quietly and is worse than an error. Blocked by Arc means the protocol refuses it. Not exposed means we do not serve the namespace, following Arc operator guidance for public nodes.
eth_*
| Method | Behaviour | Notes |
|---|---|---|
| eth_blockNumber | Live | |
| eth_chainId | Live | |
| eth_call | Live | |
| eth_estimateGas | Live | |
| eth_gasPrice | Live | |
| eth_feeHistory | Live | |
| eth_maxPriorityFeePerGas | Live | |
| eth_getBalance | Live | Returns the 18 decimal native balance |
| eth_getCode | Live | |
| eth_getStorageAt | Live | |
| eth_getProof | Live | |
| eth_getAccount | Live | |
| eth_getBlockByNumber | Live | Every tag except "pending" |
| eth_getBlockByHash | Live | |
| eth_getBlockReceipts | Live | |
| eth_getLogs | Live | Range limit scales with plan |
| eth_getTransactionByHash | Live | |
| eth_getTransactionReceipt | Live | |
| eth_getTransactionCount | Live | |
| eth_sendRawTransaction | Live | Rejected below the 20 Gwei floor rather than dropped |
| eth_sendRawTransactionSync | Live | |
| eth_simulateV1 | Live | |
| eth_createAccessList | Live | Requires an explicit gas value or it returns -32000 |
| eth_subscribe | Live | newHeads and logs. newPendingTransactions is blocked by Arc |
| eth_newFilter | Live | |
| eth_newBlockFilter | Live | |
| eth_getFilterChanges | Live | |
| eth_newPendingTransactionFilter | Blocked by Arc | -32001, pending visibility is disabled network wide |
| eth_getTransactionBySenderAndNonce | Returns null | Reads the pool, which Arc does not expose |
| eth_getUncleByBlockHashAndIndex | Returns null | BFT consensus, Arc has no uncles |
| eth_coinbase | Blocked by Arc | -32603, unimplemented in Reth |
| eth_mining | Blocked by Arc | -32603, unimplemented in Reth |
debug_*
| Method | Behaviour | Notes |
|---|---|---|
| debug_traceTransaction | Live | |
| debug_traceBlockByNumber | Live | |
| debug_traceBlockByHash | Live | |
| debug_traceCall | Live | |
| debug_getRawBlock | Live | |
| debug_getRawHeader | Live | |
| debug_getRawReceipts | Live | |
| debug_getRawTransaction | Live | |
| debug_storageRangeAt | Returns null | Registered by Reth, carries no data. Use eth_getStorageAt |
| debug_accountRange | Returns null | Registered by Reth, carries no data |
trace_*
| Method | Behaviour | Notes |
|---|---|---|
| trace_block | Live | |
| trace_transaction | Live | |
| trace_call | Live | |
| trace_callMany | Live | |
| trace_filter | Live | |
| trace_get | Live | |
| trace_rawTransaction | Live | |
| trace_replayTransaction | Live | |
| trace_replayBlockTransactions | Live |
txpool_*
| Method | Behaviour | Notes |
|---|---|---|
| txpool_status | Live | |
| txpool_content | Live | |
| txpool_contentFrom | Live | |
| txpool_inspect | Live |
arc_*
| Method | Behaviour | Notes |
|---|---|---|
| arc_getVersion | Live | Execution build info. Not advertised by rpc_modules |
| arc_getCertificate | Live | BFT commit certificate for a height, the finality proof |
arcrpc_*
| Method | Behaviour | Notes |
|---|---|---|
| arcrpc_getUsdcBalance | Live | Native 18, ERC-20 6 and display value in one response |
| arcrpc_simulateTransfer | Live | Compliance pre-flight against live blocklist state |
| arcrpc_getSettlementProof | Live | Certificate indexed by transaction hash |
net_*
| Method | Behaviour | Notes |
|---|---|---|
| net_version | Live | |
| net_listening | Live | |
| net_peerCount | Live |
web3_*
| Method | Behaviour | Notes |
|---|---|---|
| web3_clientVersion | Live | |
| web3_sha3 | Live |
rpc_*
| Method | Behaviour | Notes |
|---|---|---|
| rpc_modules | Live | Does not list arc, which is registered outside the module registry |
Restricted namespaces
admin_* and ots_* are not exposed on any ArcRPC endpoint. Arc operator guidance restricts a public relay to eth, net, web3 and rpc; we serve debug, trace and txpool from our own authenticated pools rather than from a public relay, which is why they are available here and absent from the network public endpoint.