> ## Documentation Index
> Fetch the complete documentation index at: https://docs.base.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Base RPC Overview

> Complete reference for all JSON-RPC and Flashblocks methods available on Base nodes.

Base exposes a single, fully EVM-compatible JSON-RPC API across two performance tiers. You can move from 2-second block confirmations to 200ms pre-confirmations by switching one URL and one block tag.

## Networks

For network details, RPC endpoints, and wallet setup, see [Connecting to Base](/base-chain/quickstart/connecting-to-base).

<Note>
  The public Base endpoints are **HTTP only**. WebSocket RPC connections (`eth_subscribe`, `newHeads`, `logs`) are not available on public Base endpoints — use a [node provider](/base-chain/node-operators/node-providers) such as Alchemy or QuickNode for WebSocket support.
</Note>

## Flashblocks

All Base public endpoints are Flashblocks-enabled. Every standard `eth_` method works identically, and the `pending` block tag reflects the current **pre-confirmed block in progress**, updated every \~200ms with new batches of sequencer-ordered transactions.

Calls like `eth_getBalance`, `eth_getStorageAt`, and `eth_call` run against real sequencer state up to 1.8 seconds before the block seals, with sub-second latency.

## API Reference

### Ethereum JSON-RPC API

Core Ethereum protocol methods for account queries, block and transaction data, gas estimation, and log filtering.

<Info>
  Methods marked ✓ support the `"pending"` block tag, which reflects the current pre-confirmed Flashblock in progress.
</Info>

| Method                                                                                                                              | Description                     | Flashblocks `pending` |
| :---------------------------------------------------------------------------------------------------------------------------------- | :------------------------------ | :-------------------- |
| [eth\_blockNumber](/base-chain/api-reference/ethereum-json-rpc-api/eth_blockNumber)                                                 | Current block number            | —                     |
| [eth\_getBalance](/base-chain/api-reference/ethereum-json-rpc-api/eth_getBalance)                                                   | Account ETH balance             | ✓                     |
| [eth\_getTransactionCount](/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionCount)                                 | Account nonce / tx count        | ✓                     |
| [eth\_getCode](/base-chain/api-reference/ethereum-json-rpc-api/eth_getCode)                                                         | Deployed contract bytecode      | ✓                     |
| [eth\_getStorageAt](/base-chain/api-reference/ethereum-json-rpc-api/eth_getStorageAt)                                               | Contract storage slot value     | ✓                     |
| [eth\_call](/base-chain/api-reference/ethereum-json-rpc-api/eth_call)                                                               | Execute read-only call          | ✓                     |
| [eth\_getBlockByNumber](/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockByNumber)                                       | Block data by number            | ✓                     |
| [eth\_getBlockByHash](/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockByHash)                                           | Block data by hash              | —                     |
| [eth\_getBlockReceipts](/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockReceipts)                                       | All receipts for a block        | ✓                     |
| [eth\_getBlockTransactionCountByNumber](/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockTransactionCountByNumber)       | Tx count by block number        | ✓                     |
| [eth\_getBlockTransactionCountByHash](/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockTransactionCountByHash)           | Tx count by block hash          | —                     |
| [eth\_getTransactionByHash](/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionByHash)                               | Transaction data by hash        | —                     |
| [eth\_getTransactionByBlockHashAndIndex](/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionByBlockHashAndIndex)     | Tx by block hash and index      | —                     |
| [eth\_getTransactionByBlockNumberAndIndex](/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionByBlockNumberAndIndex) | Tx by block number and index    | —                     |
| [eth\_getTransactionReceipt](/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionReceipt)                             | Receipt for a mined tx          | —                     |
| [eth\_sendRawTransaction](/base-chain/api-reference/ethereum-json-rpc-api/eth_sendRawTransaction)                                   | Submit signed transaction       | —                     |
| [eth\_gasPrice](/base-chain/api-reference/ethereum-json-rpc-api/eth_gasPrice)                                                       | Current gas price               | —                     |
| [eth\_maxPriorityFeePerGas](/base-chain/api-reference/ethereum-json-rpc-api/eth_maxPriorityFeePerGas)                               | Max priority fee estimate       | —                     |
| [eth\_feeHistory](/base-chain/api-reference/ethereum-json-rpc-api/eth_feeHistory)                                                   | Historical base fee and rewards | —                     |
| [eth\_estimateGas](/base-chain/api-reference/ethereum-json-rpc-api/eth_estimateGas)                                                 | Estimate gas for a tx           | ✓                     |
| [eth\_getLogs](/base-chain/api-reference/ethereum-json-rpc-api/eth_getLogs)                                                         | Query event logs by filter      | ✓                     |
| [eth\_chainId](/base-chain/api-reference/ethereum-json-rpc-api/eth_chainId)                                                         | Network chain ID                | —                     |
| [eth\_syncing](/base-chain/api-reference/ethereum-json-rpc-api/eth_syncing)                                                         | Node sync status                | —                     |
| [net\_version](/base-chain/api-reference/ethereum-json-rpc-api/net_version)                                                         | Network version ID              | —                     |
| [web3\_clientVersion](/base-chain/api-reference/ethereum-json-rpc-api/web3_clientVersion)                                           | Client version string           | —                     |
| [eth\_subscribe](/base-chain/api-reference/ethereum-json-rpc-api/eth_subscribe)                                                     | Subscribe to events (WSS)       | ✓                     |
| [eth\_unsubscribe](/base-chain/api-reference/ethereum-json-rpc-api/eth_unsubscribe)                                                 | Cancel a subscription (WSS)     | —                     |

### Flashblocks API

Pre-confirmation methods for sub-second transaction signals on Base. These methods enable reading state, simulating bundles, and streaming events up to \~1.8 seconds before a block seals.

| Method                                                                                           | Description                                                |
| ------------------------------------------------------------------------------------------------ | ---------------------------------------------------------- |
| [eth\_simulateV1](/base-chain/api-reference/flashblocks-api/eth_simulateV1)                      | Simulate transaction bundles against pre-confirmed state   |
| [base\_transactionStatus](/base-chain/api-reference/flashblocks-api/base_transactionStatus)      | Check if a transaction has been received by the mempool    |
| [newFlashblockTransactions](/base-chain/api-reference/flashblocks-api/newFlashblockTransactions) | Subscribe to individual pre-confirmed transactions         |
| [pendingLogs](/base-chain/api-reference/flashblocks-api/pendingLogs)                             | Subscribe to filtered logs from pre-confirmed transactions |
| [newFlashblocks](/base-chain/api-reference/flashblocks-api/newFlashblocks)                       | Subscribe to full Flashblock payload stream                |

### Debug API

Development and debugging utilities for deep transaction inspection and block replay. Debug methods replay transactions and are computationally expensive — availability and rate limits vary by [node provider](/base-chain/node-operators/node-providers).

| Method                                                                                    | Description                                          |
| ----------------------------------------------------------------------------------------- | ---------------------------------------------------- |
| [debug\_traceTransaction](/base-chain/api-reference/debug-api/debug_traceTransaction)     | Full EVM execution trace for a transaction           |
| [debug\_traceBlockByHash](/base-chain/api-reference/debug-api/debug_traceBlockByHash)     | EVM traces for all transactions in a block by hash   |
| [debug\_traceBlockByNumber](/base-chain/api-reference/debug-api/debug_traceBlockByNumber) | EVM traces for all transactions in a block by number |

## Request & 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:**

```json theme={null}
{
  "jsonrpc": "2.0",
  "method": "eth_getBalance",
  "params": ["0x742d35Cc6634C0532925a3b8D4C9dD0b4f3BaEa", "pending"],
  "id": 1
}
```

**Success response:**

```json theme={null}
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": "0x1a055690d9db80000"
}
```

**Error response:**

```json theme={null}
{
  "jsonrpc": "2.0",
  "id": 1,
  "error": {
    "code": -32602,
    "message": "Invalid params"
  }
}
```

## 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

| Value         | Standard                       | Flashblocks                                             |
| ------------- | ------------------------------ | ------------------------------------------------------- |
| `"latest"`    | Most recently sealed block     | Most recently sealed block                              |
| `"pending"`   | Unmined transaction pool state | **Current Flashblock in progress (\~200ms resolution)** |
| `"safe"`      | Latest safe block              | Latest safe block                                       |
| `"finalized"` | Latest finalized block         | Latest finalized block                                  |
| `"earliest"`  | Genesis block                  | Genesis block                                           |
| `"0x<n>"`     | Specific block by number       | Specific block by number                                |
