diff --git a/docs/ai-agents/trading.mdx b/docs/ai-agents/trading.mdx
index fd5e99a49..0cf3b9354 100644
--- a/docs/ai-agents/trading.mdx
+++ b/docs/ai-agents/trading.mdx
@@ -3,7 +3,7 @@ title: 'Trading on Base'
description: 'Base-specific patterns, fee calibration, and onchain signals for trading agents.'
---
-Base offers two structural advantages for trading agents: **Flashblocks** (200ms preconfirmed block state, 10× faster than the 2-second block) and an exposed L1/L2 fee structure that enables explicit cost-vs-speed tradeoffs. This page covers only what is unique to Base — general EVM execution patterns are in the [Ethereum documentation](https://ethereum.org/developers/docs), and Base's RPC methods are in the [JSON-RPC API Reference](/base-chain/reference/json-rpc-api) and [Flashblocks API Reference](/base-chain/flashblocks/api-reference).
+Base offers two structural advantages for trading agents: **Flashblocks** (200ms preconfirmed block state, 10× faster than the 2-second block) and an exposed L1/L2 fee structure that enables explicit cost-vs-speed tradeoffs. This page covers only what is unique to Base — general EVM execution patterns are in the [Ethereum documentation](https://ethereum.org/developers/docs), and Base's RPC methods are in the [JSON-RPC API Reference](/base-chain/reference/json-rpc-api).
---
@@ -15,11 +15,11 @@ Always connect to `mainnet-preconf.base.org` (or `sepolia-preconf.base.org` for
### Simulate against preconfirmed state before signing
-Call [`eth_simulateV1`](/base-chain/flashblocks/api-reference#eth_simulatev1) against the preconf endpoint with `"blockStateCalls"` targeting the `pending` block before signing any transaction. This catches reverts against current Flashblocks state rather than the last sealed block — which may be up to 2 seconds stale by the time your transaction lands.
+Call [`eth_simulateV1`](/base-chain/reference/rpc-methods/eth_simulateV1) against the preconf endpoint with `"blockStateCalls"` targeting the `pending` block before signing any transaction. This catches reverts against current Flashblocks state rather than the last sealed block — which may be up to 2 seconds stale by the time your transaction lands.
### Poll `base_transactionStatus` instead of blocking on a receipt
-After submission, [`base_transactionStatus`](/base-chain/flashblocks/api-reference#base_transactionstatus) returns preconfirmed inclusion status within a single Flashblock interval (~200ms). Blocking on `eth_getTransactionReceipt` waits for a full sealed block (up to 2 seconds). For latency-sensitive strategies, poll `base_transactionStatus` first and only fall back to the receipt for finality confirmation.
+After submission, [`base_transactionStatus`](/base-chain/reference/rpc-methods/base_transactionStatus) returns preconfirmed inclusion status within a single Flashblock interval (~200ms). Blocking on `eth_getTransactionReceipt` waits for a full sealed block (up to 2 seconds). For latency-sensitive strategies, poll `base_transactionStatus` first and only fall back to the receipt for finality confirmation.
---
@@ -79,8 +79,9 @@ Base exposes data that most chains don't provide at this resolution. The table m
## Related
-- [Flashblocks API Reference](/base-chain/flashblocks/api-reference) — `eth_simulateV1`, `base_transactionStatus`, subscription types
- [Flashblocks Integration Guide](/base-chain/flashblocks/apps) — endpoints, library setup (Wagmi, Viem, Ethers)
+- [eth_simulateV1](/base-chain/reference/rpc-methods/eth_simulateV1) — simulate against preconfirmed state
+- [base_transactionStatus](/base-chain/reference/rpc-methods/base_transactionStatus) — check mempool status before receipt
- [Block Building](/base-chain/network-information/block-building) — Flashblocks timing, per-transaction gas maximum
- [Network Fees](/base-chain/network-information/network-fees) — EIP-1559 parameters, GasPriceOracle methods
- [JSON-RPC API Reference](/base-chain/reference/json-rpc-api) — complete RPC method reference
diff --git a/docs/base-chain/flashblocks/api-reference.mdx b/docs/base-chain/flashblocks/api-reference.mdx
deleted file mode 100644
index 2ff1577f7..000000000
--- a/docs/base-chain/flashblocks/api-reference.mdx
+++ /dev/null
@@ -1,748 +0,0 @@
----
-title: 'Flashblocks API Reference'
-description: 'Complete reference for Flashblocks-aware RPC methods and real-time WebSocket subscription types for sub-200ms preconfirmed transaction data.'
----
-
-Flashblocks-aware nodes extend the standard Ethereum JSON-RPC API with support for preconfirmed block state and Flashblocks-specific real-time subscriptions. All [standard JSON-RPC methods](/base-chain/reference/json-rpc-api) remain fully supported.
-
-
-See [Flashblocks](/base-chain/flashblocks/apps) for an overview of Flashblocks and how to integrate it into your app. For the standard Base node RPC reference, see the [JSON-RPC API Reference](/base-chain/reference/json-rpc-api).
-
-
-## Endpoints
-
-Connect to a Flashblocks-aware endpoint to access preconfirmed data:
-
-| Network | HTTP RPC | WebSocket (WSS) |
-| ------- | -------- | --------------- |
-| Mainnet | `https://mainnet-preconf.base.org` | `wss://mainnet-preconf.base.org` |
-| Sepolia | `https://sepolia-preconf.base.org` | `wss://sepolia-preconf.base.org` |
-
-
-The public endpoints above are rate-limited and not suitable for production traffic. For production use, connect through a Flashblocks-enabled node provider such as Alchemy, QuickNode, or dRPC.
-
-
----
-
-## Standard Methods with Flashblocks Behavior
-
-The following standard JSON-RPC methods return preconfirmed data when called with the `"pending"` block tag against a Flashblocks-aware endpoint. This gives your application real-time state up to 200ms before the next full block is sealed.
-
-### eth_getBlockByNumber
-
-When called with `"pending"`, returns the current Flashblock — the block actively being built with preconfirmed transactions.
-
-#### Parameters
-
-
- Use `"pending"` to retrieve the latest Flashblock. Also accepts `"latest"`, `"safe"`, `"finalized"`, or a specific block number.
-
-
-
- If `true`, returns full transaction objects. If `false`, returns only transaction hashes.
-
-
-#### Returns
-
-
- A block object reflecting the current preconfirmed state. See [eth_getBlockByNumber](/base-chain/reference/json-rpc-api#eth_getblockbynumber) for full field descriptions.
-
-
-
-```bash cURL
-curl https://sepolia-preconf.base.org \
- -X POST \
- -H "Content-Type: application/json" \
- -d '{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["pending",true],"id":1}'
-```
-
-```json Response
-{
- "jsonrpc": "2.0",
- "id": 1,
- "result": {
- "number": "0x1234",
- "hash": "0x...",
- "transactions": [...]
- }
-}
-```
-
-
----
-
-### eth_getTransactionReceipt
-
-Returns the receipt for a preconfirmed transaction before it is included in a finalized block.
-
-#### Parameters
-
-
- The 32-byte transaction hash.
-
-
-#### Returns
-
-
- A transaction receipt object for the preconfirmed transaction, or `null` if not found. See [eth_getTransactionReceipt](/base-chain/reference/json-rpc-api#eth_gettransactionreceipt) for full field descriptions.
-
-
-
-```bash cURL
-curl https://sepolia-preconf.base.org \
- -X POST \
- -H "Content-Type: application/json" \
- -d '{"jsonrpc":"2.0","method":"eth_getTransactionReceipt","params":["0x..."],"id":1}'
-```
-
-```json Response
-{
- "jsonrpc": "2.0",
- "id": 1,
- "result": {
- "transactionHash": "0x...",
- "blockNumber": "0x1234",
- "status": "0x1"
- }
-}
-```
-
-
----
-
-### eth_getBalance
-
-Returns the ETH balance of an address in the latest preconfirmed Flashblock state.
-
-#### Parameters
-
-
- The 20-byte address to query.
-
-
-
- Use `"pending"` to query preconfirmed state.
-
-
-#### Returns
-
-
- The balance in wei as a hexadecimal string.
-
-
-
-```bash cURL
-curl https://sepolia-preconf.base.org \
- -X POST \
- -H "Content-Type: application/json" \
- -d '{"jsonrpc":"2.0","method":"eth_getBalance","params":["0x...","pending"],"id":1}'
-```
-
-```json Response
-{
- "jsonrpc": "2.0",
- "id": 1,
- "result": "0x0234c00000"
-}
-```
-
-
----
-
-### eth_getTransactionCount
-
-Returns the account nonce in the latest preconfirmed Flashblock state. Use `"pending"` to account for transactions that are preconfirmed but not yet in a sealed block.
-
-#### Parameters
-
-
- The 20-byte account address.
-
-
-
- Use `"pending"` to include preconfirmed transactions in the nonce count.
-
-
-#### Returns
-
-
- The transaction count (nonce) as a hexadecimal integer.
-
-
-
-```bash cURL
-curl https://sepolia-preconf.base.org \
- -X POST \
- -H "Content-Type: application/json" \
- -d '{"jsonrpc":"2.0","method":"eth_getTransactionCount","params":["0x...","pending"],"id":1}'
-```
-
-```json Response
-{
- "jsonrpc": "2.0",
- "id": 1,
- "result": "0x1b"
-}
-```
-
-
----
-
-### eth_getTransactionByHash
-
-Returns a preconfirmed transaction before it is included in a finalized block.
-
-#### Parameters
-
-
- The 32-byte transaction hash.
-
-
-#### Returns
-
-
- A transaction object, or `null` if not found. See [eth_getTransactionByHash](/base-chain/reference/json-rpc-api#eth_gettransactionbyhash) for full field descriptions.
-
-
-
-```bash cURL
-curl https://sepolia-preconf.base.org \
- -X POST \
- -H "Content-Type: application/json" \
- -d '{"jsonrpc":"2.0","method":"eth_getTransactionByHash","params":["0x..."],"id":1}'
-```
-
-```json Response
-{
- "jsonrpc": "2.0",
- "id": 1,
- "result": {
- "type": "0x2",
- "chainId": "0x14a34",
- "nonce": "0x1b",
- "hash": "0x...",
- "from": "0x...",
- "to": "0x..."
- }
-}
-```
-
-
----
-
-### eth_call
-
-Executes a contract call against the latest preconfirmed Flashblock state.
-
-#### Parameters
-
-
- The transaction call object. See [eth_call](/base-chain/reference/json-rpc-api#eth_call) for field details.
-
-
-
- Use `"pending"` to execute the call against preconfirmed state.
-
-
-#### Returns
-
-
- Hex-encoded return data from the contract call.
-
-
-
-```bash cURL
-curl https://sepolia-preconf.base.org \
- -X POST \
- -H "Content-Type: application/json" \
- -d '{"jsonrpc":"2.0","method":"eth_call","params":[{"to":"0x...","data":"0x..."},"pending"],"id":1}'
-```
-
-```json Response
-{
- "jsonrpc": "2.0",
- "id": 1,
- "result": "0x0000000000000000000000000000000000000000000000000000000000000001"
-}
-```
-
-
----
-
-### eth_estimateGas
-
-Estimates gas for a transaction against the latest preconfirmed Flashblock state.
-
-#### Parameters
-
-
- The transaction object. See [eth_estimateGas](/base-chain/reference/json-rpc-api#eth_estimategas) for field details.
-
-
-
- Use `"pending"` to estimate against preconfirmed state.
-
-
-#### Returns
-
-
- Estimated gas as a hexadecimal integer.
-
-
-
-```bash cURL
-curl https://sepolia-preconf.base.org \
- -X POST \
- -H "Content-Type: application/json" \
- -d '{"jsonrpc":"2.0","method":"eth_estimateGas","params":[{"to":"0x...","data":"0x..."},"pending"],"id":1}'
-```
-
-```json Response
-{
- "jsonrpc": "2.0",
- "id": 1,
- "result": "0x5208"
-}
-```
-
-
----
-
-### eth_getLogs
-
-Returns logs from preconfirmed Flashblock data by setting `"toBlock"` to `"pending"`.
-
-#### Parameters
-
-
- The log filter object.
-
-
-
- Start of the block range. Use `"latest"` for the most recent mined block.
-
-
- Use `"pending"` to include logs from the current Flashblock.
-
-
- A single contract address or array of addresses to filter by. Optional.
-
-
- Array of topic filters. Same format as in `eth_getLogs`. Optional.
-
-
-
-
-#### Returns
-
-
- An array of log objects. See [eth_getLogs](/base-chain/reference/json-rpc-api#eth_getlogs) for full field descriptions.
-
-
-
-```bash cURL
-curl https://sepolia-preconf.base.org \
- -X POST \
- -H "Content-Type: application/json" \
- -d '{"jsonrpc":"2.0","method":"eth_getLogs","params":[{"fromBlock":"latest","toBlock":"pending","address":"0x...","topics":["0x..."]}],"id":1}'
-```
-
-```json Response
-{
- "jsonrpc": "2.0",
- "id": 1,
- "result": [
- {
- "address": "0x...",
- "topics": ["0x..."],
- "data": "0x...",
- "blockNumber": "0x1234",
- "transactionHash": "0x...",
- "transactionIndex": "0x0",
- "blockHash": "0x...",
- "logIndex": "0x0",
- "removed": false
- }
- ]
-}
-```
-
-
----
-
-## Flashblocks-Specific Methods
-
-### eth_simulateV1
-
-Simulates one or more transaction bundles against the current preconfirmed Flashblock state. Supports state overrides, multi-block simulation, and optional transfer tracing.
-
-#### Parameters
-
-
- The simulation configuration.
-
-
-
- Array of block state call objects. Each object represents one simulated block.
-
-
-
- Array of transaction call objects to simulate within this block.
-
-
- Per-address state overrides applied before simulation (e.g., balance, nonce, code, storage). Optional.
-
-
- Block-level overrides (e.g., `number`, `timestamp`). Optional.
-
-
-
-
- If `true`, ETH transfer events are included as logs in the result. Optional; defaults to `false`.
-
-
- If `true`, transaction validation (nonce, balance) is enforced. Optional; defaults to `false`.
-
-
-
-
-
- Use `"pending"` to simulate against the current Flashblock state.
-
-
-#### Returns
-
-
- Array of simulated block results, one per entry in `blockStateCalls`.
-
-
-
- Array of individual call results.
-
-
-
- `"0x1"` for success, `"0x0"` for failure.
-
-
- Gas used by this call as a hexadecimal integer.
-
-
- Hex-encoded return data from the call.
-
-
- Logs emitted by this call (including ETH transfer logs if `traceTransfers` is `true`).
-
-
- Revert reason if the call failed. Optional.
-
-
-
-
-
-
-
-```bash cURL
-curl https://sepolia-preconf.base.org \
- -X POST \
- -H "Content-Type: application/json" \
- -d '{
- "jsonrpc": "2.0",
- "method": "eth_simulateV1",
- "params": [
- {
- "blockStateCalls": [
- {
- "calls": [
- { "to": "0x...", "data": "0x..." }
- ],
- "stateOverrides": {}
- }
- ],
- "traceTransfers": true,
- "validation": true
- },
- "pending"
- ],
- "id": 1
- }'
-```
-
-```json Response
-{
- "jsonrpc": "2.0",
- "id": 1,
- "result": [
- {
- "calls": [
- {
- "status": "0x1",
- "gasUsed": "0x5208",
- "returnData": "0x",
- "logs": []
- }
- ]
- }
- ]
-}
-```
-
-
----
-
-### base_transactionStatus Beta
-
-Checks whether a specific transaction is present in the node's mempool. Use this to confirm that a submitted transaction has been received before it appears in a Flashblock.
-
-
-Requires [base/base](https://github.com/base/base) minimum client version v0.3.0.
-
-
-#### Parameters
-
-
- The 32-byte transaction hash to query.
-
-
-#### Returns
-
-
- Transaction status object.
-
-
-
- `"Known"` if the transaction is present in the mempool. `"Unknown"` if it has not been seen by this node.
-
-
-
-
-
-```bash cURL
-curl https://sepolia-preconf.base.org \
- -X POST \
- -H "Content-Type: application/json" \
- -d '{"jsonrpc":"2.0","method":"base_transactionStatus","params":["0x..."],"id":1}'
-```
-
-```json Known
-{
- "jsonrpc": "2.0",
- "id": 1,
- "result": {
- "status": "Known"
- }
-}
-```
-
-```json Unknown
-{
- "jsonrpc": "2.0",
- "id": 1,
- "result": {
- "status": "Unknown"
- }
-}
-```
-
-
----
-
-## WebSocket Subscription Methods
-
-Flashblocks-aware nodes expose specialized `eth_subscribe` subscription types for real-time streaming of preconfirmed data at ~200ms intervals — well before a full block is sealed.
-
-
-Each subscription emits **one item per WebSocket message**. Events arrive approximately every 200ms. If your application performs heavy processing per event, throttle or debounce your handler to avoid blocking.
-
-
-
-The Flashblocks-specific subscription types (`newFlashblockTransactions`, `pendingLogs`, `newFlashblocks`) require [base/base](https://github.com/base/base) minimum client version v0.3.1.
-
-
-### Flashblocks Subscription Types
-
-In addition to the [standard subscription types](/base-chain/reference/json-rpc-api#eth_subscribe) (`newHeads`, `logs`, `newPendingTransactions`), Flashblocks-aware nodes support:
-
-| Subscription | Description | Response format |
-| ------------ | ----------- | --------------- |
-| `newFlashblockTransactions` | Streams transactions as they are preconfirmed into Flashblocks | One transaction per message |
-| `pendingLogs` | Streams logs matching a filter as they are preconfirmed | One log per message |
-| `newFlashblocks` | Streams full block state updates for each new Flashblock | Block state object per Flashblock |
-
----
-
-### newFlashblockTransactions
-
-Subscribe to receive each transaction as it is preconfirmed. Pass `true` as the second parameter to receive full transaction and log data in each message.
-
-#### Parameters
-
-
- Must be `"newFlashblockTransactions"`.
-
-
-
- Optional. If `true`, each notification includes the full transaction object and associated logs. If `false` or omitted, notifications contain minimal transaction data.
-
-
-#### Returns
-
-
- Hex-encoded subscription ID.
-
-
-
-```json Subscribe
-{"jsonrpc": "2.0", "id": 1, "method": "eth_subscribe", "params": ["newFlashblockTransactions"]}
-```
-
-```json Subscribe (full data)
-{"jsonrpc": "2.0", "id": 1, "method": "eth_subscribe", "params": ["newFlashblockTransactions", true]}
-```
-
-```json Subscription ID Response
-{"jsonrpc": "2.0", "id": 1, "result": "0x1887ec8b9589ccad00000000000532da"}
-```
-
-
----
-
-### pendingLogs
-
-Subscribe to receive logs from preconfirmed transactions matching an optional filter. Useful for monitoring contract events with sub-block latency.
-
-#### Parameters
-
-
- Must be `"pendingLogs"`.
-
-
-
- Optional log filter.
-
-
-
- A single contract address or array of addresses to filter by. Optional.
-
-
- Array of topic filters in the same format as `eth_getLogs`. Optional.
-
-
-
-
-#### Returns
-
-
- Hex-encoded subscription ID.
-
-
-
-```json Subscribe (with filter)
-{
- "jsonrpc": "2.0",
- "id": 1,
- "method": "eth_subscribe",
- "params": [
- "pendingLogs",
- {
- "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
- "topics": [
- "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"
- ]
- }
- ]
-}
-```
-
-```json Subscription ID Response
-{"jsonrpc": "2.0", "id": 1, "result": "0x2a7bc8d4e3f5a6b1c2d3e4f5a6b7c8d9"}
-```
-
-
----
-
-### newFlashblocks
-
-Subscribe to receive full block state updates as each Flashblock is built. Each message contains the accumulated preconfirmed state for the block in progress.
-
-#### Parameters
-
-
- Must be `"newFlashblocks"`.
-
-
-#### Returns
-
-
- Hex-encoded subscription ID.
-
-
-
-```json Subscribe
-{"jsonrpc": "2.0", "id": 1, "method": "eth_subscribe", "params": ["newFlashblocks"]}
-```
-
-```json Subscription ID Response
-{"jsonrpc": "2.0", "id": 1, "result": "0x3b8cd9e5f4a7b2c1d0e3f4a5b6c7d8e9"}
-```
-
-
-**JavaScript example:**
-
-```javascript
-import WebSocket from 'ws';
-
-// Use a WSS RPC endpoint — not the raw Flashblock WebSocket stream
-const ws = new WebSocket('wss://your-provider.example.com/ws');
-
-ws.on('open', () => {
- ws.send(JSON.stringify({
- jsonrpc: '2.0',
- method: 'eth_subscribe',
- params: ['newFlashblockTransactions'],
- id: 1
- }));
-});
-
-ws.on('message', (data) => {
- const response = JSON.parse(data.toString());
- if (response.method === 'eth_subscription') {
- console.log('Preconfirmed transaction:', response.params.result);
- }
-});
-
-ws.on('error', (error) => {
- console.error('WebSocket error:', error);
-});
-
-ws.on('close', () => {
- console.log('WebSocket connection closed');
-});
-```
-
----
-
-### eth_unsubscribe
-
-Cancels a Flashblocks subscription. Works identically to the [standard eth_unsubscribe](/base-chain/reference/json-rpc-api#eth_unsubscribe).
-
-#### Parameters
-
-
- The hex-encoded subscription ID returned by `eth_subscribe`.
-
-
-#### Returns
-
-
- `true` if successfully cancelled, `false` if the subscription ID was not found.
-
-
-
-```json Request
-{"jsonrpc": "2.0", "method": "eth_unsubscribe", "params": ["0x1887ec8b9589ccad00000000000532da"], "id": 1}
-```
-
-```json Response
-{"jsonrpc": "2.0", "id": 1, "result": true}
-```
-
diff --git a/docs/base-chain/flashblocks/apps.mdx b/docs/base-chain/flashblocks/apps.mdx
index dd34984a8..57ff56133 100644
--- a/docs/base-chain/flashblocks/apps.mdx
+++ b/docs/base-chain/flashblocks/apps.mdx
@@ -8,7 +8,7 @@ description: Experience lightning-fast transaction confirmations of Base by usin
Flashblocks enable up to 200 millisecond transaction confirmations on Base by leveraging preconfirmations, ultra-fast signals that arrive before the next block is sealed. Built for developers who demand instant UX, it's ideal for high-frequency apps, games, and real-time interactions where waiting even a few seconds is too long. By integrating directly within Base's infrastructure, Flashblocks enables seamless, ultrafast and snappy user experiences without compromising security.
-See the [Flashblocks API Reference](/base-chain/flashblocks/api-reference) for the full list of supported RPC methods and WebSocket subscription types.
+See the [JSON-RPC API Reference](/base-chain/reference/json-rpc-api) for the full list of supported RPC methods and WebSocket subscription types, including Flashblocks-specific methods.
## Integrating Flashblocks
@@ -23,7 +23,7 @@ Base offers the following public Flashblocks-aware RPC endpoints. These are rate
| Mainnet | https://mainnet-preconf.base.org |
| Sepolia | https://sepolia-preconf.base.org |
-For a full reference of all supported RPC methods — including preconfirmed state queries, simulation, and real-time subscriptions — see the [Flashblocks API Reference](/base-chain/flashblocks/api-reference).
+For a full reference of all supported RPC methods — including preconfirmed state queries, simulation, and real-time subscriptions — see the [JSON-RPC API Reference](/base-chain/reference/json-rpc-api).
### Libraries
diff --git a/docs/base-chain/flashblocks/node-providers.mdx b/docs/base-chain/flashblocks/node-providers.mdx
index 1c617db6a..9471ab453 100644
--- a/docs/base-chain/flashblocks/node-providers.mdx
+++ b/docs/base-chain/flashblocks/node-providers.mdx
@@ -45,7 +45,7 @@ curl -X POST \
## Available RPC Methods
-Flashblocks-aware nodes provide all standard Ethereum JSON-RPC methods plus specialized Flashblocks endpoints. For the full list of supported methods and subscription types, see the [Flashblocks API Reference](/base-chain/flashblocks/api-reference).
+Flashblocks-aware nodes provide all standard Ethereum JSON-RPC methods plus specialized Flashblocks endpoints. For the full list of supported methods and subscription types, see the [JSON-RPC API Reference](/base-chain/reference/json-rpc-api).
## WebSocket API
diff --git a/docs/base-chain/reference/json-rpc-api.mdx b/docs/base-chain/reference/json-rpc-api.mdx
index 99074ede9..4f9e89ac6 100644
--- a/docs/base-chain/reference/json-rpc-api.mdx
+++ b/docs/base-chain/reference/json-rpc-api.mdx
@@ -67,1496 +67,62 @@ Methods that accept a block parameter support the following values:
| `"finalized"` | Latest block considered finalized |
| `"0x"` | Specific block number in hexadecimal |
-## Account & State Methods
-
-### eth_blockNumber
-
-Returns the number of the most recently mined block.
-
-**Parameters**
-
-This method takes no parameters.
-
-**Returns**
-
-
- The current block number as a hexadecimal string.
-
-
-
-```json Request
-{
- "jsonrpc": "2.0",
- "method": "eth_blockNumber",
- "params": [],
- "id": 1
-}
-```
-
-```json Response
-{
- "jsonrpc": "2.0",
- "id": 1,
- "result": "0x12ced28"
-}
-```
-
-
-### eth_getBalance
-
-Returns the ETH balance of a given address at a specified block.
-
-**Parameters**
-
-
- The 20-byte address to check the balance for.
-
-
-
- Block number in hexadecimal, or a block tag: `latest`, `earliest`, `pending`, `safe`, or `finalized`.
-
-
-**Returns**
-
-
- The account balance in wei as a hexadecimal string.
-
-
-
-```json Request
-{
- "jsonrpc": "2.0",
- "method": "eth_getBalance",
- "params": [
- "0x4200000000000000000000000000000000000006",
- "latest"
- ],
- "id": 1
-}
-```
-
-```json Response
-{
- "jsonrpc": "2.0",
- "id": 1,
- "result": "0x2c68af0bb14000"
-}
-```
-
-
-### eth_getTransactionCount
-
-Returns the number of transactions sent from an address — also known as the account nonce. Use the `pending` block parameter to include transactions that are in the mempool but not yet mined.
-
-**Parameters**
-
-
- The 20-byte account address.
-
-
-
- Block number in hexadecimal, or a block tag: `latest`, `earliest`, `pending`, `safe`, or `finalized`.
-
-
-**Returns**
-
-
- The number of transactions sent from the address as a hexadecimal integer.
-
-
-
-```json Request
-{
- "jsonrpc": "2.0",
- "method": "eth_getTransactionCount",
- "params": [
- "0xd3CdA913deB6f4967b2Ef66ae97DE114a83bcc01",
- "latest"
- ],
- "id": 1
-}
-```
-
-```json Response
-{
- "jsonrpc": "2.0",
- "id": 1,
- "result": "0x1b"
-}
-```
-
-
-### eth_getCode
-
-Returns the compiled bytecode stored at a given contract address. Returns `"0x"` for externally owned accounts (EOAs).
-
-**Parameters**
-
-
- The 20-byte address (typically a smart contract).
-
-
-
- Block number in hexadecimal, or a block tag: `latest`, `earliest`, `pending`, `safe`, or `finalized`.
-
-
-**Returns**
-
-
- The bytecode at the address as a hex string. Returns `"0x"` if there is no code (EOA or self-destructed contract).
-
-
-
-```json Request
-{
- "jsonrpc": "2.0",
- "method": "eth_getCode",
- "params": [
- "0x4200000000000000000000000000000000000006",
- "latest"
- ],
- "id": 1
-}
-```
-
-```json Response
-{
- "jsonrpc": "2.0",
- "id": 1,
- "result": "0x6080604052348015600f57600080fd5b506004361060285760003560e01c8063..."
-}
-```
-
-
-### eth_getStorageAt
-
-Returns the raw value stored at a specific storage slot of a contract address.
-
-**Parameters**
-
-
- The 20-byte contract address.
-
-
-
- The hex-encoded integer position of the storage slot (e.g., `"0x0"` for slot 0).
-
-
-
- Block number in hexadecimal, or a block tag: `latest`, `earliest`, `pending`, `safe`, or `finalized`.
-
-
-**Returns**
-
-
- The 32-byte value stored at the given storage position as a hex string.
-
-
-
-```json Request
-{
- "jsonrpc": "2.0",
- "method": "eth_getStorageAt",
- "params": [
- "0x4200000000000000000000000000000000000006",
- "0x0",
- "latest"
- ],
- "id": 1
-}
-```
-
-```json Response
-{
- "jsonrpc": "2.0",
- "id": 1,
- "result": "0x0000000000000000000000000000000000000000000000000000000000000000"
-}
-```
-
-
-### eth_call
-
-Executes a message call against the current chain state without broadcasting a transaction. No gas is consumed on-chain. Used to read contract state or simulate calls.
-
-**Parameters**
-
-
- The transaction call object.
-
-
-
- The 20-byte address the call is sent from. Optional; defaults to the zero address.
-
-
- The 20-byte address of the contract to call.
-
-
- Hex-encoded integer of gas to provide for the call. Defaults to a high limit if omitted.
-
-
- Hex-encoded gas price in wei. For legacy transactions. Optional.
-
-
- EIP-1559 maximum total fee per gas. Optional.
-
-
- EIP-1559 maximum priority fee per gas. Optional.
-
-
- Hex-encoded ETH value to send with the call in wei. Optional.
-
-
- ABI-encoded call data: the 4-byte function selector followed by encoded arguments. Optional.
-
-
-
-
-
- Block number in hexadecimal, or a block tag: `latest`, `earliest`, `pending`, `safe`, or `finalized`.
-
-
-**Returns**
-
-
- The return value of the executed contract call as a hex-encoded byte array.
-
-
-
-```json Request
-{
- "jsonrpc": "2.0",
- "method": "eth_call",
- "params": [
- {
- "to": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
- "data": "0x70a082310000000000000000000000004200000000000000000000000000000000000006"
- },
- "latest"
- ],
- "id": 1
-}
-```
-
-```json Response
-{
- "jsonrpc": "2.0",
- "id": 1,
- "result": "0x0000000000000000000000000000000000000000000000000000000005f5e100"
-}
-```
-
-
-| Code | Message | Description |
-| --- | --- | --- |
-| `-32000` | execution reverted | The call reverted. The `data` field in the error object contains the ABI-encoded revert reason when available. |
-
-## Block Methods
-
-### eth_getBlockByNumber
-
-Returns information about a block by its block number.
-
-**Parameters**
-
-
- Block number in hexadecimal, or a block tag: `latest`, `earliest`, `pending`, `safe`, or `finalized`.
-
-
-
- If `true`, returns full transaction objects in the `transactions` array. If `false`, returns only transaction hashes.
-
-
-**Returns**
-
-
- A block object, or `null` if no block was found.
-
-
-
- Block number as a hex string. `null` when the block is pending.
-
-
- 32-byte hash of the block. `null` when the block is pending.
-
-
- 32-byte hash of the parent block.
-
-
- 8-byte proof-of-work nonce. Always `"0x0000000000000000"` on Base (proof-of-stake).
-
-
- 32-byte SHA3 hash of the uncles data in the block. Always the empty-uncle-list hash on Base.
-
-
- 256-byte bloom filter for the logs of the block.
-
-
- 32-byte root of the transaction trie.
-
-
- 32-byte root of the final state trie.
-
-
- 32-byte root of the receipts trie.
-
-
- 20-byte address of the fee recipient (block proposer on Base).
-
-
- Block difficulty. Always `"0x0"` on Base (proof-of-stake).
-
-
- Total chain difficulty. Always `"0x0"` on Base (proof-of-stake).
-
-
- Hex-encoded extra data field of the block.
-
-
- Integer size of the block in bytes as a hexadecimal.
-
-
- Maximum gas allowed in this block.
-
-
- Total gas used by all transactions in this block.
-
-
- Unix timestamp of when the block was collated.
-
-
- Array of transaction hashes (when `fullTransactions` is `false`) or full transaction objects (when `true`).
-
-
- Array of uncle block hashes. Always `[]` on Base.
-
-
- Base fee per gas in this block (EIP-1559).
-
-
- Array of validator withdrawals included in the block (EIP-4895).
-
-
- 32-byte root of the withdrawals trie (EIP-4895).
-
-
-
-
-
-```json Request
-{
- "jsonrpc": "2.0",
- "method": "eth_getBlockByNumber",
- "params": ["latest", false],
- "id": 1
-}
-```
-
-```json Response
-{
- "jsonrpc": "2.0",
- "id": 1,
- "result": {
- "number": "0x12ced28",
- "hash": "0x3a4e8c5d7f2b1a6e9d0c4f8b3e7a2d5c8f1b4e7a0d3c6f9b2e5a8d1c4f7b0e3",
- "parentHash": "0x1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b",
- "nonce": "0x0000000000000000",
- "sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
- "logsBloom": "0x00000000000000000000000000000000...",
- "transactionsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "stateRoot": "0x3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e2f3a4b",
- "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "miner": "0x4200000000000000000000000000000000000011",
- "difficulty": "0x0",
- "totalDifficulty": "0x0",
- "extraData": "0x",
- "size": "0x220",
- "gasLimit": "0x1c9c380",
- "gasUsed": "0x5208",
- "timestamp": "0x6783a5d0",
- "transactions": [
- "0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238"
- ],
- "uncles": [],
- "baseFeePerGas": "0x3b9aca00",
- "withdrawals": [],
- "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"
- }
-}
-```
-
-```json Not Found
-{
- "jsonrpc": "2.0",
- "id": 1,
- "result": null
-}
-```
-
-
-### eth_getBlockByHash
-
-Returns information about a block by its hash.
-
-**Parameters**
-
-
- The 32-byte hash of the block.
-
-
-
- If `true`, returns full transaction objects. If `false`, returns only transaction hashes.
-
-
-**Returns**
-
-
- A block object with the same fields as [`eth_getBlockByNumber`](#eth_getblockbynumber), or `null` if no block was found.
-
-
-
-```json Request
-{
- "jsonrpc": "2.0",
- "method": "eth_getBlockByHash",
- "params": [
- "0x3a4e8c5d7f2b1a6e9d0c4f8b3e7a2d5c8f1b4e7a0d3c6f9b2e5a8d1c4f7b0e3",
- false
- ],
- "id": 1
-}
-```
-
-```json Response
-{
- "jsonrpc": "2.0",
- "id": 1,
- "result": {
- "number": "0x12ced28",
- "hash": "0x3a4e8c5d7f2b1a6e9d0c4f8b3e7a2d5c8f1b4e7a0d3c6f9b2e5a8d1c4f7b0e3",
- "parentHash": "0x1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b",
- "gasLimit": "0x1c9c380",
- "gasUsed": "0x5208",
- "timestamp": "0x6783a5d0",
- "baseFeePerGas": "0x3b9aca00",
- "transactions": [
- "0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238"
- ]
- }
-}
-```
-
-```json Not Found
-{
- "jsonrpc": "2.0",
- "id": 1,
- "result": null
-}
-```
-
-
-### eth_getBlockReceipts
-
-Returns all transaction receipts for a given block. More efficient than calling `eth_getTransactionReceipt` individually for each transaction.
-
-**Parameters**
-
-
- Block number in hexadecimal, or a block tag: `latest`, `earliest`, `pending`, `safe`, or `finalized`.
-
-
-**Returns**
-
-
- An array of transaction receipt objects for every transaction in the block, or `null` if the block was not found. Each receipt has the same structure as [`eth_getTransactionReceipt`](#eth_gettransactionreceipt).
-
-
-
-```json Request
-{
- "jsonrpc": "2.0",
- "method": "eth_getBlockReceipts",
- "params": ["latest"],
- "id": 1
-}
-```
-
-```json Response
-{
- "jsonrpc": "2.0",
- "id": 1,
- "result": [
- {
- "transactionHash": "0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238",
- "transactionIndex": "0x0",
- "blockHash": "0x3a4e8c5d7f2b1a6e9d0c4f8b3e7a2d5c8f1b4e7a0d3c6f9b2e5a8d1c4f7b0e3",
- "blockNumber": "0x12ced28",
- "from": "0xd3CdA913deB6f4967b2Ef66ae97DE114a83bcc01",
- "to": "0x4200000000000000000000000000000000000006",
- "cumulativeGasUsed": "0x5208",
- "effectiveGasPrice": "0x3b9aca00",
- "gasUsed": "0x5208",
- "contractAddress": null,
- "logs": [],
- "logsBloom": "0x000...",
- "status": "0x1",
- "type": "0x2"
- }
- ]
-}
-```
-
-
-### eth_getBlockTransactionCountByNumber
-
-Returns the number of transactions in a block identified by block number.
-
-**Parameters**
-
-
- Block number in hexadecimal, or a block tag: `latest`, `earliest`, `pending`, `safe`, or `finalized`.
-
-
-**Returns**
-
-
- The number of transactions in the block as a hexadecimal integer, or `null` if no block was found.
-
-
-
-```json Request
-{
- "jsonrpc": "2.0",
- "method": "eth_getBlockTransactionCountByNumber",
- "params": ["latest"],
- "id": 1
-}
-```
-
-```json Response
-{
- "jsonrpc": "2.0",
- "id": 1,
- "result": "0x12"
-}
-```
-
-
-### eth_getBlockTransactionCountByHash
-
-Returns the number of transactions in a block identified by block hash.
-
-**Parameters**
-
-
- The 32-byte hash of the block.
-
-
-**Returns**
-
-
- The number of transactions in the block as a hexadecimal integer, or `null` if no block was found.
-
-
-
-```json Request
-{
- "jsonrpc": "2.0",
- "method": "eth_getBlockTransactionCountByHash",
- "params": [
- "0x3a4e8c5d7f2b1a6e9d0c4f8b3e7a2d5c8f1b4e7a0d3c6f9b2e5a8d1c4f7b0e3"
- ],
- "id": 1
-}
-```
-
-```json Response
-{
- "jsonrpc": "2.0",
- "id": 1,
- "result": "0x12"
-}
-```
-
-
-## Transaction Methods
-
-### eth_getTransactionByHash
-
-Returns transaction information for a given transaction hash.
-
-**Parameters**
-
-
- The 32-byte transaction hash.
-
-
-**Returns**
-
-
- A transaction object, or `null` if no transaction was found.
-
-
-
- 32-byte hash of the transaction.
-
-
- Number of transactions sent by the sender prior to this one.
-
-
- 32-byte hash of the block this transaction is in. `null` if pending.
-
-
- Block number this transaction is in. `null` if pending.
-
-
- Transaction's index position in the block. `null` if pending.
-
-
- 20-byte address of the sender.
-
-
- 20-byte address of the receiver. `null` for contract creation transactions.
-
-
- Value transferred in wei as a hexadecimal.
-
-
- Gas provided by the sender.
-
-
- Gas price in wei. For EIP-1559 transactions, this is the effective gas price paid.
-
-
- Maximum total fee per gas the sender is willing to pay (EIP-1559). Only present for type `0x2` transactions.
-
-
- Maximum priority fee per gas (EIP-1559). Only present for type `0x2` transactions.
-
-
- ABI-encoded call data sent with the transaction. `"0x"` for plain ETH transfers.
-
-
- Transaction type: `"0x0"` (legacy), `"0x1"` (EIP-2930 access list), `"0x2"` (EIP-1559), `"0x7e"` (deposit transaction on Base).
-
-
- Chain ID the transaction is valid for. `"0x2105"` for Base Mainnet, `"0x14a34"` for Base Sepolia.
-
-
- List of addresses and storage keys the transaction accesses (EIP-2930). Only present for type `0x1` and `0x2` transactions.
-
-
- ECDSA recovery ID.
-
-
- 32-byte ECDSA signature component r.
-
-
- 32-byte ECDSA signature component s.
-
-
-
-
-
-```json Request
-{
- "jsonrpc": "2.0",
- "method": "eth_getTransactionByHash",
- "params": [
- "0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238"
- ],
- "id": 1
-}
-```
-
-```json Response
-{
- "jsonrpc": "2.0",
- "id": 1,
- "result": {
- "hash": "0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238",
- "nonce": "0x1b",
- "blockHash": "0x3a4e8c5d7f2b1a6e9d0c4f8b3e7a2d5c8f1b4e7a0d3c6f9b2e5a8d1c4f7b0e3",
- "blockNumber": "0x12ced28",
- "transactionIndex": "0x0",
- "from": "0xd3CdA913deB6f4967b2Ef66ae97DE114a83bcc01",
- "to": "0x4200000000000000000000000000000000000006",
- "value": "0x2c68af0bb14000",
- "gas": "0x5208",
- "gasPrice": "0x3b9aca00",
- "maxFeePerGas": "0x77359400",
- "maxPriorityFeePerGas": "0x3b9aca00",
- "input": "0x",
- "type": "0x2",
- "chainId": "0x2105",
- "accessList": [],
- "v": "0x1",
- "r": "0x1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b",
- "s": "0x2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b3c"
- }
-}
-```
-
-```json Not Found
-{
- "jsonrpc": "2.0",
- "id": 1,
- "result": null
-}
-```
-
-
-### eth_getTransactionByBlockHashAndIndex
-
-Returns transaction information for a given block hash and transaction index position.
-
-**Parameters**
-
-
- The 32-byte hash of the block.
-
-
-
- The transaction's index position in the block as a hexadecimal integer (e.g., `"0x0"` for the first transaction).
-
-
-**Returns**
-
-
- A transaction object with the same fields as [`eth_getTransactionByHash`](#eth_gettransactionbyhash), or `null` if no transaction was found at that position.
-
-
-
-```json Request
-{
- "jsonrpc": "2.0",
- "method": "eth_getTransactionByBlockHashAndIndex",
- "params": [
- "0x3a4e8c5d7f2b1a6e9d0c4f8b3e7a2d5c8f1b4e7a0d3c6f9b2e5a8d1c4f7b0e3",
- "0x0"
- ],
- "id": 1
-}
-```
-
-```json Response
-{
- "jsonrpc": "2.0",
- "id": 1,
- "result": {
- "hash": "0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238",
- "blockNumber": "0x12ced28",
- "transactionIndex": "0x0",
- "from": "0xd3CdA913deB6f4967b2Ef66ae97DE114a83bcc01",
- "to": "0x4200000000000000000000000000000000000006",
- "value": "0x2c68af0bb14000",
- "type": "0x2"
- }
-}
-```
-
-
-### eth_getTransactionByBlockNumberAndIndex
-
-Returns transaction information for a given block number and transaction index position.
-
-**Parameters**
-
-
- Block number in hexadecimal, or a block tag: `latest`, `earliest`, `pending`, `safe`, or `finalized`.
-
-
-
- The transaction's index position in the block as a hexadecimal integer.
-
-
-**Returns**
-
-
- A transaction object with the same fields as [`eth_getTransactionByHash`](#eth_gettransactionbyhash), or `null` if no transaction was found at that position.
-
-
-
-```json Request
-{
- "jsonrpc": "2.0",
- "method": "eth_getTransactionByBlockNumberAndIndex",
- "params": ["latest", "0x0"],
- "id": 1
-}
-```
-
-```json Response
-{
- "jsonrpc": "2.0",
- "id": 1,
- "result": {
- "hash": "0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238",
- "blockNumber": "0x12ced28",
- "transactionIndex": "0x0",
- "from": "0xd3CdA913deB6f4967b2Ef66ae97DE114a83bcc01",
- "to": "0x4200000000000000000000000000000000000006",
- "value": "0x2c68af0bb14000",
- "type": "0x2"
- }
-}
-```
-
-
-### eth_getTransactionReceipt
-
-Returns the receipt for a mined transaction. Receipts are only available after the transaction has been included in a block.
-
-
-For preconfirmed transaction receipts before a block is sealed, use a [Flashblocks-aware endpoint](/base-chain/flashblocks/api-reference#eth_gettransactionreceipt).
-
-
-**Parameters**
-
-
- The 32-byte hash of the transaction.
-
-
-**Returns**
-
-
- A transaction receipt object, or `null` if the transaction is not found or is still pending.
-
-
-
- 32-byte hash of the transaction.
-
-
- Transaction's index position in the block.
-
-
- 32-byte hash of the block this transaction is in.
-
-
- Block number this transaction is in.
-
-
- 20-byte address of the sender.
-
-
- 20-byte address of the receiver. `null` for contract creation transactions.
-
-
- Total gas used in the block at the point this transaction was executed.
-
-
- Actual gas price paid per unit of gas for this transaction.
-
-
- Gas used by this specific transaction.
-
-
- The address of the contract created by this transaction, if it was a contract creation. Otherwise `null`.
-
-
- Array of log objects generated by this transaction.
-
-
- 256-byte bloom filter for the logs of this transaction.
-
-
- `"0x1"` for a successful transaction, `"0x0"` for a failed (reverted) transaction.
-
-
- Transaction type: `"0x0"` (legacy), `"0x1"` (EIP-2930), `"0x2"` (EIP-1559).
-
-
-
-
-
-```json Request
-{
- "jsonrpc": "2.0",
- "method": "eth_getTransactionReceipt",
- "params": [
- "0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238"
- ],
- "id": 1
-}
-```
-
-```json Response
-{
- "jsonrpc": "2.0",
- "id": 1,
- "result": {
- "transactionHash": "0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238",
- "transactionIndex": "0x0",
- "blockHash": "0x3a4e8c5d7f2b1a6e9d0c4f8b3e7a2d5c8f1b4e7a0d3c6f9b2e5a8d1c4f7b0e3",
- "blockNumber": "0x12ced28",
- "from": "0xd3CdA913deB6f4967b2Ef66ae97DE114a83bcc01",
- "to": "0x4200000000000000000000000000000000000006",
- "cumulativeGasUsed": "0x5208",
- "effectiveGasPrice": "0x3b9aca00",
- "gasUsed": "0x5208",
- "contractAddress": null,
- "logs": [],
- "logsBloom": "0x00000000000000000000000000000000...",
- "status": "0x1",
- "type": "0x2"
- }
-}
-```
-
-```json Not Found
-{
- "jsonrpc": "2.0",
- "id": 1,
- "result": null
-}
-```
-
-
-| Code | Message | Description |
-| --- | --- | --- |
-| `-32000` | transaction indexing is in progress | The node is still indexing transactions. Retry after the node has finished syncing. |
-
-### eth_sendRawTransaction
-
-Submits a signed, RLP-encoded transaction to the network for broadcast. The transaction must be signed offline using the sender's private key before calling this method.
-
-**Parameters**
-
-
- The signed transaction data as a hex-encoded RLP-encoded string. Typically generated by a wallet library such as ethers.js, viem, or web3.js.
-
-
-**Returns**
-
-
- The 32-byte transaction hash if the transaction was accepted into the mempool.
-
-
-
-```json Request
-{
- "jsonrpc": "2.0",
- "method": "eth_sendRawTransaction",
- "params": [
- "0x02f86b82210501843b9aca008477359400825208944200000000000000000000000000000000000006872c68af0bb1400080c001a01a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2ba02b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b3c"
- ],
- "id": 1
-}
-```
-
-```json Response
-{
- "jsonrpc": "2.0",
- "id": 1,
- "result": "0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238"
-}
-```
-
-
-| Code | Message | Description |
-| --- | --- | --- |
-| `-32000` | nonce too low | The transaction nonce is lower than the current account nonce |
-| `-32000` | insufficient funds for gas * price + value | The sender's balance cannot cover gas cost and value |
-| `-32000` | already known | An identical transaction is already in the mempool |
-| `-32000` | replacement transaction underpriced | A replacement transaction must pay a higher gas price |
-
-## Gas & Fee Methods
-
-### eth_gasPrice
-
-Returns the current gas price suggested for legacy (type `0x0`) transactions.
-
-**Parameters**
-
-This method takes no parameters.
-
-**Returns**
-
-
- Current gas price in wei as a hexadecimal string.
-
-
-
-```json Request
-{
- "jsonrpc": "2.0",
- "method": "eth_gasPrice",
- "params": [],
- "id": 1
-}
-```
-
-```json Response
-{
- "jsonrpc": "2.0",
- "id": 1,
- "result": "0x3b9aca00"
-}
-```
-
-
-### eth_maxPriorityFeePerGas
-
-Returns the suggested `maxPriorityFeePerGas` (tip) for EIP-1559 transactions. Add this to the current `baseFeePerGas` to derive a `maxFeePerGas`.
-
-**Parameters**
-
-This method takes no parameters.
-
-**Returns**
-
-
- Suggested priority fee per gas in wei as a hexadecimal string.
-
-
-
-```json Request
-{
- "jsonrpc": "2.0",
- "method": "eth_maxPriorityFeePerGas",
- "params": [],
- "id": 1
-}
-```
-
-```json Response
-{
- "jsonrpc": "2.0",
- "id": 1,
- "result": "0x3b9aca00"
-}
-```
-
-
-### eth_feeHistory
-
-Returns historical base fees, gas usage ratios, and priority fee percentiles for a range of blocks. Useful for building accurate EIP-1559 fee estimates.
-
-**Parameters**
-
-
- Number of blocks to include in the history. Must be between 1 and 1024. Can be a decimal integer or a hex string (e.g., `4` or `"0x4"`).
-
-
-
- The newest block in the requested range. Block number in hexadecimal, or a block tag: `latest`, `safe`, or `finalized`.
-
-
-
- Optional. An array of percentile values between 0 and 100. For each block, the node returns the effective priority fee at each percentile from the transactions in that block. For example, `[25, 50, 75]` returns 25th, 50th, and 75th percentile values.
-
-
-**Returns**
-
-
- Fee history data for the requested range.
-
-
-
- Block number of the oldest block in the returned range.
-
-
- Array of base fees per gas for each block in the range, plus one extra entry for the next block after the range. Length is `blockCount + 1`.
-
-
- Array of gas used ratios (values between 0 and 1) for each block in the range.
-
-
- Array of arrays containing the priority fees at each requested percentile for each block. Only present when `rewardPercentiles` is provided.
-
-
-
-
-
-```json Request
-{
- "jsonrpc": "2.0",
- "method": "eth_feeHistory",
- "params": [4, "latest", [25, 75]],
- "id": 1
-}
-```
-
-```json Response
-{
- "jsonrpc": "2.0",
- "id": 1,
- "result": {
- "oldestBlock": "0x12ced25",
- "baseFeePerGas": [
- "0x3b9aca00",
- "0x3b9aca00",
- "0x3b9aca00",
- "0x3b9aca00",
- "0x3b9aca00"
- ],
- "gasUsedRatio": [0.21, 0.45, 0.12, 0.67],
- "reward": [
- ["0x3b9aca00", "0x77359400"],
- ["0x3b9aca00", "0x77359400"],
- ["0x3b9aca00", "0x77359400"],
- ["0x3b9aca00", "0x77359400"]
- ]
- }
-}
-```
-
-
-### eth_estimateGas
-
-Estimates the amount of gas required to execute a transaction. The estimate may be higher than the gas actually used at execution time.
-
-**Parameters**
+---
-
- The transaction object to estimate gas for.
+## Account & State Methods
-
-
- The 20-byte address the transaction is sent from. Optional.
-
-
- The 20-byte destination address. Required for contract calls; omit for contract deployments.
-
-
- Gas limit for the estimate. Optional.
-
-
- Gas price in wei for legacy transactions. Optional.
-
-
- EIP-1559 maximum total fee per gas. Optional.
-
-
- EIP-1559 maximum priority fee per gas. Optional.
-
-
- ETH value to send with the transaction in wei. Optional.
-
-
- ABI-encoded call data. Optional.
-
-
-
+| Method | Description |
+| --- | --- |
+| [eth_blockNumber](/base-chain/reference/rpc-methods/eth_blockNumber) | Returns the most recently mined block number |
+| [eth_getBalance](/base-chain/reference/rpc-methods/eth_getBalance) | Returns the ETH balance of an address |
+| [eth_getTransactionCount](/base-chain/reference/rpc-methods/eth_getTransactionCount) | Returns the transaction count (nonce) of an address |
+| [eth_getCode](/base-chain/reference/rpc-methods/eth_getCode) | Returns the bytecode at a contract address |
+| [eth_getStorageAt](/base-chain/reference/rpc-methods/eth_getStorageAt) | Returns a raw storage slot value at a contract address |
+| [eth_call](/base-chain/reference/rpc-methods/eth_call) | Executes a read-only contract call without broadcasting |
-
- Optional block to estimate against. Defaults to `latest`.
-
+## Block Methods
-**Returns**
+| Method | Description |
+| --- | --- |
+| [eth_getBlockByNumber](/base-chain/reference/rpc-methods/eth_getBlockByNumber) | Returns a block by its number |
+| [eth_getBlockByHash](/base-chain/reference/rpc-methods/eth_getBlockByHash) | Returns a block by its hash |
+| [eth_getBlockReceipts](/base-chain/reference/rpc-methods/eth_getBlockReceipts) | Returns all receipts for a block |
+| [eth_getBlockTransactionCountByNumber](/base-chain/reference/rpc-methods/eth_getBlockTransactionCountByNumber) | Returns the transaction count for a block by number |
+| [eth_getBlockTransactionCountByHash](/base-chain/reference/rpc-methods/eth_getBlockTransactionCountByHash) | Returns the transaction count for a block by hash |
-
- The estimated gas amount as a hexadecimal integer.
-
+## Transaction Methods
-
-```json Request
-{
- "jsonrpc": "2.0",
- "method": "eth_estimateGas",
- "params": [
- {
- "from": "0xd3CdA913deB6f4967b2Ef66ae97DE114a83bcc01",
- "to": "0x4200000000000000000000000000000000000006",
- "value": "0x2c68af0bb14000"
- }
- ],
- "id": 1
-}
-```
+| Method | Description |
+| --- | --- |
+| [eth_getTransactionByHash](/base-chain/reference/rpc-methods/eth_getTransactionByHash) | Returns a transaction by its hash |
+| [eth_getTransactionByBlockHashAndIndex](/base-chain/reference/rpc-methods/eth_getTransactionByBlockHashAndIndex) | Returns a transaction by block hash and index |
+| [eth_getTransactionByBlockNumberAndIndex](/base-chain/reference/rpc-methods/eth_getTransactionByBlockNumberAndIndex) | Returns a transaction by block number and index |
+| [eth_getTransactionReceipt](/base-chain/reference/rpc-methods/eth_getTransactionReceipt) | Returns the receipt for a mined transaction |
+| [eth_sendRawTransaction](/base-chain/reference/rpc-methods/eth_sendRawTransaction) | Submits a signed transaction to the network |
-```json Response
-{
- "jsonrpc": "2.0",
- "id": 1,
- "result": "0x5208"
-}
-```
-
+## Gas & Fee Methods
-| Code | Message | Description |
-| --- | --- | --- |
-| `-32000` | execution reverted | The transaction would revert. The error data may contain a revert reason. |
+| Method | Description |
+| --- | --- |
+| [eth_gasPrice](/base-chain/reference/rpc-methods/eth_gasPrice) | Returns the current suggested gas price |
+| [eth_maxPriorityFeePerGas](/base-chain/reference/rpc-methods/eth_maxPriorityFeePerGas) | Returns the suggested EIP-1559 priority fee |
+| [eth_feeHistory](/base-chain/reference/rpc-methods/eth_feeHistory) | Returns historical base fees and priority fee percentiles |
+| [eth_estimateGas](/base-chain/reference/rpc-methods/eth_estimateGas) | Estimates gas required for a transaction |
## Log Methods
-### eth_getLogs
-
-Returns an array of logs matching the given filter criteria. Particularly useful for indexing on-chain events.
-
-
-Queries spanning large block ranges or high-activity contracts can time out or be rejected. Keep `fromBlock`-to-`toBlock` ranges under 2,000 blocks for reliable results. Node providers may enforce their own limits.
-
-
-**Parameters**
-
-
- The log filter object. At least one filter criterion should be provided.
-
-
-
- Start of the block range. Block number in hexadecimal or a block tag. Defaults to `"latest"`.
-
-
- End of the block range. Block number in hexadecimal or a block tag. Defaults to `"latest"`.
-
-
- A single contract address or array of addresses to filter logs by. Optional.
-
-
- Array of 32-byte topic filters. Each position can be `null` (match any), a single topic hex string, or an array of topic hex strings (match any in the array). Position 0 is typically the `keccak256` hash of the event signature. Optional.
-
-
- A specific block hash to restrict results to that single block only. If provided, `fromBlock` and `toBlock` are ignored. Optional.
-
-
-
-
-**Returns**
-
-
- An array of log objects matching the filter.
-
-
-
- 20-byte address of the contract that emitted the log.
-
-
- Array of 0–4 indexed 32-byte topics. Topic 0 is the event signature hash for named events.
-
-
- ABI-encoded non-indexed event parameters.
-
-
- Block number in which this log was emitted.
-
-
- 32-byte hash of the transaction that emitted this log.
-
-
- Index of the transaction in the block.
-
-
- 32-byte hash of the block.
-
-
- Log's index position within the block.
-
-
- `true` if the log was removed due to a chain reorganization. `false` for valid logs.
-
-
-
-
-
-```json Request
-{
- "jsonrpc": "2.0",
- "method": "eth_getLogs",
- "params": [
- {
- "fromBlock": "0x12ced00",
- "toBlock": "0x12ced28",
- "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
- "topics": [
- "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"
- ]
- }
- ],
- "id": 1
-}
-```
-
-```json Response
-{
- "jsonrpc": "2.0",
- "id": 1,
- "result": [
- {
- "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
- "topics": [
- "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
- "0x000000000000000000000000d3cda913deb6f4967b2ef66ae97de114a83bcc01",
- "0x0000000000000000000000004200000000000000000000000000000000000006"
- ],
- "data": "0x0000000000000000000000000000000000000000000000000000000005f5e100",
- "blockNumber": "0x12ced28",
- "transactionHash": "0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238",
- "transactionIndex": "0x0",
- "blockHash": "0x3a4e8c5d7f2b1a6e9d0c4f8b3e7a2d5c8f1b4e7a0d3c6f9b2e5a8d1c4f7b0e3",
- "logIndex": "0x0",
- "removed": false
- }
- ]
-}
-```
-
+| Method | Description |
+| --- | --- |
+| [eth_getLogs](/base-chain/reference/rpc-methods/eth_getLogs) | Returns logs matching a filter |
## Chain & Network Methods
-### eth_chainId
-
-Returns the chain ID of the current network per [EIP-695](https://eips.ethereum.org/EIPS/eip-695).
-
-**Parameters**
-
-This method takes no parameters.
-
-**Returns**
-
-
- The chain ID as a hexadecimal string. `"0x2105"` (8453) for Base Mainnet, `"0x14a34"` (84532) for Base Sepolia.
-
-
-
-```json Request
-{
- "jsonrpc": "2.0",
- "method": "eth_chainId",
- "params": [],
- "id": 1
-}
-```
-
-```json Response (Base Mainnet)
-{
- "jsonrpc": "2.0",
- "id": 1,
- "result": "0x2105"
-}
-```
-
-```json Response (Base Sepolia)
-{
- "jsonrpc": "2.0",
- "id": 1,
- "result": "0x14a34"
-}
-```
-
-
-### eth_syncing
-
-Returns the synchronization status of the node.
-
-**Parameters**
-
-This method takes no parameters.
-
-**Returns**
-
-
- Returns `false` if the node is fully synced with the network. Returns a sync status object if the node is still catching up.
-
-
-
- Block number where the current sync started.
-
-
- Current block the node has processed.
-
-
- Estimated highest block number on the network.
-
-
-
-
-
-```json Request
-{
- "jsonrpc": "2.0",
- "method": "eth_syncing",
- "params": [],
- "id": 1
-}
-```
-
-```json Response (synced)
-{
- "jsonrpc": "2.0",
- "id": 1,
- "result": false
-}
-```
-
-```json Response (syncing)
-{
- "jsonrpc": "2.0",
- "id": 1,
- "result": {
- "startingBlock": "0x0",
- "currentBlock": "0x12ce000",
- "highestBlock": "0x12ced28"
- }
-}
-```
-
-
-### net_version
-
-Returns the network ID as a decimal string. For Base, this is the same value as the chain ID.
-
-**Parameters**
-
-This method takes no parameters.
-
-**Returns**
-
-
- The network ID as a decimal string (not hex). `"8453"` for Base Mainnet, `"84532"` for Base Sepolia.
-
-
-
-```json Request
-{
- "jsonrpc": "2.0",
- "method": "net_version",
- "params": [],
- "id": 1
-}
-```
-
-```json Response (Base Mainnet)
-{
- "jsonrpc": "2.0",
- "id": 1,
- "result": "8453"
-}
-```
-
-
-### web3_clientVersion
-
-Returns a string identifying the node client software and version.
-
-**Parameters**
-
-This method takes no parameters.
-
-**Returns**
-
-
- A string in the format `///`.
-
-
-
-```json Request
-{
- "jsonrpc": "2.0",
- "method": "web3_clientVersion",
- "params": [],
- "id": 1
-}
-```
-
-```json Response
-{
- "jsonrpc": "2.0",
- "id": 1,
- "result": "op-geth/v1.101411.0/linux-amd64/go1.21.0"
-}
-```
-
+| Method | Description |
+| --- | --- |
+| [eth_chainId](/base-chain/reference/rpc-methods/eth_chainId) | Returns the chain ID of the current network |
+| [eth_syncing](/base-chain/reference/rpc-methods/eth_syncing) | Returns the node's sync status |
+| [net_version](/base-chain/reference/rpc-methods/net_version) | Returns the network ID |
+| [web3_clientVersion](/base-chain/reference/rpc-methods/web3_clientVersion) | Returns the client software version string |
## Debug Methods
@@ -1564,442 +130,40 @@ This method takes no parameters.
Debug methods require a node with debug APIs enabled. Availability and rate limits vary by [node provider](/base-chain/tools/node-providers). These methods replay transactions and are computationally expensive — avoid calling them in hot paths.
-### debug_traceTransaction
-
-Replays a transaction and returns its complete EVM execution trace, including every opcode executed, gas consumed at each step, stack contents, and storage changes.
-
-**Parameters**
-
-
- The 32-byte hash of the transaction to trace.
-
-
-
- Optional tracing configuration.
-
-
-
- If `true`, omits storage capture from struct logs. Reduces response size. Defaults to `false`.
-
-
- If `true`, omits memory capture from struct logs. Reduces response size. Defaults to `false`.
-
-
- If `true`, omits stack capture from struct logs. Defaults to `false`.
-
-
- Name of a built-in tracer. Options: `"callTracer"` (returns a call tree), `"prestateTracer"` (returns the pre-execution state). Omit to use the default struct log tracer.
-
-
- Configuration for the selected tracer. For `callTracer`: `{ "onlyTopCall": true }` skips internal calls.
-
-
- Execution timeout as a Go duration string (e.g., `"10s"`, `"30s"`). Defaults to `"5s"`.
-
-
-
-
-**Returns**
-
-
- The execution trace. Format depends on the `tracer` option selected.
-
-
-
- Total gas provided for the transaction.
-
-
- Whether the transaction failed (reverted).
-
-
- Hex-encoded return value from the transaction execution.
-
-
- Array of struct log entries, one per EVM opcode executed.
-
-
- Program counter position.
- EVM opcode name (e.g., `"PUSH1"`, `"SLOAD"`).
- Remaining gas at this step.
- Gas cost of this opcode.
- Call depth (1 = top-level call).
- EVM stack values at this step.
- EVM memory contents as 32-byte chunks.
- Contract storage changes at this step (slot → value).
-
-
-
-
-
-
- Call type: `"CALL"`, `"STATICCALL"`, `"DELEGATECALL"`, or `"CREATE"`.
-
- Sender address.
- Recipient address.
- ETH value sent with the call.
- Gas provided for the call.
- Gas actually consumed.
- Call data sent.
- Return data from the call.
- Error message if the call reverted. Optional.
- Array of nested call objects for internal calls.
-
-
-
-
-```json Request (default trace)
-{
- "jsonrpc": "2.0",
- "method": "debug_traceTransaction",
- "params": [
- "0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238",
- {}
- ],
- "id": 1
-}
-```
-
-```json Request (callTracer)
-{
- "jsonrpc": "2.0",
- "method": "debug_traceTransaction",
- "params": [
- "0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238",
- { "tracer": "callTracer" }
- ],
- "id": 1
-}
-```
-
-```json Response (default trace)
-{
- "jsonrpc": "2.0",
- "id": 1,
- "result": {
- "gas": 21000,
- "failed": false,
- "returnValue": "",
- "structLogs": [
- {
- "pc": 0,
- "op": "PUSH1",
- "gas": 21000,
- "gasCost": 3,
- "depth": 1,
- "stack": [],
- "memory": [],
- "storage": {}
- }
- ]
- }
-}
-```
-
-```json Response (callTracer)
-{
- "jsonrpc": "2.0",
- "id": 1,
- "result": {
- "type": "CALL",
- "from": "0xd3cda913deb6f4967b2ef66ae97de114a83bcc01",
- "to": "0x4200000000000000000000000000000000000006",
- "value": "0x2c68af0bb14000",
- "gas": "0x5208",
- "gasUsed": "0x5208",
- "input": "0x",
- "output": "0x",
- "calls": []
- }
-}
-```
-
-
-### debug_traceBlockByHash
-
-Replays all transactions in a block identified by its hash and returns an execution trace for each transaction.
-
-**Parameters**
-
-
- The 32-byte hash of the block to trace.
-
-
-
- Optional trace configuration. Accepts the same fields as [`debug_traceTransaction`](#debug_tracetransaction).
-
-
-**Returns**
-
-
- An array of trace result objects, one per transaction in the block.
-
-
-
- The transaction hash.
-
-
- The execution trace for this transaction. Same format as the result of `debug_traceTransaction`.
-
-
-
-
-
-```json Request
-{
- "jsonrpc": "2.0",
- "method": "debug_traceBlockByHash",
- "params": [
- "0x3a4e8c5d7f2b1a6e9d0c4f8b3e7a2d5c8f1b4e7a0d3c6f9b2e5a8d1c4f7b0e3",
- { "tracer": "callTracer" }
- ],
- "id": 1
-}
-```
-
-```json Response
-{
- "jsonrpc": "2.0",
- "id": 1,
- "result": [
- {
- "txHash": "0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238",
- "result": {
- "type": "CALL",
- "from": "0xd3cda913deb6f4967b2ef66ae97de114a83bcc01",
- "to": "0x4200000000000000000000000000000000000006",
- "value": "0x2c68af0bb14000",
- "gas": "0x5208",
- "gasUsed": "0x5208",
- "input": "0x",
- "output": "0x",
- "calls": []
- }
- }
- ]
-}
-```
-
-
-### debug_traceBlockByNumber
-
-Replays all transactions in a block identified by its number and returns an execution trace for each transaction.
-
-**Parameters**
-
-
- Block number in hexadecimal, or a block tag: `latest`, `earliest`, `safe`, or `finalized`.
-
-
-
- Optional trace configuration. Accepts the same fields as [`debug_traceTransaction`](#debug_tracetransaction).
-
-
-**Returns**
-
-
- An array of trace result objects, one per transaction in the block. Same format as [`debug_traceBlockByHash`](#debug_traceblockbyhash).
-
-
-
-```json Request
-{
- "jsonrpc": "2.0",
- "method": "debug_traceBlockByNumber",
- "params": ["latest", { "tracer": "callTracer" }],
- "id": 1
-}
-```
-
-```json Response
-{
- "jsonrpc": "2.0",
- "id": 1,
- "result": [
- {
- "txHash": "0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238",
- "result": {
- "type": "CALL",
- "from": "0xd3cda913deb6f4967b2ef66ae97de114a83bcc01",
- "to": "0x4200000000000000000000000000000000000006",
- "value": "0x2c68af0bb14000",
- "gas": "0x5208",
- "gasUsed": "0x5208",
- "input": "0x",
- "output": "0x",
- "calls": []
- }
- }
- ]
-}
-```
-
+| Method | Description |
+| --- | --- |
+| [debug_traceTransaction](/base-chain/reference/rpc-methods/debug_traceTransaction) | Returns the full EVM execution trace for a transaction |
+| [debug_traceBlockByHash](/base-chain/reference/rpc-methods/debug_traceBlockByHash) | Returns execution traces for all transactions in a block by hash |
+| [debug_traceBlockByNumber](/base-chain/reference/rpc-methods/debug_traceBlockByNumber) | Returns execution traces for all transactions in a block by number |
## WebSocket Methods
WebSocket methods are only available over WebSocket (WSS) connections. All HTTP methods are also available over WebSocket. Connect using your provider's WSS endpoint and send JSON-RPC messages as UTF-8 text frames.
-### eth_subscribe
-
-Creates a real-time subscription to on-chain events. The node pushes event notifications to the client as JSON-RPC messages whenever a matching event occurs, without the client needing to poll.
-
-**Parameters**
-
-
- The event type to subscribe to. See subscription types below.
-
-
-
- Optional filter options. Only applicable for the `logs` subscription type.
-
-
-
- A single contract address or array of addresses to filter logs by. Optional.
-
-
- Array of topic filters in the same format as `eth_getLogs`. Optional.
-
-
-
-
-**Subscription Types**
-
-| Type | Description | Notification payload |
-| ---- | ----------- | -------------------- |
-| `newHeads` | Fires for each new block header appended to the chain | Block header object |
-| `logs` | Fires for each new log matching the filter criteria | Log object |
-| `newPendingTransactions` | Fires for each new pending transaction hash added to the mempool | Transaction hash string |
-
-**Returns**
-
-
- A hex-encoded subscription ID. All subsequent event notifications from this subscription include this ID in `params.subscription`.
-
-
-Event notifications arrive as unsolicited JSON-RPC messages with `method: "eth_subscription"`:
-
-```json
-{
- "jsonrpc": "2.0",
- "method": "eth_subscription",
- "params": {
- "subscription": "0x1887ec8b9589ccad00000000000532da",
- "result": { ... }
- }
-}
-```
-
-**Subscribe to new block headers:**
-
-
-```json Request
-{"jsonrpc": "2.0", "method": "eth_subscribe", "params": ["newHeads"], "id": 1}
-```
-
-```json Response
-{"jsonrpc": "2.0", "id": 1, "result": "0x1887ec8b9589ccad00000000000532da"}
-```
-
-```json Event Notification
-{
- "jsonrpc": "2.0",
- "method": "eth_subscription",
- "params": {
- "subscription": "0x1887ec8b9589ccad00000000000532da",
- "result": {
- "number": "0x12ced29",
- "hash": "0x4b5e8c5d7f2b1a6e9d0c4f8b3e7a2d5c8f1b4e7a0d3c6f9b2e5a8d1c4f7b0e4",
- "parentHash": "0x3a4e8c5d7f2b1a6e9d0c4f8b3e7a2d5c8f1b4e7a0d3c6f9b2e5a8d1c4f7b0e3",
- "gasLimit": "0x1c9c380",
- "gasUsed": "0xa410",
- "timestamp": "0x6783a5d2",
- "baseFeePerGas": "0x3b9aca00"
- }
- }
-}
-```
-
-
-**Subscribe to contract logs:**
-
-
-```json Request
-{
- "jsonrpc": "2.0",
- "method": "eth_subscribe",
- "params": [
- "logs",
- {
- "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
- "topics": [
- "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"
- ]
- }
- ],
- "id": 1
-}
-```
-
-```json Response
-{"jsonrpc": "2.0", "id": 1, "result": "0x2a7bc8d4e3f5a6b1c2d3e4f5a6b7c8d9"}
-```
-
-```json Event Notification
-{
- "jsonrpc": "2.0",
- "method": "eth_subscription",
- "params": {
- "subscription": "0x2a7bc8d4e3f5a6b1c2d3e4f5a6b7c8d9",
- "result": {
- "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
- "topics": [
- "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
- "0x000000000000000000000000d3cda913deb6f4967b2ef66ae97de114a83bcc01",
- "0x0000000000000000000000004200000000000000000000000000000000000006"
- ],
- "data": "0x0000000000000000000000000000000000000000000000000000000005f5e100",
- "blockNumber": "0x12ced29",
- "transactionHash": "0xc903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568239",
- "transactionIndex": "0x0",
- "blockHash": "0x4b5e8c5d7f2b1a6e9d0c4f8b3e7a2d5c8f1b4e7a0d3c6f9b2e5a8d1c4f7b0e4",
- "logIndex": "0x0",
- "removed": false
- }
- }
-}
-```
-
-
-### eth_unsubscribe
+| Method | Description |
+| --- | --- |
+| [eth_subscribe](/base-chain/reference/rpc-methods/eth_subscribe) | Creates a real-time subscription to on-chain events |
+| [eth_unsubscribe](/base-chain/reference/rpc-methods/eth_unsubscribe) | Cancels an active subscription |
-Cancels a subscription created by `eth_subscribe`. After cancellation, no further notifications are sent for that subscription ID.
+---
-**Parameters**
+## Flashblocks Methods
-
- The hex-encoded subscription ID returned by `eth_subscribe`.
-
+These methods are exclusive to [Flashblocks-aware endpoints](/base-chain/flashblocks/apps#rpc-endpoints) (`mainnet-preconf.base.org` / `sepolia-preconf.base.org`). They provide access to preconfirmed block state and real-time Flashblock data streams — not available on standard Base endpoints.
-**Returns**
+See [Flashblocks](/base-chain/flashblocks/apps) for an overview of the Flashblocks system and how to connect.
-
- `true` if the subscription was successfully cancelled. `false` if the subscription ID was not found (e.g., already cancelled or never existed).
-
+### Simulation & Status
-
-```json Request
-{
- "jsonrpc": "2.0",
- "method": "eth_unsubscribe",
- "params": ["0x1887ec8b9589ccad00000000000532da"],
- "id": 1
-}
-```
+| Method | Description |
+| --- | --- |
+| [eth_simulateV1](/base-chain/reference/rpc-methods/eth_simulateV1) | Simulates transaction bundles against preconfirmed Flashblock state |
+| [base_transactionStatus](/base-chain/reference/rpc-methods/base_transactionStatus) | Checks whether a transaction is present in the node's mempool |
-```json Response (success)
-{"jsonrpc": "2.0", "id": 1, "result": true}
-```
+### WebSocket Subscriptions
-```json Response (not found)
-{"jsonrpc": "2.0", "id": 1, "result": false}
-```
-
+| Subscription | Description |
+| --- | --- |
+| [newFlashblockTransactions](/base-chain/reference/rpc-methods/newFlashblockTransactions) | Streams transactions as they are preconfirmed into Flashblocks |
+| [pendingLogs](/base-chain/reference/rpc-methods/pendingLogs) | Streams logs matching a filter as they are preconfirmed |
+| [newFlashblocks](/base-chain/reference/rpc-methods/newFlashblocks) | Streams full block state updates for each new Flashblock |
diff --git a/docs/base-chain/reference/rpc-methods/base_transactionStatus.mdx b/docs/base-chain/reference/rpc-methods/base_transactionStatus.mdx
new file mode 100644
index 000000000..12f7d6f9c
--- /dev/null
+++ b/docs/base-chain/reference/rpc-methods/base_transactionStatus.mdx
@@ -0,0 +1,62 @@
+---
+title: 'base_transactionStatus'
+sidebarTitle: 'base_transactionStatus'
+description: 'Checks whether a specific transaction is present in the node mempool before it appears in a Flashblock.'
+---
+
+Checks whether a specific transaction is present in the node's mempool. Use this to confirm that a submitted transaction has been received before it appears in a Flashblock.
+
+This method is only available on [Flashblocks-aware endpoints](/base-chain/flashblocks/apps#rpc-endpoints). Connect to `https://mainnet-preconf.base.org` (or `https://sepolia-preconf.base.org`) to use it.
+
+
+Requires [base/base](https://github.com/base/base) minimum client version v0.3.0.
+
+
+## Parameters
+
+
+ The 32-byte transaction hash to query.
+
+
+## Returns
+
+
+ Transaction status object.
+
+
+
+ `"Known"` if the transaction is present in the mempool. `"Unknown"` if it has not been seen by this node.
+
+
+
+
+## Example
+
+
+```bash cURL
+curl https://sepolia-preconf.base.org \
+ -X POST \
+ -H "Content-Type: application/json" \
+ -d '{"jsonrpc":"2.0","method":"base_transactionStatus","params":["0x..."],"id":1}'
+```
+
+```json Known
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": {
+ "status": "Known"
+ }
+}
+```
+
+```json Unknown
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": {
+ "status": "Unknown"
+ }
+}
+```
+
diff --git a/docs/base-chain/reference/rpc-methods/debug_traceBlockByHash.mdx b/docs/base-chain/reference/rpc-methods/debug_traceBlockByHash.mdx
new file mode 100644
index 000000000..6c3cf6054
--- /dev/null
+++ b/docs/base-chain/reference/rpc-methods/debug_traceBlockByHash.mdx
@@ -0,0 +1,75 @@
+---
+title: 'debug_traceBlockByHash'
+sidebarTitle: 'debug_traceBlockByHash'
+description: 'Replays all transactions in a block by hash and returns an execution trace for each.'
+---
+
+
+Debug methods require a node with debug APIs enabled. Availability and rate limits vary by [node provider](/base-chain/tools/node-providers). These methods replay transactions and are computationally expensive — avoid calling them in hot paths.
+
+
+Replays all transactions in a block identified by its hash and returns an execution trace for each transaction.
+
+## Parameters
+
+
+ The 32-byte hash of the block to trace.
+
+
+
+ Optional trace configuration. Accepts the same fields as [`debug_traceTransaction`](/base-chain/reference/rpc-methods/debug_traceTransaction).
+
+
+## Returns
+
+
+ An array of trace result objects, one per transaction in the block.
+
+
+
+ The transaction hash.
+
+
+ The execution trace for this transaction. Same format as the result of `debug_traceTransaction`.
+
+
+
+
+## Example
+
+
+```json Request
+{
+ "jsonrpc": "2.0",
+ "method": "debug_traceBlockByHash",
+ "params": [
+ "0x3a4e8c5d7f2b1a6e9d0c4f8b3e7a2d5c8f1b4e7a0d3c6f9b2e5a8d1c4f7b0e3",
+ { "tracer": "callTracer" }
+ ],
+ "id": 1
+}
+```
+
+```json Response
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": [
+ {
+ "txHash": "0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238",
+ "result": {
+ "type": "CALL",
+ "from": "0xd3cda913deb6f4967b2ef66ae97de114a83bcc01",
+ "to": "0x4200000000000000000000000000000000000006",
+ "value": "0x2c68af0bb14000",
+ "gas": "0x5208",
+ "gasUsed": "0x5208",
+ "input": "0x",
+ "output": "0x",
+ "calls": []
+ }
+ }
+ ]
+}
+```
+
diff --git a/docs/base-chain/reference/rpc-methods/debug_traceBlockByNumber.mdx b/docs/base-chain/reference/rpc-methods/debug_traceBlockByNumber.mdx
new file mode 100644
index 000000000..0bc292179
--- /dev/null
+++ b/docs/base-chain/reference/rpc-methods/debug_traceBlockByNumber.mdx
@@ -0,0 +1,63 @@
+---
+title: 'debug_traceBlockByNumber'
+sidebarTitle: 'debug_traceBlockByNumber'
+description: 'Replays all transactions in a block by number and returns an execution trace for each.'
+---
+
+
+Debug methods require a node with debug APIs enabled. Availability and rate limits vary by [node provider](/base-chain/tools/node-providers). These methods replay transactions and are computationally expensive — avoid calling them in hot paths.
+
+
+Replays all transactions in a block identified by its number and returns an execution trace for each transaction.
+
+## Parameters
+
+
+ Block number in hexadecimal, or a block tag: `latest`, `earliest`, `safe`, or `finalized`.
+
+
+
+ Optional trace configuration. Accepts the same fields as [`debug_traceTransaction`](/base-chain/reference/rpc-methods/debug_traceTransaction).
+
+
+## Returns
+
+
+ An array of trace result objects, one per transaction in the block. Same format as [`debug_traceBlockByHash`](/base-chain/reference/rpc-methods/debug_traceBlockByHash).
+
+
+## Example
+
+
+```json Request
+{
+ "jsonrpc": "2.0",
+ "method": "debug_traceBlockByNumber",
+ "params": ["latest", { "tracer": "callTracer" }],
+ "id": 1
+}
+```
+
+```json Response
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": [
+ {
+ "txHash": "0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238",
+ "result": {
+ "type": "CALL",
+ "from": "0xd3cda913deb6f4967b2ef66ae97de114a83bcc01",
+ "to": "0x4200000000000000000000000000000000000006",
+ "value": "0x2c68af0bb14000",
+ "gas": "0x5208",
+ "gasUsed": "0x5208",
+ "input": "0x",
+ "output": "0x",
+ "calls": []
+ }
+ }
+ ]
+}
+```
+
diff --git a/docs/base-chain/reference/rpc-methods/debug_traceTransaction.mdx b/docs/base-chain/reference/rpc-methods/debug_traceTransaction.mdx
new file mode 100644
index 000000000..5a803399b
--- /dev/null
+++ b/docs/base-chain/reference/rpc-methods/debug_traceTransaction.mdx
@@ -0,0 +1,159 @@
+---
+title: 'debug_traceTransaction'
+sidebarTitle: 'debug_traceTransaction'
+description: 'Replays a transaction and returns its complete EVM execution trace.'
+---
+
+
+Debug methods require a node with debug APIs enabled. Availability and rate limits vary by [node provider](/base-chain/tools/node-providers). These methods replay transactions and are computationally expensive — avoid calling them in hot paths.
+
+
+Replays a transaction and returns its complete EVM execution trace, including every opcode executed, gas consumed at each step, stack contents, and storage changes.
+
+## Parameters
+
+
+ The 32-byte hash of the transaction to trace.
+
+
+
+ Optional tracing configuration.
+
+
+
+ If `true`, omits storage capture from struct logs. Reduces response size. Defaults to `false`.
+
+
+ If `true`, omits memory capture from struct logs. Reduces response size. Defaults to `false`.
+
+
+ If `true`, omits stack capture from struct logs. Defaults to `false`.
+
+
+ Name of a built-in tracer. Options: `"callTracer"` (returns a call tree), `"prestateTracer"` (returns the pre-execution state). Omit to use the default struct log tracer.
+
+
+ Configuration for the selected tracer. For `callTracer`: `{ "onlyTopCall": true }` skips internal calls.
+
+
+ Execution timeout as a Go duration string (e.g., `"10s"`, `"30s"`). Defaults to `"5s"`.
+
+
+
+
+## Returns
+
+
+ The execution trace. Format depends on the `tracer` option selected.
+
+
+
+ Total gas provided for the transaction.
+
+
+ Whether the transaction failed (reverted).
+
+
+ Hex-encoded return value from the transaction execution.
+
+
+ Array of struct log entries, one per EVM opcode executed.
+
+
+ Program counter position.
+ EVM opcode name (e.g., `"PUSH1"`, `"SLOAD"`).
+ Remaining gas at this step.
+ Gas cost of this opcode.
+ Call depth (1 = top-level call).
+ EVM stack values at this step.
+ EVM memory contents as 32-byte chunks.
+ Contract storage changes at this step (slot → value).
+
+
+
+
+
+
+ Call type: `"CALL"`, `"STATICCALL"`, `"DELEGATECALL"`, or `"CREATE"`.
+
+ Sender address.
+ Recipient address.
+ ETH value sent with the call.
+ Gas provided for the call.
+ Gas actually consumed.
+ Call data sent.
+ Return data from the call.
+ Error message if the call reverted. Optional.
+ Array of nested call objects for internal calls.
+
+
+
+## Example
+
+
+```json Request (default trace)
+{
+ "jsonrpc": "2.0",
+ "method": "debug_traceTransaction",
+ "params": [
+ "0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238",
+ {}
+ ],
+ "id": 1
+}
+```
+
+```json Request (callTracer)
+{
+ "jsonrpc": "2.0",
+ "method": "debug_traceTransaction",
+ "params": [
+ "0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238",
+ { "tracer": "callTracer" }
+ ],
+ "id": 1
+}
+```
+
+```json Response (default trace)
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": {
+ "gas": 21000,
+ "failed": false,
+ "returnValue": "",
+ "structLogs": [
+ {
+ "pc": 0,
+ "op": "PUSH1",
+ "gas": 21000,
+ "gasCost": 3,
+ "depth": 1,
+ "stack": [],
+ "memory": [],
+ "storage": {}
+ }
+ ]
+ }
+}
+```
+
+```json Response (callTracer)
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": {
+ "type": "CALL",
+ "from": "0xd3cda913deb6f4967b2ef66ae97de114a83bcc01",
+ "to": "0x4200000000000000000000000000000000000006",
+ "value": "0x2c68af0bb14000",
+ "gas": "0x5208",
+ "gasUsed": "0x5208",
+ "input": "0x",
+ "output": "0x",
+ "calls": []
+ }
+}
+```
+
diff --git a/docs/base-chain/reference/rpc-methods/eth_blockNumber.mdx b/docs/base-chain/reference/rpc-methods/eth_blockNumber.mdx
new file mode 100644
index 000000000..3632173e7
--- /dev/null
+++ b/docs/base-chain/reference/rpc-methods/eth_blockNumber.mdx
@@ -0,0 +1,38 @@
+---
+title: 'eth_blockNumber'
+sidebarTitle: 'eth_blockNumber'
+description: 'Returns the number of the most recently mined block.'
+---
+
+Returns the number of the most recently mined block.
+
+## Parameters
+
+No parameters.
+
+## Returns
+
+
+ The current block number as a hexadecimal string.
+
+
+## Example
+
+
+```json Request
+{
+ "jsonrpc": "2.0",
+ "method": "eth_blockNumber",
+ "params": [],
+ "id": 1
+}
+```
+
+```json Response
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": "0x12ced28"
+}
+```
+
diff --git a/docs/base-chain/reference/rpc-methods/eth_call.mdx b/docs/base-chain/reference/rpc-methods/eth_call.mdx
new file mode 100644
index 000000000..ff5f6b2a6
--- /dev/null
+++ b/docs/base-chain/reference/rpc-methods/eth_call.mdx
@@ -0,0 +1,98 @@
+---
+title: 'eth_call'
+sidebarTitle: 'eth_call'
+description: 'Executes a message call against the current chain state without broadcasting a transaction.'
+---
+
+Executes a message call against the current chain state without broadcasting a transaction. No gas is consumed on-chain. Used to read contract state or simulate calls.
+
+## Parameters
+
+
+ The transaction call object.
+
+
+
+ The 20-byte address the call is sent from. Optional; defaults to the zero address.
+
+
+ The 20-byte address of the contract to call.
+
+
+ Hex-encoded integer of gas to provide for the call. Defaults to a high limit if omitted.
+
+
+ Hex-encoded gas price in wei. For legacy transactions. Optional.
+
+
+ EIP-1559 maximum total fee per gas. Optional.
+
+
+ EIP-1559 maximum priority fee per gas. Optional.
+
+
+ Hex-encoded ETH value to send with the call in wei. Optional.
+
+
+ ABI-encoded call data: the 4-byte function selector followed by encoded arguments. Optional.
+
+
+
+
+
+ Block number in hexadecimal, or a block tag: `latest`, `earliest`, `pending`, `safe`, or `finalized`.
+
+
+## Returns
+
+
+ The return value of the executed contract call as a hex-encoded byte array.
+
+
+## Flashblocks Behavior
+
+On a [Flashblocks-aware endpoint](/base-chain/flashblocks/apps#rpc-endpoints), use `"pending"` as the block parameter to query preconfirmed state — data available up to 200ms before the next full block is sealed.
+
+Executes the call against the latest preconfirmed Flashblock state. Use `"pending"` to simulate against the most current chain state, including transactions not yet in a sealed block.
+
+
+```bash cURL (preconfirmed state)
+curl https://mainnet-preconf.base.org \
+ -X POST \
+ -H "Content-Type: application/json" \
+ -d '{"jsonrpc":"2.0","method":"eth_call","params":[{"to":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","data":"0x70a08231000000000000000000000000d3CdA913deB6f4967b2Ef66ae97DE114a83bcc01"},"pending"],"id":1}'
+```
+
+
+## Example
+
+
+```json Request
+{
+ "jsonrpc": "2.0",
+ "method": "eth_call",
+ "params": [
+ {
+ "to": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
+ "data": "0x70a082310000000000000000000000004200000000000000000000000000000000000006"
+ },
+ "latest"
+ ],
+ "id": 1
+}
+```
+
+```json Response
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": "0x0000000000000000000000000000000000000000000000000000000005f5e100"
+}
+```
+
+
+## Errors
+
+| Code | Message | Description |
+| --- | --- | --- |
+| `-32000` | execution reverted | The call reverted. The `data` field in the error object contains the ABI-encoded revert reason when available. |
diff --git a/docs/base-chain/reference/rpc-methods/eth_chainId.mdx b/docs/base-chain/reference/rpc-methods/eth_chainId.mdx
new file mode 100644
index 000000000..f8dd1534e
--- /dev/null
+++ b/docs/base-chain/reference/rpc-methods/eth_chainId.mdx
@@ -0,0 +1,46 @@
+---
+title: 'eth_chainId'
+sidebarTitle: 'eth_chainId'
+description: 'Returns the chain ID of the current network per EIP-695.'
+---
+
+Returns the chain ID of the current network per [EIP-695](https://eips.ethereum.org/EIPS/eip-695).
+
+## Parameters
+
+No parameters.
+
+## Returns
+
+
+ The chain ID as a hexadecimal string. `"0x2105"` (8453) for Base Mainnet, `"0x14a34"` (84532) for Base Sepolia.
+
+
+## Example
+
+
+```json Request
+{
+ "jsonrpc": "2.0",
+ "method": "eth_chainId",
+ "params": [],
+ "id": 1
+}
+```
+
+```json Response (Base Mainnet)
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": "0x2105"
+}
+```
+
+```json Response (Base Sepolia)
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": "0x14a34"
+}
+```
+
diff --git a/docs/base-chain/reference/rpc-methods/eth_estimateGas.mdx b/docs/base-chain/reference/rpc-methods/eth_estimateGas.mdx
new file mode 100644
index 000000000..3ffcb1bbe
--- /dev/null
+++ b/docs/base-chain/reference/rpc-methods/eth_estimateGas.mdx
@@ -0,0 +1,98 @@
+---
+title: 'eth_estimateGas'
+sidebarTitle: 'eth_estimateGas'
+description: 'Estimates the amount of gas required to execute a transaction.'
+---
+
+Estimates the amount of gas required to execute a transaction. The estimate may be higher than the gas actually used at execution time.
+
+## Parameters
+
+
+ The transaction object to estimate gas for.
+
+
+
+ The 20-byte address the transaction is sent from. Optional.
+
+
+ The 20-byte destination address. Required for contract calls; omit for contract deployments.
+
+
+ Gas limit for the estimate. Optional.
+
+
+ Gas price in wei for legacy transactions. Optional.
+
+
+ EIP-1559 maximum total fee per gas. Optional.
+
+
+ EIP-1559 maximum priority fee per gas. Optional.
+
+
+ ETH value to send with the transaction in wei. Optional.
+
+
+ ABI-encoded call data. Optional.
+
+
+
+
+
+ Optional block to estimate against. Defaults to `latest`.
+
+
+## Returns
+
+
+ The estimated gas amount as a hexadecimal integer.
+
+
+## Flashblocks Behavior
+
+On a [Flashblocks-aware endpoint](/base-chain/flashblocks/apps#rpc-endpoints), use `"pending"` as the block parameter to query preconfirmed state — data available up to 200ms before the next full block is sealed.
+
+Estimates gas against the latest preconfirmed Flashblock state. Use `"pending"` to get an estimate based on the most current state, reducing the chance of reverts due to stale state.
+
+
+```bash cURL (preconfirmed state)
+curl https://mainnet-preconf.base.org \
+ -X POST \
+ -H "Content-Type: application/json" \
+ -d '{"jsonrpc":"2.0","method":"eth_estimateGas","params":[{"from":"0xd3CdA913deB6f4967b2Ef66ae97DE114a83bcc01","to":"0x4200000000000000000000000000000000000006","value":"0x2c68af0bb14000"},"pending"],"id":1}'
+```
+
+
+## Example
+
+
+```json Request
+{
+ "jsonrpc": "2.0",
+ "method": "eth_estimateGas",
+ "params": [
+ {
+ "from": "0xd3CdA913deB6f4967b2Ef66ae97DE114a83bcc01",
+ "to": "0x4200000000000000000000000000000000000006",
+ "value": "0x2c68af0bb14000"
+ }
+ ],
+ "id": 1
+}
+```
+
+```json Response
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": "0x5208"
+}
+```
+
+
+## Errors
+
+| Code | Message | Description |
+| --- | --- | --- |
+| `-32000` | execution reverted | The transaction would revert. The error data may contain a revert reason. |
diff --git a/docs/base-chain/reference/rpc-methods/eth_feeHistory.mdx b/docs/base-chain/reference/rpc-methods/eth_feeHistory.mdx
new file mode 100644
index 000000000..d2da9a30d
--- /dev/null
+++ b/docs/base-chain/reference/rpc-methods/eth_feeHistory.mdx
@@ -0,0 +1,79 @@
+---
+title: 'eth_feeHistory'
+sidebarTitle: 'eth_feeHistory'
+description: 'Returns historical base fees, gas usage ratios, and priority fee percentiles for a range of blocks.'
+---
+
+Returns historical base fees, gas usage ratios, and priority fee percentiles for a range of blocks. Useful for building accurate EIP-1559 fee estimates.
+
+## Parameters
+
+
+ Number of blocks to include in the history. Must be between 1 and 1024. Can be a decimal integer or a hex string (e.g., `4` or `"0x4"`).
+
+
+
+ The newest block in the requested range. Block number in hexadecimal, or a block tag: `latest`, `safe`, or `finalized`.
+
+
+
+ Optional. An array of percentile values between 0 and 100. For each block, the node returns the effective priority fee at each percentile from the transactions in that block. For example, `[25, 50, 75]` returns 25th, 50th, and 75th percentile values.
+
+
+## Returns
+
+
+ Fee history data for the requested range.
+
+
+
+ Block number of the oldest block in the returned range.
+
+
+ Array of base fees per gas for each block in the range, plus one extra entry for the next block after the range. Length is `blockCount + 1`.
+
+
+ Array of gas used ratios (values between 0 and 1) for each block in the range.
+
+
+ Array of arrays containing the priority fees at each requested percentile for each block. Only present when `rewardPercentiles` is provided.
+
+
+
+
+## Example
+
+
+```json Request
+{
+ "jsonrpc": "2.0",
+ "method": "eth_feeHistory",
+ "params": [4, "latest", [25, 75]],
+ "id": 1
+}
+```
+
+```json Response
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": {
+ "oldestBlock": "0x12ced25",
+ "baseFeePerGas": [
+ "0x3b9aca00",
+ "0x3b9aca00",
+ "0x3b9aca00",
+ "0x3b9aca00",
+ "0x3b9aca00"
+ ],
+ "gasUsedRatio": [0.21, 0.45, 0.12, 0.67],
+ "reward": [
+ ["0x3b9aca00", "0x77359400"],
+ ["0x3b9aca00", "0x77359400"],
+ ["0x3b9aca00", "0x77359400"],
+ ["0x3b9aca00", "0x77359400"]
+ ]
+ }
+}
+```
+
diff --git a/docs/base-chain/reference/rpc-methods/eth_gasPrice.mdx b/docs/base-chain/reference/rpc-methods/eth_gasPrice.mdx
new file mode 100644
index 000000000..6ff1f9d2c
--- /dev/null
+++ b/docs/base-chain/reference/rpc-methods/eth_gasPrice.mdx
@@ -0,0 +1,38 @@
+---
+title: 'eth_gasPrice'
+sidebarTitle: 'eth_gasPrice'
+description: 'Returns the current gas price suggested for legacy (type 0x0) transactions.'
+---
+
+Returns the current gas price suggested for legacy (type `0x0`) transactions.
+
+## Parameters
+
+No parameters.
+
+## Returns
+
+
+ Current gas price in wei as a hexadecimal string.
+
+
+## Example
+
+
+```json Request
+{
+ "jsonrpc": "2.0",
+ "method": "eth_gasPrice",
+ "params": [],
+ "id": 1
+}
+```
+
+```json Response
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": "0x3b9aca00"
+}
+```
+
diff --git a/docs/base-chain/reference/rpc-methods/eth_getBalance.mdx b/docs/base-chain/reference/rpc-methods/eth_getBalance.mdx
new file mode 100644
index 000000000..617e48125
--- /dev/null
+++ b/docs/base-chain/reference/rpc-methods/eth_getBalance.mdx
@@ -0,0 +1,62 @@
+---
+title: 'eth_getBalance'
+sidebarTitle: 'eth_getBalance'
+description: 'Returns the ETH balance of a given address at a specified block.'
+---
+
+Returns the ETH balance of a given address at a specified block.
+
+## Parameters
+
+
+ The 20-byte address to check the balance for.
+
+
+
+ Block number in hexadecimal, or a block tag: `latest`, `earliest`, `pending`, `safe`, or `finalized`.
+
+
+## Returns
+
+
+ The account balance in wei as a hexadecimal string.
+
+
+## Flashblocks Behavior
+
+On a [Flashblocks-aware endpoint](/base-chain/flashblocks/apps#rpc-endpoints), use `"pending"` as the block parameter to query preconfirmed state — data available up to 200ms before the next full block is sealed.
+
+Returns the account balance in the latest preconfirmed Flashblock state, reflecting balances from transactions not yet in a sealed block.
+
+
+```bash cURL (preconfirmed state)
+curl https://mainnet-preconf.base.org \
+ -X POST \
+ -H "Content-Type: application/json" \
+ -d '{"jsonrpc":"2.0","method":"eth_getBalance","params":["0xd3CdA913deB6f4967b2Ef66ae97DE114a83bcc01","pending"],"id":1}'
+```
+
+
+## Example
+
+
+```json Request
+{
+ "jsonrpc": "2.0",
+ "method": "eth_getBalance",
+ "params": [
+ "0x4200000000000000000000000000000000000006",
+ "latest"
+ ],
+ "id": 1
+}
+```
+
+```json Response
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": "0x2c68af0bb14000"
+}
+```
+
diff --git a/docs/base-chain/reference/rpc-methods/eth_getBlockByHash.mdx b/docs/base-chain/reference/rpc-methods/eth_getBlockByHash.mdx
new file mode 100644
index 000000000..ef7659889
--- /dev/null
+++ b/docs/base-chain/reference/rpc-methods/eth_getBlockByHash.mdx
@@ -0,0 +1,66 @@
+---
+title: 'eth_getBlockByHash'
+sidebarTitle: 'eth_getBlockByHash'
+description: 'Returns information about a block by its hash.'
+---
+
+Returns information about a block by its hash.
+
+## Parameters
+
+
+ The 32-byte hash of the block.
+
+
+
+ If `true`, returns full transaction objects. If `false`, returns only transaction hashes.
+
+
+## Returns
+
+
+ A block object with the same fields as [`eth_getBlockByNumber`](/base-chain/reference/rpc-methods/eth_getBlockByNumber), or `null` if no block was found.
+
+
+## Example
+
+
+```json Request
+{
+ "jsonrpc": "2.0",
+ "method": "eth_getBlockByHash",
+ "params": [
+ "0x3a4e8c5d7f2b1a6e9d0c4f8b3e7a2d5c8f1b4e7a0d3c6f9b2e5a8d1c4f7b0e3",
+ false
+ ],
+ "id": 1
+}
+```
+
+```json Response
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": {
+ "number": "0x12ced28",
+ "hash": "0x3a4e8c5d7f2b1a6e9d0c4f8b3e7a2d5c8f1b4e7a0d3c6f9b2e5a8d1c4f7b0e3",
+ "parentHash": "0x1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b",
+ "gasLimit": "0x1c9c380",
+ "gasUsed": "0x5208",
+ "timestamp": "0x6783a5d0",
+ "baseFeePerGas": "0x3b9aca00",
+ "transactions": [
+ "0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238"
+ ]
+ }
+}
+```
+
+```json Not Found
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": null
+}
+```
+
diff --git a/docs/base-chain/reference/rpc-methods/eth_getBlockByNumber.mdx b/docs/base-chain/reference/rpc-methods/eth_getBlockByNumber.mdx
new file mode 100644
index 000000000..9ea451966
--- /dev/null
+++ b/docs/base-chain/reference/rpc-methods/eth_getBlockByNumber.mdx
@@ -0,0 +1,161 @@
+---
+title: 'eth_getBlockByNumber'
+sidebarTitle: 'eth_getBlockByNumber'
+description: 'Returns information about a block by its block number.'
+---
+
+Returns information about a block by its block number.
+
+## Parameters
+
+
+ Block number in hexadecimal, or a block tag: `latest`, `earliest`, `pending`, `safe`, or `finalized`.
+
+
+
+ If `true`, returns full transaction objects in the `transactions` array. If `false`, returns only transaction hashes.
+
+
+## Returns
+
+
+ A block object, or `null` if no block was found.
+
+
+
+ Block number as a hex string. `null` when the block is pending.
+
+
+ 32-byte hash of the block. `null` when the block is pending.
+
+
+ 32-byte hash of the parent block.
+
+
+ 8-byte proof-of-work nonce. Always `"0x0000000000000000"` on Base (proof-of-stake).
+
+
+ 32-byte SHA3 hash of the uncles data in the block. Always the empty-uncle-list hash on Base.
+
+
+ 256-byte bloom filter for the logs of the block.
+
+
+ 32-byte root of the transaction trie.
+
+
+ 32-byte root of the final state trie.
+
+
+ 32-byte root of the receipts trie.
+
+
+ 20-byte address of the fee recipient (block proposer on Base).
+
+
+ Block difficulty. Always `"0x0"` on Base (proof-of-stake).
+
+
+ Total chain difficulty. Always `"0x0"` on Base (proof-of-stake).
+
+
+ Hex-encoded extra data field of the block.
+
+
+ Integer size of the block in bytes as a hexadecimal.
+
+
+ Maximum gas allowed in this block.
+
+
+ Total gas used by all transactions in this block.
+
+
+ Unix timestamp of when the block was collated.
+
+
+ Array of transaction hashes (when `fullTransactions` is `false`) or full transaction objects (when `true`).
+
+
+ Array of uncle block hashes. Always `[]` on Base.
+
+
+ Base fee per gas in this block (EIP-1559).
+
+
+ Array of validator withdrawals included in the block (EIP-4895).
+
+
+ 32-byte root of the withdrawals trie (EIP-4895).
+
+
+
+
+## Flashblocks Behavior
+
+On a [Flashblocks-aware endpoint](/base-chain/flashblocks/apps#rpc-endpoints), use `"pending"` as the block parameter to query preconfirmed state — data available up to 200ms before the next full block is sealed.
+
+When called with `"pending"`, returns the current Flashblock — the block actively being built with preconfirmed transactions, sealed approximately every 200ms.
+
+
+```bash cURL (preconfirmed state)
+curl https://mainnet-preconf.base.org \
+ -X POST \
+ -H "Content-Type: application/json" \
+ -d '{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["pending",false],"id":1}'
+```
+
+
+## Example
+
+
+```json Request
+{
+ "jsonrpc": "2.0",
+ "method": "eth_getBlockByNumber",
+ "params": ["latest", false],
+ "id": 1
+}
+```
+
+```json Response
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": {
+ "number": "0x12ced28",
+ "hash": "0x3a4e8c5d7f2b1a6e9d0c4f8b3e7a2d5c8f1b4e7a0d3c6f9b2e5a8d1c4f7b0e3",
+ "parentHash": "0x1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b",
+ "nonce": "0x0000000000000000",
+ "sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "logsBloom": "0x00000000000000000000000000000000...",
+ "transactionsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "stateRoot": "0x3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e2f3a4b",
+ "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "miner": "0x4200000000000000000000000000000000000011",
+ "difficulty": "0x0",
+ "totalDifficulty": "0x0",
+ "extraData": "0x",
+ "size": "0x220",
+ "gasLimit": "0x1c9c380",
+ "gasUsed": "0x5208",
+ "timestamp": "0x6783a5d0",
+ "transactions": [
+ "0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238"
+ ],
+ "uncles": [],
+ "baseFeePerGas": "0x3b9aca00",
+ "withdrawals": [],
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"
+ }
+}
+```
+
+```json Not Found
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": null
+}
+```
+
diff --git a/docs/base-chain/reference/rpc-methods/eth_getBlockReceipts.mdx b/docs/base-chain/reference/rpc-methods/eth_getBlockReceipts.mdx
new file mode 100644
index 000000000..88426d952
--- /dev/null
+++ b/docs/base-chain/reference/rpc-methods/eth_getBlockReceipts.mdx
@@ -0,0 +1,57 @@
+---
+title: 'eth_getBlockReceipts'
+sidebarTitle: 'eth_getBlockReceipts'
+description: 'Returns all transaction receipts for a given block.'
+---
+
+Returns all transaction receipts for a given block. More efficient than calling `eth_getTransactionReceipt` individually for each transaction.
+
+## Parameters
+
+
+ Block number in hexadecimal, or a block tag: `latest`, `earliest`, `pending`, `safe`, or `finalized`.
+
+
+## Returns
+
+
+ An array of transaction receipt objects for every transaction in the block, or `null` if the block was not found. Each receipt has the same structure as [`eth_getTransactionReceipt`](/base-chain/reference/json-rpc-api#eth_gettransactionreceipt).
+
+
+## Example
+
+
+```json Request
+{
+ "jsonrpc": "2.0",
+ "method": "eth_getBlockReceipts",
+ "params": ["latest"],
+ "id": 1
+}
+```
+
+```json Response
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": [
+ {
+ "transactionHash": "0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238",
+ "transactionIndex": "0x0",
+ "blockHash": "0x3a4e8c5d7f2b1a6e9d0c4f8b3e7a2d5c8f1b4e7a0d3c6f9b2e5a8d1c4f7b0e3",
+ "blockNumber": "0x12ced28",
+ "from": "0xd3CdA913deB6f4967b2Ef66ae97DE114a83bcc01",
+ "to": "0x4200000000000000000000000000000000000006",
+ "cumulativeGasUsed": "0x5208",
+ "effectiveGasPrice": "0x3b9aca00",
+ "gasUsed": "0x5208",
+ "contractAddress": null,
+ "logs": [],
+ "logsBloom": "0x000...",
+ "status": "0x1",
+ "type": "0x2"
+ }
+ ]
+}
+```
+
diff --git a/docs/base-chain/reference/rpc-methods/eth_getBlockTransactionCountByHash.mdx b/docs/base-chain/reference/rpc-methods/eth_getBlockTransactionCountByHash.mdx
new file mode 100644
index 000000000..f98d7ae7d
--- /dev/null
+++ b/docs/base-chain/reference/rpc-methods/eth_getBlockTransactionCountByHash.mdx
@@ -0,0 +1,42 @@
+---
+title: 'eth_getBlockTransactionCountByHash'
+sidebarTitle: 'eth_getBlockTransactionCountByHash'
+description: 'Returns the number of transactions in a block identified by block hash.'
+---
+
+Returns the number of transactions in a block identified by block hash.
+
+## Parameters
+
+
+ The 32-byte hash of the block.
+
+
+## Returns
+
+
+ The number of transactions in the block as a hexadecimal integer, or `null` if no block was found.
+
+
+## Example
+
+
+```json Request
+{
+ "jsonrpc": "2.0",
+ "method": "eth_getBlockTransactionCountByHash",
+ "params": [
+ "0x3a4e8c5d7f2b1a6e9d0c4f8b3e7a2d5c8f1b4e7a0d3c6f9b2e5a8d1c4f7b0e3"
+ ],
+ "id": 1
+}
+```
+
+```json Response
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": "0x12"
+}
+```
+
diff --git a/docs/base-chain/reference/rpc-methods/eth_getBlockTransactionCountByNumber.mdx b/docs/base-chain/reference/rpc-methods/eth_getBlockTransactionCountByNumber.mdx
new file mode 100644
index 000000000..b4fdbef35
--- /dev/null
+++ b/docs/base-chain/reference/rpc-methods/eth_getBlockTransactionCountByNumber.mdx
@@ -0,0 +1,40 @@
+---
+title: 'eth_getBlockTransactionCountByNumber'
+sidebarTitle: 'eth_getBlockTransactionCountByNumber'
+description: 'Returns the number of transactions in a block identified by block number.'
+---
+
+Returns the number of transactions in a block identified by block number.
+
+## Parameters
+
+
+ Block number in hexadecimal, or a block tag: `latest`, `earliest`, `pending`, `safe`, or `finalized`.
+
+
+## Returns
+
+
+ The number of transactions in the block as a hexadecimal integer, or `null` if no block was found.
+
+
+## Example
+
+
+```json Request
+{
+ "jsonrpc": "2.0",
+ "method": "eth_getBlockTransactionCountByNumber",
+ "params": ["latest"],
+ "id": 1
+}
+```
+
+```json Response
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": "0x12"
+}
+```
+
diff --git a/docs/base-chain/reference/rpc-methods/eth_getCode.mdx b/docs/base-chain/reference/rpc-methods/eth_getCode.mdx
new file mode 100644
index 000000000..f41aec6b7
--- /dev/null
+++ b/docs/base-chain/reference/rpc-methods/eth_getCode.mdx
@@ -0,0 +1,47 @@
+---
+title: 'eth_getCode'
+sidebarTitle: 'eth_getCode'
+description: 'Returns the compiled bytecode stored at a given contract address.'
+---
+
+Returns the compiled bytecode stored at a given contract address. Returns `"0x"` for externally owned accounts (EOAs).
+
+## Parameters
+
+
+ The 20-byte address (typically a smart contract).
+
+
+
+ Block number in hexadecimal, or a block tag: `latest`, `earliest`, `pending`, `safe`, or `finalized`.
+
+
+## Returns
+
+
+ The bytecode at the address as a hex string. Returns `"0x"` if there is no code (EOA or self-destructed contract).
+
+
+## Example
+
+
+```json Request
+{
+ "jsonrpc": "2.0",
+ "method": "eth_getCode",
+ "params": [
+ "0x4200000000000000000000000000000000000006",
+ "latest"
+ ],
+ "id": 1
+}
+```
+
+```json Response
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": "0x6080604052348015600f57600080fd5b506004361060285760003560e01c8063..."
+}
+```
+
diff --git a/docs/base-chain/reference/rpc-methods/eth_getLogs.mdx b/docs/base-chain/reference/rpc-methods/eth_getLogs.mdx
new file mode 100644
index 000000000..399ae375c
--- /dev/null
+++ b/docs/base-chain/reference/rpc-methods/eth_getLogs.mdx
@@ -0,0 +1,132 @@
+---
+title: 'eth_getLogs'
+sidebarTitle: 'eth_getLogs'
+description: 'Returns an array of logs matching the given filter criteria.'
+---
+
+Returns an array of logs matching the given filter criteria. Particularly useful for indexing on-chain events.
+
+
+Queries spanning large block ranges or high-activity contracts can time out or be rejected. Keep `fromBlock`-to-`toBlock` ranges under 2,000 blocks for reliable results. Node providers may enforce their own limits.
+
+
+## Parameters
+
+
+ The log filter object. At least one filter criterion should be provided.
+
+
+
+ Start of the block range. Block number in hexadecimal or a block tag. Defaults to `"latest"`.
+
+
+ End of the block range. Block number in hexadecimal or a block tag. Defaults to `"latest"`.
+
+
+ A single contract address or array of addresses to filter logs by. Optional.
+
+
+ Array of 32-byte topic filters. Each position can be `null` (match any), a single topic hex string, or an array of topic hex strings (match any in the array). Position 0 is typically the `keccak256` hash of the event signature. Optional.
+
+
+ A specific block hash to restrict results to that single block only. If provided, `fromBlock` and `toBlock` are ignored. Optional.
+
+
+
+
+## Returns
+
+
+ An array of log objects matching the filter.
+
+
+
+ 20-byte address of the contract that emitted the log.
+
+
+ Array of 0–4 indexed 32-byte topics. Topic 0 is the event signature hash for named events.
+
+
+ ABI-encoded non-indexed event parameters.
+
+
+ Block number in which this log was emitted.
+
+
+ 32-byte hash of the transaction that emitted this log.
+
+
+ Index of the transaction in the block.
+
+
+ 32-byte hash of the block.
+
+
+ Log's index position within the block.
+
+
+ `true` if the log was removed due to a chain reorganization. `false` for valid logs.
+
+
+
+
+## Flashblocks Behavior
+
+On a [Flashblocks-aware endpoint](/base-chain/flashblocks/apps#rpc-endpoints), use `"pending"` as the block parameter to query preconfirmed state — data available up to 200ms before the next full block is sealed.
+
+Set `toBlock` to `"pending"` to include logs from preconfirmed Flashblock transactions. Useful for monitoring contract events with sub-block latency.
+
+
+```bash cURL (preconfirmed state)
+curl https://mainnet-preconf.base.org \
+ -X POST \
+ -H "Content-Type: application/json" \
+ -d '{"jsonrpc":"2.0","method":"eth_getLogs","params":[{"fromBlock":"latest","toBlock":"pending","address":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"]}],"id":1}'
+```
+
+
+## Example
+
+
+```json Request
+{
+ "jsonrpc": "2.0",
+ "method": "eth_getLogs",
+ "params": [
+ {
+ "fromBlock": "0x12ced00",
+ "toBlock": "0x12ced28",
+ "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
+ "topics": [
+ "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"
+ ]
+ }
+ ],
+ "id": 1
+}
+```
+
+```json Response
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": [
+ {
+ "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
+ "topics": [
+ "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
+ "0x000000000000000000000000d3cda913deb6f4967b2ef66ae97de114a83bcc01",
+ "0x0000000000000000000000004200000000000000000000000000000000000006"
+ ],
+ "data": "0x0000000000000000000000000000000000000000000000000000000005f5e100",
+ "blockNumber": "0x12ced28",
+ "transactionHash": "0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238",
+ "transactionIndex": "0x0",
+ "blockHash": "0x3a4e8c5d7f2b1a6e9d0c4f8b3e7a2d5c8f1b4e7a0d3c6f9b2e5a8d1c4f7b0e3",
+ "logIndex": "0x0",
+ "removed": false
+ }
+ ]
+}
+```
+
diff --git a/docs/base-chain/reference/rpc-methods/eth_getStorageAt.mdx b/docs/base-chain/reference/rpc-methods/eth_getStorageAt.mdx
new file mode 100644
index 000000000..42645ce5d
--- /dev/null
+++ b/docs/base-chain/reference/rpc-methods/eth_getStorageAt.mdx
@@ -0,0 +1,52 @@
+---
+title: 'eth_getStorageAt'
+sidebarTitle: 'eth_getStorageAt'
+description: 'Returns the raw value stored at a specific storage slot of a contract address.'
+---
+
+Returns the raw value stored at a specific storage slot of a contract address.
+
+## Parameters
+
+
+ The 20-byte contract address.
+
+
+
+ The hex-encoded integer position of the storage slot (e.g., `"0x0"` for slot 0).
+
+
+
+ Block number in hexadecimal, or a block tag: `latest`, `earliest`, `pending`, `safe`, or `finalized`.
+
+
+## Returns
+
+
+ The 32-byte value stored at the given storage position as a hex string.
+
+
+## Example
+
+
+```json Request
+{
+ "jsonrpc": "2.0",
+ "method": "eth_getStorageAt",
+ "params": [
+ "0x4200000000000000000000000000000000000006",
+ "0x0",
+ "latest"
+ ],
+ "id": 1
+}
+```
+
+```json Response
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": "0x0000000000000000000000000000000000000000000000000000000000000000"
+}
+```
+
diff --git a/docs/base-chain/reference/rpc-methods/eth_getTransactionByBlockHashAndIndex.mdx b/docs/base-chain/reference/rpc-methods/eth_getTransactionByBlockHashAndIndex.mdx
new file mode 100644
index 000000000..e6198e357
--- /dev/null
+++ b/docs/base-chain/reference/rpc-methods/eth_getTransactionByBlockHashAndIndex.mdx
@@ -0,0 +1,55 @@
+---
+title: 'eth_getTransactionByBlockHashAndIndex'
+sidebarTitle: 'eth_getTransactionByBlockHashAndIndex'
+description: 'Returns transaction information for a given block hash and transaction index position.'
+---
+
+Returns transaction information for a given block hash and transaction index position.
+
+## Parameters
+
+
+ The 32-byte hash of the block.
+
+
+
+ The transaction's index position in the block as a hexadecimal integer (e.g., `"0x0"` for the first transaction).
+
+
+## Returns
+
+
+ A transaction object with the same fields as [`eth_getTransactionByHash`](/base-chain/reference/rpc-methods/eth_getTransactionByHash), or `null` if no transaction was found at that position.
+
+
+## Example
+
+
+```json Request
+{
+ "jsonrpc": "2.0",
+ "method": "eth_getTransactionByBlockHashAndIndex",
+ "params": [
+ "0x3a4e8c5d7f2b1a6e9d0c4f8b3e7a2d5c8f1b4e7a0d3c6f9b2e5a8d1c4f7b0e3",
+ "0x0"
+ ],
+ "id": 1
+}
+```
+
+```json Response
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": {
+ "hash": "0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238",
+ "blockNumber": "0x12ced28",
+ "transactionIndex": "0x0",
+ "from": "0xd3CdA913deB6f4967b2Ef66ae97DE114a83bcc01",
+ "to": "0x4200000000000000000000000000000000000006",
+ "value": "0x2c68af0bb14000",
+ "type": "0x2"
+ }
+}
+```
+
diff --git a/docs/base-chain/reference/rpc-methods/eth_getTransactionByBlockNumberAndIndex.mdx b/docs/base-chain/reference/rpc-methods/eth_getTransactionByBlockNumberAndIndex.mdx
new file mode 100644
index 000000000..9067f4681
--- /dev/null
+++ b/docs/base-chain/reference/rpc-methods/eth_getTransactionByBlockNumberAndIndex.mdx
@@ -0,0 +1,52 @@
+---
+title: 'eth_getTransactionByBlockNumberAndIndex'
+sidebarTitle: 'eth_getTransactionByBlockNumberAndIndex'
+description: 'Returns transaction information for a given block number and transaction index position.'
+---
+
+Returns transaction information for a given block number and transaction index position.
+
+## Parameters
+
+
+ Block number in hexadecimal, or a block tag: `latest`, `earliest`, `pending`, `safe`, or `finalized`.
+
+
+
+ The transaction's index position in the block as a hexadecimal integer.
+
+
+## Returns
+
+
+ A transaction object with the same fields as [`eth_getTransactionByHash`](/base-chain/reference/rpc-methods/eth_getTransactionByHash), or `null` if no transaction was found at that position.
+
+
+## Example
+
+
+```json Request
+{
+ "jsonrpc": "2.0",
+ "method": "eth_getTransactionByBlockNumberAndIndex",
+ "params": ["latest", "0x0"],
+ "id": 1
+}
+```
+
+```json Response
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": {
+ "hash": "0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238",
+ "blockNumber": "0x12ced28",
+ "transactionIndex": "0x0",
+ "from": "0xd3CdA913deB6f4967b2Ef66ae97DE114a83bcc01",
+ "to": "0x4200000000000000000000000000000000000006",
+ "value": "0x2c68af0bb14000",
+ "type": "0x2"
+ }
+}
+```
+
diff --git a/docs/base-chain/reference/rpc-methods/eth_getTransactionByHash.mdx b/docs/base-chain/reference/rpc-methods/eth_getTransactionByHash.mdx
new file mode 100644
index 000000000..4f1f40e93
--- /dev/null
+++ b/docs/base-chain/reference/rpc-methods/eth_getTransactionByHash.mdx
@@ -0,0 +1,145 @@
+---
+title: 'eth_getTransactionByHash'
+sidebarTitle: 'eth_getTransactionByHash'
+description: 'Returns transaction information for a given transaction hash.'
+---
+
+Returns transaction information for a given transaction hash.
+
+## Parameters
+
+
+ The 32-byte transaction hash.
+
+
+## Returns
+
+
+ A transaction object, or `null` if no transaction was found.
+
+
+
+ 32-byte hash of the transaction.
+
+
+ Number of transactions sent by the sender prior to this one.
+
+
+ 32-byte hash of the block this transaction is in. `null` if pending.
+
+
+ Block number this transaction is in. `null` if pending.
+
+
+ Transaction's index position in the block. `null` if pending.
+
+
+ 20-byte address of the sender.
+
+
+ 20-byte address of the receiver. `null` for contract creation transactions.
+
+
+ Value transferred in wei as a hexadecimal.
+
+
+ Gas provided by the sender.
+
+
+ Gas price in wei. For EIP-1559 transactions, this is the effective gas price paid.
+
+
+ Maximum total fee per gas the sender is willing to pay (EIP-1559). Only present for type `0x2` transactions.
+
+
+ Maximum priority fee per gas (EIP-1559). Only present for type `0x2` transactions.
+
+
+ ABI-encoded call data sent with the transaction. `"0x"` for plain ETH transfers.
+
+
+ Transaction type: `"0x0"` (legacy), `"0x1"` (EIP-2930 access list), `"0x2"` (EIP-1559), `"0x7e"` (deposit transaction on Base).
+
+
+ Chain ID the transaction is valid for. `"0x2105"` for Base Mainnet, `"0x14a34"` for Base Sepolia.
+
+
+ List of addresses and storage keys the transaction accesses (EIP-2930). Only present for type `0x1` and `0x2` transactions.
+
+
+ ECDSA recovery ID.
+
+
+ 32-byte ECDSA signature component r.
+
+
+ 32-byte ECDSA signature component s.
+
+
+
+
+## Flashblocks Behavior
+
+On a [Flashblocks-aware endpoint](/base-chain/flashblocks/apps#rpc-endpoints), use `"pending"` as the block parameter to query preconfirmed state — data available up to 200ms before the next full block is sealed.
+
+Returns a preconfirmed transaction before it is included in a finalized block. Available once the transaction is included in a Flashblock.
+
+
+```bash cURL (preconfirmed state)
+curl https://mainnet-preconf.base.org \
+ -X POST \
+ -H "Content-Type: application/json" \
+ -d '{"jsonrpc":"2.0","method":"eth_getTransactionByHash","params":["0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238"],"id":1}'
+```
+
+
+## Example
+
+
+```json Request
+{
+ "jsonrpc": "2.0",
+ "method": "eth_getTransactionByHash",
+ "params": [
+ "0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238"
+ ],
+ "id": 1
+}
+```
+
+```json Response
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": {
+ "hash": "0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238",
+ "nonce": "0x1b",
+ "blockHash": "0x3a4e8c5d7f2b1a6e9d0c4f8b3e7a2d5c8f1b4e7a0d3c6f9b2e5a8d1c4f7b0e3",
+ "blockNumber": "0x12ced28",
+ "transactionIndex": "0x0",
+ "from": "0xd3CdA913deB6f4967b2Ef66ae97DE114a83bcc01",
+ "to": "0x4200000000000000000000000000000000000006",
+ "value": "0x2c68af0bb14000",
+ "gas": "0x5208",
+ "gasPrice": "0x3b9aca00",
+ "maxFeePerGas": "0x77359400",
+ "maxPriorityFeePerGas": "0x3b9aca00",
+ "input": "0x",
+ "type": "0x2",
+ "chainId": "0x2105",
+ "accessList": [],
+ "v": "0x1",
+ "r": "0x1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b",
+ "s": "0x2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b3c"
+ }
+}
+```
+
+```json Not Found
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": null
+}
+```
+
diff --git a/docs/base-chain/reference/rpc-methods/eth_getTransactionCount.mdx b/docs/base-chain/reference/rpc-methods/eth_getTransactionCount.mdx
new file mode 100644
index 000000000..96102c889
--- /dev/null
+++ b/docs/base-chain/reference/rpc-methods/eth_getTransactionCount.mdx
@@ -0,0 +1,62 @@
+---
+title: 'eth_getTransactionCount'
+sidebarTitle: 'eth_getTransactionCount'
+description: 'Returns the number of transactions sent from an address (the account nonce).'
+---
+
+Returns the number of transactions sent from an address — also known as the account nonce. Use the `pending` block parameter to include transactions that are in the mempool but not yet mined.
+
+## Parameters
+
+
+ The 20-byte account address.
+
+
+
+ Block number in hexadecimal, or a block tag: `latest`, `earliest`, `pending`, `safe`, or `finalized`.
+
+
+## Returns
+
+
+ The number of transactions sent from the address as a hexadecimal integer.
+
+
+## Flashblocks Behavior
+
+On a [Flashblocks-aware endpoint](/base-chain/flashblocks/apps#rpc-endpoints), use `"pending"` as the block parameter to query preconfirmed state — data available up to 200ms before the next full block is sealed.
+
+Returns the account nonce including transactions preconfirmed in Flashblocks but not yet in a sealed block. Always use `"pending"` when building sequential transactions to avoid nonce gaps.
+
+
+```bash cURL (preconfirmed state)
+curl https://mainnet-preconf.base.org \
+ -X POST \
+ -H "Content-Type: application/json" \
+ -d '{"jsonrpc":"2.0","method":"eth_getTransactionCount","params":["0xd3CdA913deB6f4967b2Ef66ae97DE114a83bcc01","pending"],"id":1}'
+```
+
+
+## Example
+
+
+```json Request
+{
+ "jsonrpc": "2.0",
+ "method": "eth_getTransactionCount",
+ "params": [
+ "0xd3CdA913deB6f4967b2Ef66ae97DE114a83bcc01",
+ "latest"
+ ],
+ "id": 1
+}
+```
+
+```json Response
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": "0x1b"
+}
+```
+
diff --git a/docs/base-chain/reference/rpc-methods/eth_getTransactionReceipt.mdx b/docs/base-chain/reference/rpc-methods/eth_getTransactionReceipt.mdx
new file mode 100644
index 000000000..21d0b556e
--- /dev/null
+++ b/docs/base-chain/reference/rpc-methods/eth_getTransactionReceipt.mdx
@@ -0,0 +1,135 @@
+---
+title: 'eth_getTransactionReceipt'
+sidebarTitle: 'eth_getTransactionReceipt'
+description: 'Returns the receipt for a mined transaction.'
+---
+
+Returns the receipt for a mined transaction. Receipts are only available after the transaction has been included in a block.
+
+
+For preconfirmed transaction receipts before a block is sealed, use a [Flashblocks-aware endpoint](/base-chain/flashblocks/apps#rpc-endpoints) and see the [Flashblocks Behavior](#flashblocks-behavior) section below.
+
+
+## Parameters
+
+
+ The 32-byte hash of the transaction.
+
+
+## Returns
+
+
+ A transaction receipt object, or `null` if the transaction is not found or is still pending.
+
+
+
+ 32-byte hash of the transaction.
+
+
+ Transaction's index position in the block.
+
+
+ 32-byte hash of the block this transaction is in.
+
+
+ Block number this transaction is in.
+
+
+ 20-byte address of the sender.
+
+
+ 20-byte address of the receiver. `null` for contract creation transactions.
+
+
+ Total gas used in the block at the point this transaction was executed.
+
+
+ Actual gas price paid per unit of gas for this transaction.
+
+
+ Gas used by this specific transaction.
+
+
+ The address of the contract created by this transaction, if it was a contract creation. Otherwise `null`.
+
+
+ Array of log objects generated by this transaction.
+
+
+ 256-byte bloom filter for the logs of this transaction.
+
+
+ `"0x1"` for a successful transaction, `"0x0"` for a failed (reverted) transaction.
+
+
+ Transaction type: `"0x0"` (legacy), `"0x1"` (EIP-2930), `"0x2"` (EIP-1559).
+
+
+
+
+## Flashblocks Behavior
+
+On a [Flashblocks-aware endpoint](/base-chain/flashblocks/apps#rpc-endpoints), use `"pending"` as the block parameter to query preconfirmed state — data available up to 200ms before the next full block is sealed.
+
+Returns the receipt for a preconfirmed transaction before it is included in a finalized block. Only available for transactions already included in a Flashblock.
+
+
+```bash cURL (preconfirmed state)
+curl https://mainnet-preconf.base.org \
+ -X POST \
+ -H "Content-Type: application/json" \
+ -d '{"jsonrpc":"2.0","method":"eth_getTransactionReceipt","params":["0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238"],"id":1}'
+```
+
+
+## Example
+
+
+```json Request
+{
+ "jsonrpc": "2.0",
+ "method": "eth_getTransactionReceipt",
+ "params": [
+ "0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238"
+ ],
+ "id": 1
+}
+```
+
+```json Response
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": {
+ "transactionHash": "0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238",
+ "transactionIndex": "0x0",
+ "blockHash": "0x3a4e8c5d7f2b1a6e9d0c4f8b3e7a2d5c8f1b4e7a0d3c6f9b2e5a8d1c4f7b0e3",
+ "blockNumber": "0x12ced28",
+ "from": "0xd3CdA913deB6f4967b2Ef66ae97DE114a83bcc01",
+ "to": "0x4200000000000000000000000000000000000006",
+ "cumulativeGasUsed": "0x5208",
+ "effectiveGasPrice": "0x3b9aca00",
+ "gasUsed": "0x5208",
+ "contractAddress": null,
+ "logs": [],
+ "logsBloom": "0x00000000000000000000000000000000...",
+ "status": "0x1",
+ "type": "0x2"
+ }
+}
+```
+
+```json Not Found
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": null
+}
+```
+
+
+## Errors
+
+| Code | Message | Description |
+| --- | --- | --- |
+| `-32000` | transaction indexing is in progress | The node is still indexing transactions. Retry after the node has finished syncing. |
diff --git a/docs/base-chain/reference/rpc-methods/eth_maxPriorityFeePerGas.mdx b/docs/base-chain/reference/rpc-methods/eth_maxPriorityFeePerGas.mdx
new file mode 100644
index 000000000..580357098
--- /dev/null
+++ b/docs/base-chain/reference/rpc-methods/eth_maxPriorityFeePerGas.mdx
@@ -0,0 +1,38 @@
+---
+title: 'eth_maxPriorityFeePerGas'
+sidebarTitle: 'eth_maxPriorityFeePerGas'
+description: 'Returns the suggested maxPriorityFeePerGas (tip) for EIP-1559 transactions.'
+---
+
+Returns the suggested `maxPriorityFeePerGas` (tip) for EIP-1559 transactions. Add this to the current `baseFeePerGas` to derive a `maxFeePerGas`.
+
+## Parameters
+
+No parameters.
+
+## Returns
+
+
+ Suggested priority fee per gas in wei as a hexadecimal string.
+
+
+## Example
+
+
+```json Request
+{
+ "jsonrpc": "2.0",
+ "method": "eth_maxPriorityFeePerGas",
+ "params": [],
+ "id": 1
+}
+```
+
+```json Response
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": "0x3b9aca00"
+}
+```
+
diff --git a/docs/base-chain/reference/rpc-methods/eth_sendRawTransaction.mdx b/docs/base-chain/reference/rpc-methods/eth_sendRawTransaction.mdx
new file mode 100644
index 000000000..0ae200c0c
--- /dev/null
+++ b/docs/base-chain/reference/rpc-methods/eth_sendRawTransaction.mdx
@@ -0,0 +1,51 @@
+---
+title: 'eth_sendRawTransaction'
+sidebarTitle: 'eth_sendRawTransaction'
+description: 'Submits a signed, RLP-encoded transaction to the network for broadcast.'
+---
+
+Submits a signed, RLP-encoded transaction to the network for broadcast. The transaction must be signed offline using the sender's private key before calling this method.
+
+## Parameters
+
+
+ The signed transaction data as a hex-encoded RLP-encoded string. Typically generated by a wallet library such as ethers.js, viem, or web3.js.
+
+
+## Returns
+
+
+ The 32-byte transaction hash if the transaction was accepted into the mempool.
+
+
+## Example
+
+
+```json Request
+{
+ "jsonrpc": "2.0",
+ "method": "eth_sendRawTransaction",
+ "params": [
+ "0x02f86b82210501843b9aca008477359400825208944200000000000000000000000000000000000006872c68af0bb1400080c001a01a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2ba02b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b3c"
+ ],
+ "id": 1
+}
+```
+
+```json Response
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": "0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238"
+}
+```
+
+
+## Errors
+
+| Code | Message | Description |
+| --- | --- | --- |
+| `-32000` | nonce too low | The transaction nonce is lower than the current account nonce |
+| `-32000` | insufficient funds for gas * price + value | The sender's balance cannot cover gas cost and value |
+| `-32000` | already known | An identical transaction is already in the mempool |
+| `-32000` | replacement transaction underpriced | A replacement transaction must pay a higher gas price |
diff --git a/docs/base-chain/reference/rpc-methods/eth_simulateV1.mdx b/docs/base-chain/reference/rpc-methods/eth_simulateV1.mdx
new file mode 100644
index 000000000..33af616ec
--- /dev/null
+++ b/docs/base-chain/reference/rpc-methods/eth_simulateV1.mdx
@@ -0,0 +1,122 @@
+---
+title: 'eth_simulateV1'
+sidebarTitle: 'eth_simulateV1'
+description: 'Simulates one or more transaction bundles against the current preconfirmed Flashblock state.'
+---
+
+Simulates one or more transaction bundles against the current preconfirmed Flashblock state. Supports state overrides, multi-block simulation, and optional transfer tracing.
+
+This method is only available on [Flashblocks-aware endpoints](/base-chain/flashblocks/apps#rpc-endpoints). Connect to `https://mainnet-preconf.base.org` (or `https://sepolia-preconf.base.org`) to use it.
+
+## Parameters
+
+
+ The simulation configuration.
+
+
+
+ Array of block state call objects. Each object represents one simulated block.
+
+
+
+ Array of transaction call objects to simulate within this block.
+
+
+ Per-address state overrides applied before simulation (e.g., balance, nonce, code, storage). Optional.
+
+
+ Block-level overrides (e.g., `number`, `timestamp`). Optional.
+
+
+
+
+ If `true`, ETH transfer events are included as logs in the result. Optional; defaults to `false`.
+
+
+ If `true`, transaction validation (nonce, balance) is enforced. Optional; defaults to `false`.
+
+
+
+
+
+ Use `"pending"` to simulate against the current Flashblock state.
+
+
+## Returns
+
+
+ Array of simulated block results, one per entry in `blockStateCalls`.
+
+
+
+ Array of individual call results.
+
+
+
+ `"0x1"` for success, `"0x0"` for failure.
+
+
+ Gas used by this call as a hexadecimal integer.
+
+
+ Hex-encoded return data from the call.
+
+
+ Logs emitted by this call (including ETH transfer logs if `traceTransfers` is `true`).
+
+
+ Revert reason if the call failed. Optional.
+
+
+
+
+
+
+## Example
+
+
+```bash cURL
+curl https://sepolia-preconf.base.org \
+ -X POST \
+ -H "Content-Type: application/json" \
+ -d '{
+ "jsonrpc": "2.0",
+ "method": "eth_simulateV1",
+ "params": [
+ {
+ "blockStateCalls": [
+ {
+ "calls": [
+ { "to": "0x...", "data": "0x..." }
+ ],
+ "stateOverrides": {}
+ }
+ ],
+ "traceTransfers": true,
+ "validation": true
+ },
+ "pending"
+ ],
+ "id": 1
+ }'
+```
+
+```json Response
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": [
+ {
+ "calls": [
+ {
+ "status": "0x1",
+ "gasUsed": "0x5208",
+ "returnData": "0x",
+ "logs": []
+ }
+ ]
+ }
+ ]
+}
+```
+
diff --git a/docs/base-chain/reference/rpc-methods/eth_subscribe.mdx b/docs/base-chain/reference/rpc-methods/eth_subscribe.mdx
new file mode 100644
index 000000000..e3b4f3513
--- /dev/null
+++ b/docs/base-chain/reference/rpc-methods/eth_subscribe.mdx
@@ -0,0 +1,136 @@
+---
+title: 'eth_subscribe'
+sidebarTitle: 'eth_subscribe'
+description: 'Creates a real-time WebSocket subscription to on-chain events.'
+---
+
+Creates a real-time subscription to on-chain events. The node pushes event notifications to the client as JSON-RPC messages whenever a matching event occurs, without the client needing to poll.
+
+## Parameters
+
+
+ The event type to subscribe to. See subscription types below.
+
+
+
+ Optional filter options. Only applicable for the `logs` subscription type.
+
+
+
+ A single contract address or array of addresses to filter logs by. Optional.
+
+
+ Array of topic filters in the same format as `eth_getLogs`. Optional.
+
+
+
+
+**Subscription Types**
+
+| Type | Description | Notification payload |
+| ---- | ----------- | -------------------- |
+| `newHeads` | Fires for each new block header appended to the chain | Block header object |
+| `logs` | Fires for each new log matching the filter criteria | Log object |
+| `newPendingTransactions` | Fires for each new pending transaction hash added to the mempool | Transaction hash string |
+
+## Returns
+
+
+ A hex-encoded subscription ID. All subsequent event notifications from this subscription include this ID in `params.subscription`.
+
+
+Event notifications arrive as unsolicited JSON-RPC messages with `method: "eth_subscription"`:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "method": "eth_subscription",
+ "params": {
+ "subscription": "0x1887ec8b9589ccad00000000000532da",
+ "result": { ... }
+ }
+}
+```
+
+## Example
+
+**Subscribe to new block headers:**
+
+
+```json Request
+{"jsonrpc": "2.0", "method": "eth_subscribe", "params": ["newHeads"], "id": 1}
+```
+
+```json Response
+{"jsonrpc": "2.0", "id": 1, "result": "0x1887ec8b9589ccad00000000000532da"}
+```
+
+```json Event Notification
+{
+ "jsonrpc": "2.0",
+ "method": "eth_subscription",
+ "params": {
+ "subscription": "0x1887ec8b9589ccad00000000000532da",
+ "result": {
+ "number": "0x12ced29",
+ "hash": "0x4b5e8c5d7f2b1a6e9d0c4f8b3e7a2d5c8f1b4e7a0d3c6f9b2e5a8d1c4f7b0e4",
+ "parentHash": "0x3a4e8c5d7f2b1a6e9d0c4f8b3e7a2d5c8f1b4e7a0d3c6f9b2e5a8d1c4f7b0e3",
+ "gasLimit": "0x1c9c380",
+ "gasUsed": "0xa410",
+ "timestamp": "0x6783a5d2",
+ "baseFeePerGas": "0x3b9aca00"
+ }
+ }
+}
+```
+
+
+**Subscribe to contract logs:**
+
+
+```json Request
+{
+ "jsonrpc": "2.0",
+ "method": "eth_subscribe",
+ "params": [
+ "logs",
+ {
+ "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
+ "topics": [
+ "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"
+ ]
+ }
+ ],
+ "id": 1
+}
+```
+
+```json Response
+{"jsonrpc": "2.0", "id": 1, "result": "0x2a7bc8d4e3f5a6b1c2d3e4f5a6b7c8d9"}
+```
+
+```json Event Notification
+{
+ "jsonrpc": "2.0",
+ "method": "eth_subscription",
+ "params": {
+ "subscription": "0x2a7bc8d4e3f5a6b1c2d3e4f5a6b7c8d9",
+ "result": {
+ "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
+ "topics": [
+ "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
+ "0x000000000000000000000000d3cda913deb6f4967b2ef66ae97de114a83bcc01",
+ "0x0000000000000000000000004200000000000000000000000000000000000006"
+ ],
+ "data": "0x0000000000000000000000000000000000000000000000000000000005f5e100",
+ "blockNumber": "0x12ced29",
+ "transactionHash": "0xc903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568239",
+ "transactionIndex": "0x0",
+ "blockHash": "0x4b5e8c5d7f2b1a6e9d0c4f8b3e7a2d5c8f1b4e7a0d3c6f9b2e5a8d1c4f7b0e4",
+ "logIndex": "0x0",
+ "removed": false
+ }
+ }
+}
+```
+
diff --git a/docs/base-chain/reference/rpc-methods/eth_syncing.mdx b/docs/base-chain/reference/rpc-methods/eth_syncing.mdx
new file mode 100644
index 000000000..207cf63a7
--- /dev/null
+++ b/docs/base-chain/reference/rpc-methods/eth_syncing.mdx
@@ -0,0 +1,62 @@
+---
+title: 'eth_syncing'
+sidebarTitle: 'eth_syncing'
+description: 'Returns the synchronization status of the node.'
+---
+
+Returns the synchronization status of the node.
+
+## Parameters
+
+No parameters.
+
+## Returns
+
+
+ Returns `false` if the node is fully synced with the network. Returns a sync status object if the node is still catching up.
+
+
+
+ Block number where the current sync started.
+
+
+ Current block the node has processed.
+
+
+ Estimated highest block number on the network.
+
+
+
+
+## Example
+
+
+```json Request
+{
+ "jsonrpc": "2.0",
+ "method": "eth_syncing",
+ "params": [],
+ "id": 1
+}
+```
+
+```json Response (synced)
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": false
+}
+```
+
+```json Response (syncing)
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": {
+ "startingBlock": "0x0",
+ "currentBlock": "0x12ce000",
+ "highestBlock": "0x12ced28"
+ }
+}
+```
+
diff --git a/docs/base-chain/reference/rpc-methods/eth_unsubscribe.mdx b/docs/base-chain/reference/rpc-methods/eth_unsubscribe.mdx
new file mode 100644
index 000000000..1ea75e7a0
--- /dev/null
+++ b/docs/base-chain/reference/rpc-methods/eth_unsubscribe.mdx
@@ -0,0 +1,40 @@
+---
+title: 'eth_unsubscribe'
+sidebarTitle: 'eth_unsubscribe'
+description: 'Cancels a WebSocket subscription created by eth_subscribe.'
+---
+
+Cancels a subscription created by `eth_subscribe`. After cancellation, no further notifications are sent for that subscription ID.
+
+## Parameters
+
+
+ The hex-encoded subscription ID returned by `eth_subscribe`.
+
+
+## Returns
+
+
+ `true` if the subscription was successfully cancelled. `false` if the subscription ID was not found (e.g., already cancelled or never existed).
+
+
+## Example
+
+
+```json Request
+{
+ "jsonrpc": "2.0",
+ "method": "eth_unsubscribe",
+ "params": ["0x1887ec8b9589ccad00000000000532da"],
+ "id": 1
+}
+```
+
+```json Response (success)
+{"jsonrpc": "2.0", "id": 1, "result": true}
+```
+
+```json Response (not found)
+{"jsonrpc": "2.0", "id": 1, "result": false}
+```
+
diff --git a/docs/base-chain/reference/rpc-methods/net_version.mdx b/docs/base-chain/reference/rpc-methods/net_version.mdx
new file mode 100644
index 000000000..cf39f90d4
--- /dev/null
+++ b/docs/base-chain/reference/rpc-methods/net_version.mdx
@@ -0,0 +1,38 @@
+---
+title: 'net_version'
+sidebarTitle: 'net_version'
+description: 'Returns the network ID as a decimal string.'
+---
+
+Returns the network ID as a decimal string. For Base, this is the same value as the chain ID.
+
+## Parameters
+
+No parameters.
+
+## Returns
+
+
+ The network ID as a decimal string (not hex). `"8453"` for Base Mainnet, `"84532"` for Base Sepolia.
+
+
+## Example
+
+
+```json Request
+{
+ "jsonrpc": "2.0",
+ "method": "net_version",
+ "params": [],
+ "id": 1
+}
+```
+
+```json Response (Base Mainnet)
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": "8453"
+}
+```
+
diff --git a/docs/base-chain/reference/rpc-methods/newFlashblockTransactions.mdx b/docs/base-chain/reference/rpc-methods/newFlashblockTransactions.mdx
new file mode 100644
index 000000000..bfe0b5004
--- /dev/null
+++ b/docs/base-chain/reference/rpc-methods/newFlashblockTransactions.mdx
@@ -0,0 +1,45 @@
+---
+title: 'newFlashblockTransactions'
+sidebarTitle: 'newFlashblockTransactions'
+description: 'Subscribe to receive each transaction as it is preconfirmed into a Flashblock.'
+---
+
+Subscribe to receive each transaction as it is preconfirmed. Pass `true` as the second parameter to receive full transaction and log data in each message.
+
+This method is only available on [Flashblocks-aware endpoints](/base-chain/flashblocks/apps#rpc-endpoints). Connect to `https://mainnet-preconf.base.org` (or `https://sepolia-preconf.base.org`) to use it.
+
+
+Requires [base/base](https://github.com/base/base) minimum client version v0.3.1.
+
+
+## Parameters
+
+
+ Must be `"newFlashblockTransactions"`.
+
+
+
+ Optional. If `true`, each notification includes the full transaction object and associated logs. If `false` or omitted, notifications contain minimal transaction data.
+
+
+## Returns
+
+
+ Hex-encoded subscription ID.
+
+
+## Example
+
+
+```json Subscribe
+{"jsonrpc": "2.0", "id": 1, "method": "eth_subscribe", "params": ["newFlashblockTransactions"]}
+```
+
+```json Subscribe (full data)
+{"jsonrpc": "2.0", "id": 1, "method": "eth_subscribe", "params": ["newFlashblockTransactions", true]}
+```
+
+```json Subscription ID Response
+{"jsonrpc": "2.0", "id": 1, "result": "0x1887ec8b9589ccad00000000000532da"}
+```
+
diff --git a/docs/base-chain/reference/rpc-methods/newFlashblocks.mdx b/docs/base-chain/reference/rpc-methods/newFlashblocks.mdx
new file mode 100644
index 000000000..12ac6d2a9
--- /dev/null
+++ b/docs/base-chain/reference/rpc-methods/newFlashblocks.mdx
@@ -0,0 +1,74 @@
+---
+title: 'newFlashblocks'
+sidebarTitle: 'newFlashblocks'
+description: 'Subscribe to receive full block state updates as each Flashblock is built.'
+---
+
+
+Each subscription emits **one item per WebSocket message**. Events arrive approximately every 200ms. If your application performs heavy processing per event, throttle or debounce your handler to avoid blocking.
+
+
+Subscribe to receive full block state updates as each Flashblock is built. Each message contains the accumulated preconfirmed state for the block in progress.
+
+This method is only available on [Flashblocks-aware endpoints](/base-chain/flashblocks/apps#rpc-endpoints). Connect to `https://mainnet-preconf.base.org` (or `https://sepolia-preconf.base.org`) to use it.
+
+
+Requires [base/base](https://github.com/base/base) minimum client version v0.3.1.
+
+
+## Parameters
+
+
+ Must be `"newFlashblocks"`.
+
+
+## Returns
+
+
+ Hex-encoded subscription ID.
+
+
+## Example
+
+
+```json Subscribe
+{"jsonrpc": "2.0", "id": 1, "method": "eth_subscribe", "params": ["newFlashblocks"]}
+```
+
+```json Subscription ID Response
+{"jsonrpc": "2.0", "id": 1, "result": "0x3b8cd9e5f4a7b2c1d0e3f4a5b6c7d8e9"}
+```
+
+
+**JavaScript example:**
+
+```javascript
+import WebSocket from 'ws';
+
+// Use a WSS RPC endpoint — not the raw Flashblock WebSocket stream
+const ws = new WebSocket('wss://your-provider.example.com/ws');
+
+ws.on('open', () => {
+ ws.send(JSON.stringify({
+ jsonrpc: '2.0',
+ method: 'eth_subscribe',
+ params: ['newFlashblockTransactions'],
+ id: 1
+ }));
+});
+
+ws.on('message', (data) => {
+ const response = JSON.parse(data.toString());
+ if (response.method === 'eth_subscription') {
+ console.log('Preconfirmed transaction:', response.params.result);
+ }
+});
+
+ws.on('error', (error) => {
+ console.error('WebSocket error:', error);
+});
+
+ws.on('close', () => {
+ console.log('WebSocket connection closed');
+});
+```
diff --git a/docs/base-chain/reference/rpc-methods/pendingLogs.mdx b/docs/base-chain/reference/rpc-methods/pendingLogs.mdx
new file mode 100644
index 000000000..5850842a9
--- /dev/null
+++ b/docs/base-chain/reference/rpc-methods/pendingLogs.mdx
@@ -0,0 +1,63 @@
+---
+title: 'pendingLogs'
+sidebarTitle: 'pendingLogs'
+description: 'Subscribe to receive logs from preconfirmed transactions matching an optional filter.'
+---
+
+Subscribe to receive logs from preconfirmed transactions matching an optional filter. Useful for monitoring contract events with sub-block latency.
+
+This method is only available on [Flashblocks-aware endpoints](/base-chain/flashblocks/apps#rpc-endpoints). Connect to `https://mainnet-preconf.base.org` (or `https://sepolia-preconf.base.org`) to use it.
+
+
+Requires [base/base](https://github.com/base/base) minimum client version v0.3.1.
+
+
+## Parameters
+
+
+ Must be `"pendingLogs"`.
+
+
+
+ Optional log filter.
+
+
+
+ A single contract address or array of addresses to filter by. Optional.
+
+
+ Array of topic filters in the same format as `eth_getLogs`. Optional.
+
+
+
+
+## Returns
+
+
+ Hex-encoded subscription ID.
+
+
+## Example
+
+
+```json Subscribe (with filter)
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "eth_subscribe",
+ "params": [
+ "pendingLogs",
+ {
+ "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
+ "topics": [
+ "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"
+ ]
+ }
+ ]
+}
+```
+
+```json Subscription ID Response
+{"jsonrpc": "2.0", "id": 1, "result": "0x2a7bc8d4e3f5a6b1c2d3e4f5a6b7c8d9"}
+```
+
diff --git a/docs/base-chain/reference/rpc-methods/web3_clientVersion.mdx b/docs/base-chain/reference/rpc-methods/web3_clientVersion.mdx
new file mode 100644
index 000000000..805b79aa3
--- /dev/null
+++ b/docs/base-chain/reference/rpc-methods/web3_clientVersion.mdx
@@ -0,0 +1,38 @@
+---
+title: 'web3_clientVersion'
+sidebarTitle: 'web3_clientVersion'
+description: 'Returns a string identifying the node client software and version.'
+---
+
+Returns a string identifying the node client software and version.
+
+## Parameters
+
+No parameters.
+
+## Returns
+
+
+ A string in the format `///`.
+
+
+## Example
+
+
+```json Request
+{
+ "jsonrpc": "2.0",
+ "method": "web3_clientVersion",
+ "params": [],
+ "id": 1
+}
+```
+
+```json Response
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": "op-geth/v1.101411.0/linux-amd64/go1.21.0"
+}
+```
+
diff --git a/docs/docs.json b/docs/docs.json
index 5306bd018..bca7c686b 100644
--- a/docs/docs.json
+++ b/docs/docs.json
@@ -103,7 +103,87 @@
{
"group": "Reference",
"pages": [
- "base-chain/reference/json-rpc-api"
+ "base-chain/reference/json-rpc-api",
+ {
+ "group": "Account & State",
+ "pages": [
+ "base-chain/reference/rpc-methods/eth_blockNumber",
+ "base-chain/reference/rpc-methods/eth_getBalance",
+ "base-chain/reference/rpc-methods/eth_getTransactionCount",
+ "base-chain/reference/rpc-methods/eth_getCode",
+ "base-chain/reference/rpc-methods/eth_getStorageAt",
+ "base-chain/reference/rpc-methods/eth_call"
+ ]
+ },
+ {
+ "group": "Blocks",
+ "pages": [
+ "base-chain/reference/rpc-methods/eth_getBlockByNumber",
+ "base-chain/reference/rpc-methods/eth_getBlockByHash",
+ "base-chain/reference/rpc-methods/eth_getBlockReceipts",
+ "base-chain/reference/rpc-methods/eth_getBlockTransactionCountByNumber",
+ "base-chain/reference/rpc-methods/eth_getBlockTransactionCountByHash"
+ ]
+ },
+ {
+ "group": "Transactions",
+ "pages": [
+ "base-chain/reference/rpc-methods/eth_getTransactionByHash",
+ "base-chain/reference/rpc-methods/eth_getTransactionByBlockHashAndIndex",
+ "base-chain/reference/rpc-methods/eth_getTransactionByBlockNumberAndIndex",
+ "base-chain/reference/rpc-methods/eth_getTransactionReceipt",
+ "base-chain/reference/rpc-methods/eth_sendRawTransaction"
+ ]
+ },
+ {
+ "group": "Gas & Fees",
+ "pages": [
+ "base-chain/reference/rpc-methods/eth_gasPrice",
+ "base-chain/reference/rpc-methods/eth_maxPriorityFeePerGas",
+ "base-chain/reference/rpc-methods/eth_feeHistory",
+ "base-chain/reference/rpc-methods/eth_estimateGas"
+ ]
+ },
+ {
+ "group": "Logs",
+ "pages": [
+ "base-chain/reference/rpc-methods/eth_getLogs"
+ ]
+ },
+ {
+ "group": "Chain & Network",
+ "pages": [
+ "base-chain/reference/rpc-methods/eth_chainId",
+ "base-chain/reference/rpc-methods/eth_syncing",
+ "base-chain/reference/rpc-methods/net_version",
+ "base-chain/reference/rpc-methods/web3_clientVersion"
+ ]
+ },
+ {
+ "group": "Debug",
+ "pages": [
+ "base-chain/reference/rpc-methods/debug_traceTransaction",
+ "base-chain/reference/rpc-methods/debug_traceBlockByHash",
+ "base-chain/reference/rpc-methods/debug_traceBlockByNumber"
+ ]
+ },
+ {
+ "group": "WebSocket",
+ "pages": [
+ "base-chain/reference/rpc-methods/eth_subscribe",
+ "base-chain/reference/rpc-methods/eth_unsubscribe"
+ ]
+ },
+ {
+ "group": "Flashblocks Methods",
+ "pages": [
+ "base-chain/reference/rpc-methods/eth_simulateV1",
+ "base-chain/reference/rpc-methods/base_transactionStatus",
+ "base-chain/reference/rpc-methods/newFlashblockTransactions",
+ "base-chain/reference/rpc-methods/pendingLogs",
+ "base-chain/reference/rpc-methods/newFlashblocks"
+ ]
+ }
]
},
{
@@ -123,7 +203,6 @@
"group": "Flashblocks",
"pages": [
"base-chain/flashblocks/apps",
- "base-chain/flashblocks/api-reference",
"base-chain/flashblocks/node-providers",
"base-chain/flashblocks/docs"
]