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 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
| Network | Chain ID | Type | Archive |
|---|
| Mainnet | 8453 | Production | Yes |
| Sepolia | 84532 | Testnet | Yes |
Endpoints
| HTTP |
|---|
| RPC | https://mainnet.base.org |
| HTTP |
|---|
| RPC | https://sepolia.base.org |
The public endpoints above are rate-limited and not suitable for production traffic. For production use, connect through a node provider.
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 such as Alchemy or QuickNode for WebSocket support.
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.
Methods marked ✓ support the "pending" block tag, which reflects the current pre-confirmed Flashblock in progress.
| Method | Description | Flashblocks pending |
|---|
| eth_blockNumber | Current block number | — |
| eth_getBalance | Account ETH balance | ✓ |
| eth_getTransactionCount | Account nonce / tx count | ✓ |
| eth_getCode | Deployed contract bytecode | ✓ |
| eth_getStorageAt | Contract storage slot value | ✓ |
| eth_call | Execute read-only call | ✓ |
| eth_getBlockByNumber | Block data by number | ✓ |
| eth_getBlockByHash | Block data by hash | — |
| eth_getBlockReceipts | All receipts for a block | ✓ |
| eth_getBlockTransactionCountByNumber | Tx count by block number | ✓ |
| 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 | ✓ |
| eth_getLogs | Query event logs by filter | ✓ |
| 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) | ✓ |
| 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 | Simulate transaction bundles against pre-confirmed state |
| base_transactionStatus | Check if 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 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.
| Method | Description |
|---|
| debug_traceTransaction | Full EVM execution trace for a transaction |
| debug_traceBlockByHash | EVM traces for all transactions in a block by hash |
| debug_traceBlockByNumber | EVM traces for all transactions in a block by number |
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
| 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 |