RPC overview
Base exposes a single, fully EVM-compatible JSON-RPC API. There is now one public endpoint per network rather than separate standard and pre-confirmation URLs — every endpoint is Flashblocks-enabled, so the pending block tag resolves against pre-confirmed state with no change of host.
Networks
Section titled “Networks”| Network | Chain ID | Type | Archive |
|---|---|---|---|
| Mainnet | 8453 | Production | Yes |
| Sepolia | 84532 | Testnet | Yes |
Endpoints
Section titled “Endpoints”| HTTP | |
|---|---|
| RPC | https://mainnet.base.org |
| HTTP | |
|---|---|
| RPC | https://sepolia.base.org |
Flashblocks
Section titled “Flashblocks”Every public Base endpoint is Flashblocks-enabled, so all standard eth_ methods behave identically and the pending block tag resolves against the pre-confirmed block currently being built, refreshed every ~200ms with new batches of sequencer-ordered transactions.
Methods such as eth_getBalance, eth_getStorageAt, and eth_call execute against real sequencer state up to 1.8 seconds before a block seals, with sub-second latency.
Namespaces
Section titled “Namespaces”Base nodes implement the standard Ethereum namespaces plus a small set of Base-specific methods.
eth— core Ethereum protocol methods for accounts, blocks, transactions, gas, and logs. Thependingtag resolves against pre-confirmed state.net— network identification (net_version).web3— client identification (web3_clientVersion).debug— replay and tracing utilities for deep transaction inspection. Computationally expensive; availability depends on the node provider.txpool— inspection of the local mempool.base— Base-specific helpers, including pre-confirmation status checks (base_transactionStatus).- Flashblocks — pre-confirmation methods (
eth_simulateV1) and WebSocket streams (newFlashblockTransactions,pendingLogs,newFlashblocks). The streaming subscriptions need a WebSocket-enabled node provider. optimism— rollup-node methods served by the consensus client rather than the execution layer, includingoptimism_outputAtBlockfor retrieving an L2 output root.
Method index
Section titled “Method index”Ethereum JSON-RPC API
Section titled “Ethereum JSON-RPC API”Methods marked with a check mark support the "pending" block tag, which resolves against the pre-confirmed Flashblock in progress.
| Method | Description | Flashblocks pending |
|---|---|---|
| eth_blockNumber | Current block number | — |
| eth_getBalance | Account ETH balance | yes |
| eth_getTransactionCount | Account nonce / tx count | yes |
| eth_getCode | Deployed contract bytecode | yes |
| eth_getStorageAt | Contract storage slot value | yes |
| eth_call | Execute read-only call | yes |
| eth_getBlockByNumber | Block data by number | yes |
| eth_getBlockByHash | Block data by hash | — |
| eth_getBlockReceipts | All receipts for a block | yes |
| eth_getBlockTransactionCountByNumber | Tx count by block number | yes |
| eth_getBlockTransactionCountByHash | Tx count by block hash | — |
| eth_getTransactionByHash | Transaction data by hash | — |
| eth_getTransactionByBlockHashAndIndex | Tx by block hash and index | — |
| eth_getTransactionByBlockNumberAndIndex | Tx by block number and index | — |
| eth_getTransactionReceipt | Receipt for a mined tx | — |
| eth_sendRawTransaction | Submit signed transaction | — |
| eth_gasPrice | Current gas price | — |
| eth_maxPriorityFeePerGas | Max priority fee estimate | — |
| eth_feeHistory | Historical base fee and rewards | — |
| eth_estimateGas | Estimate gas for a tx | yes |
| eth_getLogs | Query event logs by filter | yes |
| eth_chainId | Network chain ID | — |
| eth_syncing | Node sync status | — |
| net_version | Network version ID | — |
| web3_clientVersion | Client version string | — |
| eth_subscribe | Subscribe to events (WSS) | yes |
| eth_unsubscribe | Cancel a subscription (WSS) | — |
Flashblocks API
Section titled “Flashblocks API”Pre-confirmation methods that deliver sub-second transaction signals on Base. They let you read state, simulate bundles, and stream events up to ~1.8 seconds ahead of block sealing. The streaming methods require a WebSocket-enabled node provider.
| Method | Description |
|---|---|
| eth_simulateV1 | Simulate transaction bundles against pre-confirmed state |
| base_transactionStatus | Check whether a transaction has been received by the mempool |
| newFlashblockTransactions | Subscribe to individual pre-confirmed transactions |
| pendingLogs | Subscribe to filtered logs from pre-confirmed transactions |
| newFlashblocks | Subscribe to the full Flashblock payload stream |
Debug API
Section titled “Debug API”Development and debugging utilities for transaction replay and block inspection. Debug methods replay execution and are computationally expensive — availability and rate limits vary by node provider.
| Method | Description |
|---|---|
| debug_traceTransaction | Full EVM execution trace for a transaction |
| debug_traceBlockByHash | EVM traces for every transaction in a block by hash |
| debug_traceBlockByNumber | EVM traces for every transaction in a block by number |
Rollup node RPC
Section titled “Rollup node RPC”Methods exposed by the rollup (consensus) node rather than the execution client.
| Method | Description |
|---|---|
| optimism_outputAtBlock | Output root and sync metadata for an L2 block |
Request and response format
Section titled “Request and response format”All requests are HTTP POST with Content-Type: application/json.
| Field | Type | Description |
|---|---|---|
jsonrpc | string | Always "2.0" |
method | string | The RPC method name |
params | array | Method parameters in order |
id | number | string | Identifier echoed back in the response |
Request:
{ "jsonrpc": "2.0", "method": "eth_getBalance", "params": ["0x742d35Cc6634C0532925a3b8D4C9dD0b4f3BaEa", "pending"], "id": 1}Success response:
{ "jsonrpc": "2.0", "id": 1, "result": "0x1a055690d9db80000"}Error response:
{ "jsonrpc": "2.0", "id": 1, "error": { "code": -32602, "message": "Invalid params" }}Error codes
Section titled “Error codes”| Code | Name | Description |
|---|---|---|
-32700 | Parse error | Invalid JSON |
-32600 | Invalid request | Not a valid JSON-RPC 2.0 object |
-32601 | Method not found | Method does not exist or is unavailable |
-32602 | Invalid params | Invalid method parameters |
-32603 | Internal error | Internal JSON-RPC error |
-32000 | Server error | Node-specific error (see message) |
Block parameters
Section titled “Block parameters”| Value | Resolves to |
|---|---|
"latest" | Most recently sealed block |
"pending" | Current Flashblock in progress (~200ms resolution) |
"safe" | Latest safe block |
"finalized" | Latest finalized block |
"earliest" | Genesis block |
"0x<n>" | Specific block by number |