Ethereum
All Methods
This page is the full index of every Ethereum mainnet JSON-RPC method TheRPC serves on chain 1, sorted by namespace. Each entry names the method, says what it does, and links straight to its own page. Open any method to get the parameter table, return shape, error codes, a runnable request against https://ethereum.therpc.io/YOUR_API_KEY, and its CU cost. Use the namespace groupings below to jump to reads (eth_), node-level tracing (debug_, trace_), network info (net_), the mempool (txpool_), or hashing utilities (web3_).
Core Methods (eth_)
The eth_ namespace is where most work happens. These methods read account balances and nonces, fetch blocks and transaction receipts, call view functions on contracts, estimate gas, and broadcast signed transactions. They also cover EIP-1559 fee data through eth_feeHistory and eth_maxPriorityFeePerGas, and event log queries via eth_getLogs. Every block tag the protocol exposes — latest, safe, finalized, pending, earliest — works as the block parameter here, which matters once you start reading state at proof-of-stake finality rather than at the chain head.
Core Methods (eth_)
eth_blockNumberGet the latest Ethereum mainnet (chain 1) block height with eth_blockNumber over JSON-RPC. The cheapest call to confirm an endpoint is live.
eth_callRun a gas-free read-only EVM call on Ethereum mainnet (chain 1) with eth_call. Read contract state, simulate reverts, and apply state overrides.
eth_chainIdeth_chainId returns the EIP-155 chain ID the endpoint serves — 0x1 for Ethereum mainnet. Use it to guard signing against replay across chains.
eth_estimateGaseth_estimateGas simulates a transaction on Ethereum mainnet (chain 1) and returns the gas limit it needs. Size the gas field before you sign.
eth_feeHistoryeth_feeHistory returns base fees, gas-used ratios, and priority-fee percentiles across recent Ethereum blocks to build EIP-1559 fee estimators.
eth_gasPriceeth_gasPrice returns the node's suggested legacy gas price in wei on Ethereum mainnet (chain 1). A quick fee read for type-0 transactions.
eth_getBalanceeth_getBalance returns an account's ETH balance in wei at any block on Ethereum mainnet (chain 1). Query latest, finalized, or a historical height.
eth_getBlockByHasheth_getBlockByHash returns full block data for a given hash on Ethereum mainnet (chain 1) — header fields, withdrawals, gas metrics, and txs.
eth_getBlockByNumbereth_getBlockByNumber returns block data by height or tag (latest, safe, finalized) on Ethereum mainnet (chain 1). Walk the chain or read the tip.
eth_getBlockReceiptseth_getBlockReceipts returns every transaction receipt in an Ethereum block (chain 1) in one call — logs, gas, status. Built for fast indexing.
eth_getBlockTransactionCountByHasheth_getBlockTransactionCountByHash returns how many transactions sit in an Ethereum block (chain 1) given its hash, without fetching the block.
eth_getBlockTransactionCountByNumberCount transactions in an Ethereum block by height or tag with eth_getBlockTransactionCountByNumber over JSON-RPC on mainnet (chain 1).
eth_getCodeFetch the deployed EVM bytecode at an Ethereum address and block with eth_getCode over JSON-RPC on mainnet (chain 1). Tell contracts from EOAs.
eth_getFilterChangesPoll an Ethereum filter for new logs, blocks, or pending txs since the last call with eth_getFilterChanges over JSON-RPC on mainnet (chain 1).
eth_getFilterLogsReturn every log matching an existing Ethereum log filter, ignoring poll state, with eth_getFilterLogs over JSON-RPC on mainnet (chain 1).
eth_getLogsQuery Ethereum event logs by address, topics, and block range with eth_getLogs over JSON-RPC on mainnet (chain 1). The core method for backfill indexing.
eth_getProofGet account fields and Merkle-Patricia trie proofs for an Ethereum address and its storage slots with eth_getProof over JSON-RPC on mainnet (chain 1).
eth_getStorageAtRead the 32-byte value at a contract storage slot on Ethereum with eth_getStorageAt over JSON-RPC on mainnet (chain 1), at any block.
eth_getTransactionByBlockHashAndIndexFetch an Ethereum transaction by its block hash and index position with eth_getTransactionByBlockHashAndIndex over JSON-RPC on mainnet (chain 1).
eth_getTransactionByBlockNumberAndIndexFetch an Ethereum transaction by block number or tag and index with eth_getTransactionByBlockNumberAndIndex over JSON-RPC on mainnet (chain 1).
eth_getTransactionByHashLook up a full Ethereum transaction object by its hash with eth_getTransactionByHash over JSON-RPC on mainnet (chain 1). Decode input, sender, value.
eth_getTransactionCountGet an Ethereum account nonce (transactions sent) at a block with eth_getTransactionCount over JSON-RPC on mainnet (chain 1). Pending vs latest.
eth_getTransactionReceiptFetch an Ethereum mainnet transaction receipt by hash: success/revert status, gas used, effective gas price, and emitted logs via eth_getTransactionReceipt.
eth_getUncleByBlockHashAndIndexRead an Ethereum uncle (ommer) header by parent block hash and index with eth_getUncleByBlockHashAndIndex — PoW-era data; post-Merge blocks have none.
eth_getUncleByBlockNumberAndIndexFetch an Ethereum uncle (ommer) header by block height and index with eth_getUncleByBlockNumberAndIndex — ideal for scanning pre-Merge PoW ranges.
eth_getUncleCountByBlockHashCount the uncles a given Ethereum block references by hash with eth_getUncleCountByBlockHash — returns 0x0/0x1/0x2 on PoW history, 0x0 after the Merge.
eth_getUncleCountByBlockNumberCount uncles at an Ethereum block height or tag with eth_getUncleCountByBlockNumber — non-zero only for pre-Merge PoW blocks, 0x0 on PoS.
eth_maxPriorityFeePerGasGet a suggested EIP-1559 priority fee (validator tip) in wei for Ethereum mainnet type-2 transactions with eth_maxPriorityFeePerGas.
eth_newBlockFilterCreate an Ethereum mainnet block filter with eth_newBlockFilter and poll eth_getFilterChanges for hashes of each new block (~one per 12s slot).
eth_newFilterRegister an Ethereum mainnet log filter by address and topics with eth_newFilter, then poll eth_getFilterChanges for new matching events incrementally.
eth_newPendingTransactionFilterWatch the Ethereum mainnet mempool with eth_newPendingTransactionFilter and poll eth_getFilterChanges for hashes of newly seen pending transactions.
eth_sendRawTransactionBroadcast a signed, RLP-encoded transaction to Ethereum mainnet with eth_sendRawTransaction and get its hash; supports EIP-1559 type-2 transactions.
eth_subscribeOpen a push subscription over Ethereum mainnet WebSocket with eth_subscribe — stream newHeads, logs, newPendingTransactions, or syncing without polling.
eth_syncingCall eth_syncing on Ethereum mainnet (chain 1) to get a node's sync progress object, or false once it has caught up to the chain head.
eth_uninstallFilterCall eth_uninstallFilter on Ethereum mainnet (chain 1) to remove a polling filter by ID and free node resources. Works for every filter type.
eth_unsubscribeCall eth_unsubscribe on Ethereum mainnet (chain 1) to cancel an eth_subscribe stream by ID over WebSocket and stop further notifications.
Debug Methods (debug_)
The debug_ namespace exposes geth-style tracing for taking apart what a transaction actually did inside the EVM. The callTracer reconstructs the full internal call tree, prestateTracer reports the state each touched account had going in, and the opcode-level struct logger walks every instruction with its gas and stack. This is how you root-cause a failed Uniswap swap or an unexpected revert in a Lido or Aave interaction. These calls are expensive and need a debug-enabled archive node, so they cost more CUs than ordinary reads.
Debug Methods (debug_)
debug_getBadBlocksdebug_getBadBlocks on Ethereum mainnet (chain 1): lists invalid blocks the geth node has seen and rejected since its last restart.
debug_storageRangeAtdebug_storageRangeAt on Ethereum mainnet (chain 1): reads a paginated slice of a contract's raw storage slots at the state after a given transaction.
debug_traceBlockdebug_traceBlock on Ethereum mainnet (chain 1): re-executes an RLP-encoded block and returns opcode-level traces for every transaction in it.
debug_traceBlockByHashdebug_traceBlockByHash on Ethereum mainnet (chain 1): traces every transaction in a block addressed by its 32-byte hash at opcode level.
debug_traceBlockByNumberdebug_traceBlockByNumber on Ethereum mainnet (chain 1): traces every transaction in a block named by height or a tag like latest or finalized.
debug_traceCalldebug_traceCall on Ethereum mainnet (chain 1): simulates a call against a chosen block state and returns a full opcode trace without broadcasting.
debug_traceTransactiondebug_traceTransaction on Ethereum mainnet (chain 1): replays a mined transaction at opcode level to reproduce its exact EVM execution.
Trace Methods (trace_)
The trace_ namespace is the Parity/OpenEthereum-style tracer, served by Erigon, and it gives you flat per-call traces rather than geth's nested tree. Use it to replay a single transaction, walk every internal call in a block, or filter traces across a block range by sender or recipient. It answers questions like "which contracts did this transaction touch and how much value moved at each step." Like the debug_ calls, these run against a trace-enabled archive node and carry a higher CU cost.
Trace Methods (trace_)
trace_blockCall trace_block on Ethereum (chain 1) to get the flat call-tree traces of every transaction in a block, with internal ETH transfers and CREATEs.
trace_callCall trace_call on Ethereum (chain 1) to simulate a transaction against any block state and get its call tree, VM trace, and state diff without broadcasting.
trace_filterCall trace_filter on Ethereum (chain 1) to search traces by from/to address across a block range, with pagination. Find internal transfers and contract calls.
trace_replayBlockTransactionsCall trace_replayBlockTransactions on Ethereum (chain 1) to replay every transaction in a block and get the trace, vmTrace, and stateDiff for each one.
trace_replayTransactionCall trace_replayTransaction on Ethereum (chain 1) to replay a mined transaction and get its call tree, opcode-level vmTrace, and full state diff.
trace_transactionCall trace_transaction on Ethereum (chain 1) for the OpenEthereum/Nethermind call tree of a mined transaction, with every internal call and CREATE.
Network Methods (net_)
The net_ namespace reports network-level facts about the node you are talking to. net_version returns the network identifier as a string — 1 for Ethereum mainnet — net_listening confirms the node is accepting peer connections, and net_peerCount shows how many peers it currently has. These are quick, cheap checks, handy for confirming you are pointed at chain 1 and not a Sepolia or Holesky endpoint before sending anything for real.
Network Methods (net_)
net_listeningCall net_listening on Ethereum mainnet (chain 1) to get a boolean for whether the node is accepting incoming P2P connections on devp2p.
net_peerCountCall net_peerCount on Ethereum mainnet (chain 1) to get the number of connected devp2p peers as a hex-encoded integer.
net_versionCall net_version on Ethereum mainnet (chain 1) to get the network ID as a decimal string — "1" for mainnet, "11155111" for Sepolia.
Transaction Pool Methods (txpool_)
The txpool_ namespace is geth's window into the mempool — the transactions a node has received but not yet included in a block. You can see what is pending (ready to mine) versus queued (waiting on a nonce gap), grouped by sender address. This is where you watch your own transactions sit before a validator picks them up in the next 12-second slot, or gauge fee pressure by inspecting what tips other senders are offering.
Transaction Pool Methods (txpool_)
txpool_inspectCall txpool_inspect on Ethereum mainnet (chain 1) for a human-readable summary of pending and queued mempool transactions by sender and nonce.
txpool_statusCall txpool_status on Ethereum mainnet (chain 1) for hex-encoded counts of pending and queued transactions in the node's mempool.
Web3 Utility Methods (web3_)
The web3_ namespace holds two small utilities. web3_clientVersion tells you which execution client and version is behind the endpoint (geth, erigon, reth, nethermind, or besu), and web3_sha3 returns the Keccak-256 hash of the bytes you pass. Note that this is Keccak-256, the function Ethereum has always used for address derivation and function selectors — not the later NIST SHA-3 / FIPS-202 standard, which produces different output for the same input.