From 88211183bf5e5bf124418e7c40bc5a6301934129 Mon Sep 17 00:00:00 2001 From: roethke Date: Wed, 27 May 2026 10:00:54 -0700 Subject: [PATCH 01/11] fix text overflow, update for v0.8.0 --- .../ethereum-json-rpc-api/eth_feeHistory.mdx | 37 ++++++++--- .../ethereum-json-rpc-api/eth_gasPrice.mdx | 2 +- .../eth_getBlockByHash.mdx | 38 +++++++++--- .../eth_getBlockByNumber.mdx | 40 +++++++++--- .../eth_getBlockReceipts.mdx | 4 ++ .../eth_getBlockTransactionCountByHash.mdx | 6 +- .../eth_getBlockTransactionCountByNumber.mdx | 6 +- .../ethereum-json-rpc-api/eth_getLogs.mdx | 22 ++++--- .../eth_getTransactionByBlockHashAndIndex.mdx | 29 ++++++--- ...th_getTransactionByBlockNumberAndIndex.mdx | 29 ++++++--- .../eth_getTransactionByHash.mdx | 61 +++++++++++-------- .../eth_getTransactionReceipt.mdx | 46 +++++++++----- .../eth_maxPriorityFeePerGas.mdx | 2 +- .../ethereum-json-rpc-api/eth_subscribe.mdx | 2 +- .../web3_clientVersion.mdx | 8 ++- .../flashblocks-api/eth_simulateV1.mdx | 44 +++++++++++-- .../newFlashblockTransactions.mdx | 2 +- .../flashblocks-api/newFlashblocks.mdx | 8 ++- .../flashblocks-api/pendingLogs.mdx | 2 +- .../base-chain/api-reference/rpc-overview.mdx | 12 ++-- 20 files changed, 288 insertions(+), 112 deletions(-) diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_feeHistory.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_feeHistory.mdx index d73e5eaaa..9ab11eb35 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_feeHistory.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_feeHistory.mdx @@ -25,8 +25,10 @@ Returns historical gas information for a range of blocks, including base fees an The oldest block number in the result set (hex). - Array of base fees per gas for each block, plus one extra for the next pending block. - Array of gas used / gas limit ratios for each block (0.0 to 1.0). + Array of base fees per gas for each block, plus one extra entry for the next pending block. Length = `blockCount + 1`. + Array of gas used / gas limit ratios for each block (0.0 to 1.0). Length = `blockCount`. + Array of base fees per blob gas for each block, plus one extra for the next pending block (EIP-4844). Always `"0x1"` on Base currently. Length = `blockCount + 1`. + Array of blob gas used ratios for each block (0.0 to 1.0). Used to adjust the blob base fee (EIP-4844). Length = `blockCount`. 2D array of priority fee percentiles per block, matching the requested percentile values. @@ -48,12 +50,33 @@ Returns historical gas information for a range of blocks, including base fees an "jsonrpc": "2.0", "id": 1, "result": { - "oldestBlock": "0x158a0e0", - "baseFeePerGas": ["0xf5", "0xf7", "0xfa", "0xfc", "0xf8", "0xf5", "0xf2", "0xf0", "0xef", "0xf1", "0xf3"], - "gasUsedRatio": [0.45, 0.62, 0.38, 0.71, 0.55, 0.49, 0.43, 0.37, 0.52, 0.64], + "baseFeePerBlobGas": [ + "0x1", + "0x1", + "0x1", + "0x1", + "0x3" + ], + "baseFeePerGas": [ + "0x4c4b40", + "0x4c4b40", + "0x4c4b40", + "0x4c4b40", + "0x4c4b40" + ], + "blobGasUsedRatio": [0, 0, 0, 0], + "gasUsedRatio": [ + 0.1180706525, + 0.1370935325, + 0.120803475, + 0.0968808 + ], + "oldestBlock": "0x2c31b05", "reward": [ - ["0x1", "0x1", "0x2"], - ["0x1", "0x1", "0x1"] + ["0xf4240", "0x2191c0"], + ["0xf4240", "0x186a00"], + ["0x7a138", "0x4c4b40"], + ["0xf4240", "0x4c4b40"] ] } } diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_gasPrice.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_gasPrice.mdx index 4cf69ecf1..9b5dcdf71 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_gasPrice.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_gasPrice.mdx @@ -32,7 +32,7 @@ No parameters. { "jsonrpc": "2.0", "id": 1, - "result": "0xfa" + "result": "0x5b8d80" } ``` diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockByHash.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockByHash.mdx index e1197067a..38e775f44 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockByHash.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockByHash.mdx @@ -19,7 +19,7 @@ Returns information about a block by its hash. ## Returns - A block object, or `null` if no block was found. See [`eth_getBlockByNumber`](/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockByNumber) for the full field list. + A block object, or `null` if no block was found. The response shape is identical to [`eth_getBlockByNumber`](/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockByNumber) — see that page for the full field list. ## Example @@ -39,13 +39,35 @@ Returns information about a block by its hash. "jsonrpc": "2.0", "id": 1, "result": { - "number": "0x158a0e9", - "hash": "0x5c330e55a190f82ea486b61e5b12e27dfb4fb3cecfc5746886ef38ca1281bce8", - "parentHash": "0x9edc29b8b0a1e31d28616e40c16132ad0d58faa8bb952595b557526bdb9a960a", - "timestamp": "0x67bf8332", - "gasLimit": "0x3938700", - "gasUsed": "0xab3f", - "transactions": ["0x7ef8f8a0..."] + "baseFeePerGas": "0x4c4b40", + "blobGasUsed": "0x5384cc", + "difficulty": "0x0", + "excessBlobGas": "0x0", + "extraData": "0x01000000640000000500000000004c4b40", + "gasLimit": "0x17d78400", + "gasUsed": "0x2155bc7", + "hash": "0x491bca01d4bc076d60833dbd973fe031a74e7ae31866bf70d077619e09edb6ff", + "logsBloom": "0xb765d5b0...", + "miner": "0x4200000000000000000000000000000000000011", + "mixHash": "0x47aecef0e1afa26b8e1f428e9a8696cf53d85c62587d8c2cea079c715cd29626", + "nonce": "0x0000000000000000", + "number": "0x2c31b0b", + "parentBeaconBlockRoot": "0x15b9e7c8ac4cbe92dafc849ed30a23e91624bbe5cbe199c0ccea3f7de7fc6d49", + "parentHash": "0x89f4c9e23a2f706f0afa9ca8f770c4b7dcbcb73ba7e9b1c29c4a8c1b90c31d24", + "receiptsRoot": "0x5a428d77344334537d7adaf85a45eb6d7977bc807a68c669f36cb043600da6d2", + "requestsHash": "0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "size": "0x1bb3b", + "stateRoot": "0x1b1525af0cdd504147b89f2a7ce1838ccb70c5439c45ce55522c2e2529801e87", + "timestamp": "0x6a1092f9", + "transactions": [ + "0x03c8f106f18ad94190e763e21b584c5825b2f4c61f1274c0e8abe65b4476cd51", + "..." + ], + "transactionsRoot": "0x6b9c9fcbdf98a8f4d38a3c16d099e9f0c7b7b474c2f5e044af7c91949c04a234", + "uncles": [], + "withdrawals": [], + "withdrawalsRoot": "0x57f4414a70a4af5e1a97b5fd8b8c6c870c00e8d9dbc0fde0059ce46e2cd28e5b" } } ``` diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockByNumber.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockByNumber.mdx index 1fa83cf57..9fcafa81c 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockByNumber.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockByNumber.mdx @@ -37,7 +37,7 @@ Returns information about a block by its number. Root of the receipts trie. Address of the fee recipient (coinbase). Always `"0x0"` on Base (PoS). - Always `"0x0"` on Base (PoS). + Present in all blocks; repurposed for PoS consensus (bytes32 hex). Arbitrary data field set by the sequencer. Block size in bytes (hex). Maximum gas allowed in this block (hex). @@ -46,6 +46,7 @@ Returns information about a block by its number. Array of transaction hashes or full transaction objects. Always `[]` on Base. Always `[]` on Base. + Merkle root of the withdrawals list (EIP-4895, bytes32 hex). EIP-1559 base fee per gas (hex). Total blob gas used (EIP-4844, hex). Excess blob gas for blob fee calculation (EIP-4844, hex). @@ -98,16 +99,35 @@ curl https://mainnet-preconf.base.org \ "jsonrpc": "2.0", "id": 1, "result": { - "number": "0x158a0e9", - "hash": "0x5c330e55a190f82ea486b61e5b12e27dfb4fb3cecfc5746886ef38ca1281bce8", - "parentHash": "0x9edc29b8b0a1e31d28616e40c16132ad0d58faa8bb952595b557526bdb9a960a", - "timestamp": "0x67bf8332", - "gasLimit": "0x3938700", - "gasUsed": "0xab3f", - "baseFeePerGas": "0xfa", - "transactions": ["0x7ef8f8a0..."], + "baseFeePerGas": "0x4c4b40", + "blobGasUsed": "0x5384cc", + "difficulty": "0x0", + "excessBlobGas": "0x0", + "extraData": "0x01000000640000000500000000004c4b40", + "gasLimit": "0x17d78400", + "gasUsed": "0x2155bc7", + "hash": "0x491bca01d4bc076d60833dbd973fe031a74e7ae31866bf70d077619e09edb6ff", + "logsBloom": "0xb765d5b0...", + "miner": "0x4200000000000000000000000000000000000011", + "mixHash": "0x47aecef0e1afa26b8e1f428e9a8696cf53d85c62587d8c2cea079c715cd29626", + "nonce": "0x0000000000000000", + "number": "0x2c31b0b", + "parentBeaconBlockRoot": "0x15b9e7c8ac4cbe92dafc849ed30a23e91624bbe5cbe199c0ccea3f7de7fc6d49", + "parentHash": "0x89f4c9e23a2f706f0afa9ca8f770c4b7dcbcb73ba7e9b1c29c4a8c1b90c31d24", + "receiptsRoot": "0x5a428d77344334537d7adaf85a45eb6d7977bc807a68c669f36cb043600da6d2", + "requestsHash": "0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "size": "0x1bb3b", + "stateRoot": "0x1b1525af0cdd504147b89f2a7ce1838ccb70c5439c45ce55522c2e2529801e87", + "timestamp": "0x6a1092f9", + "transactions": [ + "0x03c8f106f18ad94190e763e21b584c5825b2f4c61f1274c0e8abe65b4476cd51", + "..." + ], + "transactionsRoot": "0x6b9c9fcbdf98a8f4d38a3c16d099e9f0c7b7b474c2f5e044af7c91949c04a234", + "uncles": [], "withdrawals": [], - "miner": "0x4200000000000000000000000000000000000011" + "withdrawalsRoot": "0x57f4414a70a4af5e1a97b5fd8b8c6c870c00e8d9dbc0fde0059ce46e2cd28e5b" } } ``` diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockReceipts.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockReceipts.mdx index cf93d1a22..8de16e2c6 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockReceipts.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockReceipts.mdx @@ -6,6 +6,10 @@ description: 'Returns all transaction receipts for a block. Use pending on a Fla Returns all transaction receipts for a given block. + +This method returns HTTP 403 on the public Base RPC endpoints (`mainnet.base.org`, `sepolia.base.org`). It requires a dedicated or third-party RPC provider. See the [node providers page](/base-chain/network-information/node-providers) for options. + + **Flashblocks:** Query `https://mainnet-preconf.base.org` with `"pending"` to get receipts for all pre-confirmed transactions in the current Flashblock. diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockTransactionCountByHash.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockTransactionCountByHash.mdx index 41191fc1f..17308996a 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockTransactionCountByHash.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockTransactionCountByHash.mdx @@ -1,7 +1,7 @@ --- -title: 'eth_getBlockTransactionCountByHash' -sidebarTitle: 'eth_getBlockTransactionCountByHash' -description: 'Returns the number of transactions in a block by block hash.' +title: 'eth_getBlockTxCountByHash' +sidebarTitle: 'eth_getBlockTxCountByHash' +description: 'eth_getBlockTransactionCountByHash — Returns the number of transactions in a block by block hash.' --- Returns the number of transactions in a block matching the given block hash. diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockTransactionCountByNumber.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockTransactionCountByNumber.mdx index 516590eec..80d1bce8e 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockTransactionCountByNumber.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockTransactionCountByNumber.mdx @@ -1,7 +1,7 @@ --- -title: 'eth_getBlockTransactionCountByNumber' -sidebarTitle: 'eth_getBlockTransactionCountByNumber' -description: 'Returns the number of transactions in a block by block number.' +title: 'eth_getBlockTxCountByNumber' +sidebarTitle: 'eth_getBlockTxCountByNumber' +description: 'eth_getBlockTransactionCountByNumber — Returns the number of transactions in a block by block number.' --- Returns the number of transactions in a block matching the given block number. diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getLogs.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getLogs.mdx index b41d86494..2fb5959be 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getLogs.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getLogs.mdx @@ -48,6 +48,7 @@ Queries spanning large block ranges or high-activity contracts can time out or b Array of 0–4 indexed 32-byte topics. Topic 0 is typically the event signature hash. ABI-encoded non-indexed event parameters. Block number in which this log was emitted (hex). + Unix timestamp of the block containing this log as a hex string. OP Stack extension to the standard Ethereum log schema. 32-byte hash of the transaction that emitted this log. Index of the transaction in the block (hex). 32-byte hash of the block. @@ -99,19 +100,20 @@ curl https://mainnet-preconf.base.org \ "id": 1, "result": [ { - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "address": "0x4200000000000000000000000000000000000006", + "blockHash": "0x89f4c9e23a2f706f0afa9ca8f770c4b7dcbcb73ba7e9b1c29c4a8c1b90c31d24", + "blockNumber": "0x2c31b0a", + "blockTimestamp": "0x6a1092f7", + "data": "0x00000000000000000000000000000000000000000000000080134424aad49d08", + "logIndex": "0x0", + "removed": false, "topics": [ "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000d3cda913deb6f4967b2ef66ae97de114a83bcc01", - "0x0000000000000000000000004200000000000000000000000000000000000006" + "0x000000000000000000000000b2cc224c1c9fee385f8ad6a55b4d94e92359dc59", + "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f" ], - "data": "0x0000000000000000000000000000000000000000000000000000000005f5e100", - "blockNumber": "0x12ced28", - "transactionHash": "0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238", - "transactionIndex": "0x0", - "blockHash": "0x3a4e8c5d7f2b1a6e9d0c4f8b3e7a2d5c8f1b4e7a0d3c6f9b2e5a8d1c4f7b0e3", - "logIndex": "0x0", - "removed": false + "transactionHash": "0x2ca798df9d399b886fb3735414e8d35a20fec080e48eb5e2e75c0f6ec349a725", + "transactionIndex": "0x1" } ] } diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionByBlockHashAndIndex.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionByBlockHashAndIndex.mdx index 34a86ce01..44d359ab4 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionByBlockHashAndIndex.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionByBlockHashAndIndex.mdx @@ -1,7 +1,7 @@ --- -title: 'eth_getTransactionByBlockHashAndIndex' -sidebarTitle: 'eth_getTransactionByBlockHashAndIndex' -description: 'Returns a transaction by block hash and index position.' +title: 'eth_getTxByBlockHashAndIndex' +sidebarTitle: 'eth_getTxByBlockHashAndIndex' +description: 'eth_getTransactionByBlockHashAndIndex — Returns a transaction by block hash and index position.' --- Returns information about a transaction given a block hash and the transaction's index position within that block. @@ -34,15 +34,30 @@ Returns information about a transaction given a block hash and the transaction's } ``` -```json Response +```json Response (type 0x7e deposit, index 0x0) { "jsonrpc": "2.0", "id": 1, "result": { - "hash": "0x7ef8f8a0...", - "blockNumber": "0x158a0e9", + "blockHash": "0x491bca01d4bc076d60833dbd973fe031a74e7ae31866bf70d077619e09edb6ff", + "blockNumber": "0x2c31b0b", + "depositReceiptVersion": "0x1", + "from": "0xdeaddeaddeaddeaddeaddeaddeaddeaddead0001", + "gas": "0xf4240", + "gasPrice": "0x0", + "hash": "0x03c8f106f18ad94190e763e21b584c5825b2f4c61f1274c0e8abe65b4476cd51", + "input": "0x3db6be2b...", + "mint": "0x0", + "nonce": "0x2c31b0e", + "r": "0x0", + "s": "0x0", + "sourceHash": "0xe40ffb1b9f98a24b21e90e3a3cfe49de1eed195618e943da4d029881d3b3e055", + "to": "0x4200000000000000000000000000000000000015", "transactionIndex": "0x0", - "type": "0x7e" + "type": "0x7e", + "v": "0x0", + "value": "0x0", + "yParity": "0x0" } } ``` diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionByBlockNumberAndIndex.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionByBlockNumberAndIndex.mdx index 1febb7498..b63d1fa2c 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionByBlockNumberAndIndex.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionByBlockNumberAndIndex.mdx @@ -1,7 +1,7 @@ --- -title: 'eth_getTransactionByBlockNumberAndIndex' -sidebarTitle: 'eth_getTransactionByBlockNumberAndIndex' -description: 'Returns a transaction by block number and index position.' +title: 'eth_getTxByBlockNumberAndIndex' +sidebarTitle: 'eth_getTxByBlockNumberAndIndex' +description: 'eth_getTransactionByBlockNumberAndIndex — Returns a transaction by block number and index position.' --- Returns information about a transaction given a block number and the transaction's index position within that block. @@ -34,15 +34,30 @@ Returns information about a transaction given a block number and the transaction } ``` -```json Response +```json Response (type 0x7e deposit, index 0x0) { "jsonrpc": "2.0", "id": 1, "result": { - "hash": "0x7ef8f8a0...", - "blockNumber": "0x158a0e9", + "blockHash": "0x491bca01d4bc076d60833dbd973fe031a74e7ae31866bf70d077619e09edb6ff", + "blockNumber": "0x2c31b0b", + "depositReceiptVersion": "0x1", + "from": "0xdeaddeaddeaddeaddeaddeaddeaddeaddead0001", + "gas": "0xf4240", + "gasPrice": "0x0", + "hash": "0x03c8f106f18ad94190e763e21b584c5825b2f4c61f1274c0e8abe65b4476cd51", + "input": "0x3db6be2b...", + "mint": "0x0", + "nonce": "0x2c31b0e", + "r": "0x0", + "s": "0x0", + "sourceHash": "0xe40ffb1b9f98a24b21e90e3a3cfe49de1eed195618e943da4d029881d3b3e055", + "to": "0x4200000000000000000000000000000000000015", "transactionIndex": "0x0", - "type": "0x7e" + "type": "0x7e", + "v": "0x0", + "value": "0x0", + "yParity": "0x0" } } ``` diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionByHash.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionByHash.mdx index 09ca5e90b..e44c364ad 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionByHash.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionByHash.mdx @@ -28,18 +28,27 @@ Returns information about a transaction given its hash. Returns `null` for unkno ETH value transferred in wei (hex). Gas provided by the sender (hex). Gas price in wei. For EIP-1559 transactions, this is the effective gas price paid (hex). - EIP-1559 maximum total fee per gas (hex). Present for type `0x2` transactions only. - EIP-1559 maximum priority fee per gas (hex). Present for type `0x2` transactions only. + EIP-1559 maximum total fee per gas (hex). Present for type `0x2` transactions only. Not present on type `0x7e`. + EIP-1559 maximum priority fee per gas (hex). Present for type `0x2` transactions only. Not present on type `0x7e`. ABI-encoded call data. `"0x"` for plain ETH transfers. Transaction type: `"0x0"` Legacy, `"0x1"` Access List, `"0x2"` EIP-1559, `"0x7e"` Deposit (L1→L2). - Chain ID the transaction is valid for. `"0x2105"` for Base Mainnet, `"0x14a34"` for Base Sepolia. - List of addresses and storage keys pre-declared by the transaction (EIP-2930). Present for type `0x1` and `0x2` transactions. + Chain ID the transaction is valid for. `"0x2105"` for Base Mainnet, `"0x14a34"` for Base Sepolia. Not present on type `0x7e`. + List of addresses and storage keys pre-declared by the transaction (EIP-2930). Present for type `0x1` and `0x2` transactions. Not present on type `0x7e`. ECDSA recovery ID (hex). - 32-byte ECDSA signature component r (hex). - 32-byte ECDSA signature component s (hex). + 32-byte ECDSA signature component r (hex). Always `"0x0"` for type `0x7e`. + 32-byte ECDSA signature component s (hex). Always `"0x0"` for type `0x7e`. + Identifies the deposit source (bytes32 hex). Present on type `0x7e` only. + ETH minted on L2 as part of this deposit (hex). Usually `"0x0"`. Present on type `0x7e` only. + Version of the deposit receipt format (hex). Present on type `0x7e` only. + Signature parity (hex). Always `"0x0"` for type `0x7e` deposits. + + +**Transaction types on Base:** Base supports Ethereum-standard types (`0x0` legacy, `0x1` EIP-2930, `0x2` EIP-1559) as well as OP Stack deposit transactions (`0x7e`). Deposit transactions are injected by the sequencer at the start of each block. Fields like `maxFeePerGas`, `accessList`, and `chainId` are not present on `0x7e` transactions; instead they carry `sourceHash`, `mint`, `depositReceiptVersion`, and `yParity`. + + ## Example @@ -47,35 +56,35 @@ Returns information about a transaction given its hash. Returns `null` for unkno { "jsonrpc": "2.0", "method": "eth_getTransactionByHash", - "params": ["0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238"], + "params": ["0x03c8f106f18ad94190e763e21b584c5825b2f4c61f1274c0e8abe65b4476cd51"], "id": 1 } ``` -```json Response +```json Response (type 0x7e deposit) { "jsonrpc": "2.0", "id": 1, "result": { - "hash": "0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238", - "nonce": "0x1b", - "blockHash": "0x3a4e8c5d7f2b1a6e9d0c4f8b3e7a2d5c8f1b4e7a0d3c6f9b2e5a8d1c4f7b0e3", - "blockNumber": "0x12ced28", + "blockHash": "0x491bca01d4bc076d60833dbd973fe031a74e7ae31866bf70d077619e09edb6ff", + "blockNumber": "0x2c31b0b", + "depositReceiptVersion": "0x1", + "from": "0xdeaddeaddeaddeaddeaddeaddeaddeaddead0001", + "gas": "0xf4240", + "gasPrice": "0x0", + "hash": "0x03c8f106f18ad94190e763e21b584c5825b2f4c61f1274c0e8abe65b4476cd51", + "input": "0x3db6be2b...", + "mint": "0x0", + "nonce": "0x2c31b0e", + "r": "0x0", + "s": "0x0", + "sourceHash": "0xe40ffb1b9f98a24b21e90e3a3cfe49de1eed195618e943da4d029881d3b3e055", + "to": "0x4200000000000000000000000000000000000015", "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" + "type": "0x7e", + "v": "0x0", + "value": "0x0", + "yParity": "0x0" } } ``` diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionReceipt.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionReceipt.mdx index cbb40be0e..962d27768 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionReceipt.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionReceipt.mdx @@ -36,8 +36,16 @@ Receipts are only available for mined transactions. To monitor a transaction bef 256-byte bloom filter for the logs in this receipt. Transaction type: `"0x0"` Legacy, `"0x1"` Access List, `"0x2"` EIP-1559, `"0x7e"` Deposit (L1→L2). `"0x1"` for success, `"0x0"` for failure (revert). - Blob gas consumed by this transaction (EIP-4844). `null` for non-blob transactions. Accurately propagated in both finalized and pre-confirmed Flashblock state. - Blob gas price at the time of this transaction (EIP-4844). `null` for non-blob transactions. + Blob gas consumed by this transaction (EIP-4844). `null` for non-blob transactions. + Total L1 data fee paid for this transaction (hex). OP Stack L2 field. + Amount of L1 gas used for the L1 data portion of this transaction (hex). OP Stack L2 field. + L1 gas price at the time of inclusion (hex). OP Stack L2 field. + Blob base fee on L1 at the time of inclusion (hex). OP Stack L2 field. + Scalar applied to the blob base fee for L1 fee calculation (hex). OP Stack L2 field. + Scalar applied to the L1 base fee for L1 fee calculation (hex). OP Stack L2 field. + Base-specific DA footprint scalar (hex). + Nonce used for the deposit transaction (hex). Present on type `0x7e` transactions only. + Deposit receipt version (hex). Present on type `0x7e` transactions only. @@ -72,25 +80,35 @@ The Flashblocks infrastructure stream includes pre-confirmed receipt data inside } ``` -```json Response +```json Response (type 0x7e deposit) { "jsonrpc": "2.0", "id": 1, "result": { - "transactionHash": "0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238", - "transactionIndex": "0x0", - "blockHash": "0x3a4e8c5d7f2b1a6e9d0c4f8b3e7a2d5c8f1b4e7a0d3c6f9b2e5a8d1c4f7b0e3", - "blockNumber": "0x12ced28", - "from": "0xd3CdA913deB6f4967b2Ef66ae97DE114a83bcc01", - "to": "0x4200000000000000000000000000000000000006", - "cumulativeGasUsed": "0x5208", - "effectiveGasPrice": "0x3b9aca00", - "gasUsed": "0x5208", + "blobGasUsed": "0x4154", + "blockHash": "0x491bca01d4bc076d60833dbd973fe031a74e7ae31866bf70d077619e09edb6ff", + "blockNumber": "0x2c31b0b", "contractAddress": null, + "cumulativeGasUsed": "0xb48a", + "daFootprintGasScalar": "0x94", + "depositNonce": "0x2c31b0e", + "depositReceiptVersion": "0x1", + "effectiveGasPrice": "0x0", + "from": "0xdeaddeaddeaddeaddeaddeaddeaddeaddead0001", + "gasUsed": "0xb48a", + "l1BaseFeeScalar": "0x8dd", + "l1BlobBaseFee": "0x582765", + "l1BlobBaseFeeScalar": "0x101c12", + "l1Fee": "0x0", + "l1GasPrice": "0x6bdbf6f", + "l1GasUsed": "0x71d", "logs": [], - "logsBloom": "0x00000000000000000000000000000000...", + "logsBloom": "0x000...000", "status": "0x1", - "type": "0x2" + "to": "0x4200000000000000000000000000000000000015", + "transactionHash": "0x03c8f106f18ad94190e763e21b584c5825b2f4c61f1274c0e8abe65b4476cd51", + "transactionIndex": "0x0", + "type": "0x7e" } } ``` diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_maxPriorityFeePerGas.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_maxPriorityFeePerGas.mdx index 87ccf9e82..943f0b649 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_maxPriorityFeePerGas.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_maxPriorityFeePerGas.mdx @@ -32,7 +32,7 @@ No parameters. { "jsonrpc": "2.0", "id": 1, - "result": "0x1" + "result": "0xf4240" } ``` diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_subscribe.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_subscribe.mdx index c265697ca..5cc73566b 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_subscribe.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_subscribe.mdx @@ -7,7 +7,7 @@ description: 'Creates a real-time WebSocket subscription. Flashblocks endpoints Creates a real-time event subscription over a WebSocket connection. Returns a subscription ID; events are pushed as `eth_subscription` notifications without the client needing to poll. -**Flashblocks:** On `wss://mainnet-preconf.base.org`, `newHeads` emits every ~200ms (once per Flashblock) instead of every ~2 seconds. Three additional subscription types are also available: [`newFlashblockTransactions`](/base-chain/api-reference/flashblocks-api/newFlashblockTransactions), [`pendingLogs`](/base-chain/api-reference/flashblocks-api/pendingLogs), and [`newFlashblocks`](/base-chain/api-reference/flashblocks-api/newFlashblocks). +**Flashblocks:** On `wss://mainnet.flashblocks.base.org/ws`, `newHeads` emits every ~200ms (once per Flashblock) instead of every ~2 seconds. Three additional subscription types are also available: [`newFlashblockTransactions`](/base-chain/api-reference/flashblocks-api/newFlashblockTransactions), [`pendingLogs`](/base-chain/api-reference/flashblocks-api/pendingLogs), and [`newFlashblocks`](/base-chain/api-reference/flashblocks-api/newFlashblocks). ## Parameters diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/web3_clientVersion.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/web3_clientVersion.mdx index 0af5bf30c..9ba7f1c0c 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/web3_clientVersion.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/web3_clientVersion.mdx @@ -6,6 +6,10 @@ description: 'Returns the current client version string.' Returns the version string of the node client software. + +This method is not available on all public endpoints. It returns `-32601 Method not found` on the Sepolia public node (`sepolia.base.org`) but works on mainnet. + + ## Parameters No parameters. @@ -13,7 +17,7 @@ No parameters. ## Returns - The client version string. + The client version string. Format: `/-//base/`. Do not rely on parsing this string as it changes with node software updates. ## Example @@ -32,7 +36,7 @@ No parameters. { "jsonrpc": "2.0", "id": 1, - "result": "op-reth/v1.1.0/linux-x86_64" + "result": "reth/v1.11.3-2ac58a2/x86_64-unknown-linux-gnu/base/v0.8.0" } ``` diff --git a/docs/base-chain/api-reference/flashblocks-api/eth_simulateV1.mdx b/docs/base-chain/api-reference/flashblocks-api/eth_simulateV1.mdx index 18c24eccb..c1b4167d6 100644 --- a/docs/base-chain/api-reference/flashblocks-api/eth_simulateV1.mdx +++ b/docs/base-chain/api-reference/flashblocks-api/eth_simulateV1.mdx @@ -47,9 +47,17 @@ Only available on Flashblocks endpoints: `https://mainnet-preconf.base.org` / `h ## Returns - Array of simulated block results, one per entry in `blockStateCalls`. + Array of simulated block results, one per entry in `blockStateCalls`. Each entry is a full block object with a `calls` field embedded alongside standard block fields. + Simulated block number (hex). + Simulated block hash. + Parent block hash. + Block timestamp (hex). + Gas limit (hex). + Total gas used by the simulated calls (hex). + Base fee per gas (hex). + Always `"0x000...000"` — simulation does not commit state to the trie. Array of individual call results. @@ -97,14 +105,42 @@ curl https://sepolia-preconf.base.org \ "id": 1, "result": [ { + "baseFeePerGas": "0x0", + "blobGasUsed": "0x39d0", "calls": [ { - "status": "0x1", "gasUsed": "0x5208", + "logs": [], "returnData": "0x", - "logs": [] + "status": "0x1" } - ] + ], + "difficulty": "0x0", + "excessBlobGas": "0x0", + "extraData": "0x01000000640000000500000000004c4b40", + "gasLimit": "0x17d78400", + "gasUsed": "0x5208", + "hash": "0x2f2f692821995e39653f63164b2d5d0e0bba66c86c2a199fd3009c0b9906c7b0", + "logsBloom": "0x000...000", + "miner": "0x4200000000000000000000000000000000000011", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "number": "0x2c31c49", + "parentBeaconBlockRoot": "0x64e625f8bc74f78539f962aa09d522c63576ff6ad57170c668882d99e669ef52", + "parentHash": "0x9653660afa4fca3976a21d42ebf849c337e9840993f050fee3affc673a573bf8", + "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", + "requestsHash": "0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "size": "0x2a6", + "stateRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "timestamp": "0x6a10957f", + "transactions": [ + "0xa401668a06b038c488c1abc013676dfe63fc645d182ece34d8b3f40f45689279" + ], + "transactionsRoot": "0x0b1328c457d7a8108ea9f2559142890491b680fdb691720b3d0c857c3d11002c", + "uncles": [], + "withdrawals": [], + "withdrawalsRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" } ] } diff --git a/docs/base-chain/api-reference/flashblocks-api/newFlashblockTransactions.mdx b/docs/base-chain/api-reference/flashblocks-api/newFlashblockTransactions.mdx index 582955e5f..548d48f7b 100644 --- a/docs/base-chain/api-reference/flashblocks-api/newFlashblockTransactions.mdx +++ b/docs/base-chain/api-reference/flashblocks-api/newFlashblockTransactions.mdx @@ -7,7 +7,7 @@ description: 'Subscribe to receive each transaction as it is pre-confirmed into Subscribe via `eth_subscribe` to receive each transaction as it is pre-confirmed into a Flashblock. Pass `true` as the second parameter to receive full transaction and log data. -Only available on Flashblocks WebSocket endpoints: `wss://mainnet-preconf.base.org` / `wss://sepolia-preconf.base.org`. +Only available on Flashblocks WebSocket endpoints: `wss://mainnet.flashblocks.base.org/ws` / `wss://sepolia.flashblocks.base.org/ws`. diff --git a/docs/base-chain/api-reference/flashblocks-api/newFlashblocks.mdx b/docs/base-chain/api-reference/flashblocks-api/newFlashblocks.mdx index 1eea35ba8..09a00fc0b 100644 --- a/docs/base-chain/api-reference/flashblocks-api/newFlashblocks.mdx +++ b/docs/base-chain/api-reference/flashblocks-api/newFlashblocks.mdx @@ -7,7 +7,7 @@ description: 'Subscribe to receive full Flashblock payload stream as each pre-co Subscribe via `eth_subscribe` to receive full block state updates as each Flashblock is built. Each message contains the accumulated pre-confirmed state for the block in progress. -Only available on Flashblocks WebSocket endpoints: `wss://mainnet-preconf.base.org` and `wss://sepolia-preconf.base.org`. +Only available on Flashblocks WebSocket endpoints: `wss://mainnet.flashblocks.base.org/ws` and `wss://sepolia.flashblocks.base.org/ws`. @@ -18,6 +18,10 @@ Requires [base/base](https://github.com/base/base) minimum client version v0.3.1 Each subscription emits **one Flashblock Object per WebSocket message**. Events arrive approximately every 200ms. If your handler performs heavy processing per event, throttle or debounce it to avoid blocking. + +**Binary frames:** All WebSocket frames on the Flashblocks endpoint, including subscription acknowledgements, are sent as binary (opcode `0x2`). Tools that expect JSON text frames (such as `wscat` in default mode) will not be able to parse responses. Use a binary-capable WebSocket client. Additionally, the server begins broadcasting binary Flashblock payload frames immediately upon connection. Data arrives before you send a subscription message. + + ## Parameters @@ -45,7 +49,7 @@ Each subscription emits **one Flashblock Object per WebSocket message**. Events import WebSocket from 'ws'; // Use a Flashblocks-enabled provider WSS endpoint in production -const ws = new WebSocket('wss://mainnet-preconf.base.org'); +const ws = new WebSocket('wss://mainnet.flashblocks.base.org/ws'); ws.on('open', () => { ws.send(JSON.stringify({ diff --git a/docs/base-chain/api-reference/flashblocks-api/pendingLogs.mdx b/docs/base-chain/api-reference/flashblocks-api/pendingLogs.mdx index b17e9c4a3..a58af26d5 100644 --- a/docs/base-chain/api-reference/flashblocks-api/pendingLogs.mdx +++ b/docs/base-chain/api-reference/flashblocks-api/pendingLogs.mdx @@ -7,7 +7,7 @@ description: 'Subscribe to logs from pre-confirmed transactions matching an opti Subscribe via `eth_subscribe` to receive logs from pre-confirmed transactions matching an optional filter. Useful for monitoring contract events with sub-block latency. -Only available on Flashblocks WebSocket endpoints: `wss://mainnet-preconf.base.org` / `wss://sepolia-preconf.base.org`. +Only available on Flashblocks WebSocket endpoints: `wss://mainnet.flashblocks.base.org/ws` / `wss://sepolia.flashblocks.base.org/ws`. diff --git a/docs/base-chain/api-reference/rpc-overview.mdx b/docs/base-chain/api-reference/rpc-overview.mdx index 688e56fcb..eb9cb9e87 100644 --- a/docs/base-chain/api-reference/rpc-overview.mdx +++ b/docs/base-chain/api-reference/rpc-overview.mdx @@ -19,14 +19,14 @@ Base exposes a single, fully EVM-compatible JSON-RPC API across two performance | Tier | HTTP | WSS | | :--- | :--- | :--- | - | Standard | `https://mainnet.base.org` | `wss://mainnet.base.org` | - | Flashblocks | `https://mainnet-preconf.base.org` | `wss://mainnet-preconf.base.org` | + | Standard | `https://mainnet.base.org` | — | + | Flashblocks | `https://mainnet-preconf.base.org` | `wss://mainnet.flashblocks.base.org/ws` | | Tier | HTTP | WSS | | :--- | :--- | :--- | - | Standard | `https://sepolia.base.org` | `wss://sepolia.base.org` | - | Flashblocks | `https://sepolia-preconf.base.org` | `wss://sepolia-preconf.base.org` | + | Standard | `https://sepolia.base.org` | — | + | Flashblocks | `https://sepolia-preconf.base.org` | `wss://sepolia.flashblocks.base.org/ws` | @@ -34,6 +34,10 @@ Base exposes a single, fully EVM-compatible JSON-RPC API across two performance The public endpoints above are rate-limited and not suitable for production traffic. For production use, connect through a [node provider](/base-chain/node-operators/node-providers). + +The standard WebSocket endpoints (`wss://mainnet.base.org`, `wss://sepolia.base.org`) are not currently available. For WebSocket subscriptions (`eth_subscribe`, `newHeads`, `logs`), use the Flashblocks WSS endpoints listed above. + + ## What is the Flashblocks Tier? Flashblocks endpoints are fully EVM-equivalent; every standard `eth_` method works identically. The difference is in what the `pending` block tag returns: From b8398d15c31e7f9dbc859648502b38e223800a8e Mon Sep 17 00:00:00 2001 From: roethke Date: Wed, 27 May 2026 10:08:22 -0700 Subject: [PATCH 02/11] adds changes from v0.9.0 --- .../web3_clientVersion.mdx | 2 +- .../flashblocks-api/eth_simulateV1.mdx | 2 +- .../flashblocks-api-overview.mdx | 45 ++++------- .../newFlashblockTransactions.mdx | 76 ++++++++++++++++++- docs/docs.json | 32 ++++---- 5 files changed, 104 insertions(+), 53 deletions(-) diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/web3_clientVersion.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/web3_clientVersion.mdx index 9ba7f1c0c..0c13fbb5a 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/web3_clientVersion.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/web3_clientVersion.mdx @@ -36,7 +36,7 @@ No parameters. { "jsonrpc": "2.0", "id": 1, - "result": "reth/v1.11.3-2ac58a2/x86_64-unknown-linux-gnu/base/v0.8.0" + "result": "reth/v1.11.3-2ac58a2/x86_64-unknown-linux-gnu/base/v0.9.0" } ``` diff --git a/docs/base-chain/api-reference/flashblocks-api/eth_simulateV1.mdx b/docs/base-chain/api-reference/flashblocks-api/eth_simulateV1.mdx index c1b4167d6..b75268be9 100644 --- a/docs/base-chain/api-reference/flashblocks-api/eth_simulateV1.mdx +++ b/docs/base-chain/api-reference/flashblocks-api/eth_simulateV1.mdx @@ -7,7 +7,7 @@ description: 'Simulates one or more transaction bundles against the current pre- Simulates one or more transaction bundles against the current pre-confirmed Flashblock state. Supports state overrides, multi-block simulation, and optional transfer tracing. -Only available on Flashblocks endpoints: `https://mainnet-preconf.base.org` / `https://sepolia-preconf.base.org`. +Only available on Flashblocks endpoints: `https://mainnet.flashblocks.base.org` / `https://sepolia.flashblocks.base.org`. ## Parameters diff --git a/docs/base-chain/api-reference/flashblocks-api/flashblocks-api-overview.mdx b/docs/base-chain/api-reference/flashblocks-api/flashblocks-api-overview.mdx index e3c88fa5a..50760aca9 100644 --- a/docs/base-chain/api-reference/flashblocks-api/flashblocks-api-overview.mdx +++ b/docs/base-chain/api-reference/flashblocks-api/flashblocks-api-overview.mdx @@ -79,6 +79,7 @@ Contains full block header properties. **Only present in the `index: 0` message* EIP-1559 base fee per gas (hex). Previous RANDAO value used for on-chain randomness. Arbitrary data field set by the sequencer. +Root of the parent beacon block (EIP-4788). ### Diff Object @@ -103,10 +104,10 @@ Contains the incremental block state changes for this specific Flashblock. Prese **The `metadata` object is not stable.** Fields may be added, modified, or removed without prior notice. Do not build production dependencies on it — use the [`diff`](#diff-object) object or query finalized block data via standard RPC instead. +As of v0.9.0 (Azul), `new_account_balances` and `receipts` are no longer present in the `metadata` object. Only `block_number` remains. + Block number as a decimal integer. -Map of addresses to their updated ETH balances (hex). Only includes accounts whose balances changed in this Flashblock. -Map of transaction hashes to their [Receipt](#receipt-object) objects. ### Receipt Object @@ -128,6 +129,13 @@ The abbreviated transaction receipt included in `metadata.receipts`. Check the ` Contract address that emitted the event. Array of indexed event parameters. Topic 0 is typically the event signature hash. ABI-encoded non-indexed event parameters. +Hash of the block containing this log. +Block number in hex. +Unix timestamp of the block as a hex string. OP Stack extension to the standard Ethereum log schema. +Hash of the transaction that emitted this log. +Index of the transaction in the block (hex). +Log's index position within the block (hex). +`true` if the log was removed due to a chain reorg. ### Complete Examples @@ -144,7 +152,8 @@ The abbreviated transaction receipt included in `metadata.receipts`. Check the ` "block_number": "0x158a0e9", "gas_limit": "0x3938700", "timestamp": "0x67bf8332", - "base_fee_per_gas": "0xfa" + "base_fee_per_gas": "0xfa", + "parent_beacon_block_root": "0x15b9e7c8ac4cbe92dafc849ed30a23e91624bbe5cbe199c0ccea3f7de7fc6d49" }, "diff": { "state_root": "0x208fd63edc0681161105f27d03daf9f8c726d8c94e584a3c0696c98291c24333", @@ -154,20 +163,7 @@ The abbreviated transaction receipt included in `metadata.receipts`. Check the ` "withdrawals": [] }, "metadata": { - "block_number": 22585577, - "new_account_balances": { - "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": "0x0" - }, - "receipts": { - "0x07d7f06b06fea714c1d1d446efa2790c6970aa74ee006186a32b5b7dd8ca2d82": { - "type": "0x7e", - "status": "0x1", - "cumulativeGasUsed": "0xab3f", - "logs": [], - "logsBloom": "0x00000000...", - "transactionIndex": "0x0" - } - } + "block_number": 22585577 } } ``` @@ -186,20 +182,7 @@ The abbreviated transaction receipt included in `metadata.receipts`. Check the ` "withdrawals": [] }, "metadata": { - "block_number": 22585577, - "new_account_balances": { - "0x4200000000000000000000000000000000000015": "0x1234" - }, - "receipts": { - "0x7c69632dc315f13a...": { - "type": "0x2", - "status": "0x1", - "cumulativeGasUsed": "0x1234f", - "logs": [], - "logsBloom": "0x00000000...", - "transactionIndex": "0x1" - } - } + "block_number": 22585577 } } ``` diff --git a/docs/base-chain/api-reference/flashblocks-api/newFlashblockTransactions.mdx b/docs/base-chain/api-reference/flashblocks-api/newFlashblockTransactions.mdx index 548d48f7b..973ffb30e 100644 --- a/docs/base-chain/api-reference/flashblocks-api/newFlashblockTransactions.mdx +++ b/docs/base-chain/api-reference/flashblocks-api/newFlashblockTransactions.mdx @@ -11,7 +11,7 @@ Only available on Flashblocks WebSocket endpoints: `wss://mainnet.flashblocks.ba -Requires [base/base](https://github.com/base/base) minimum client version v0.3.1. +Requires [base/base](https://github.com/base/base) minimum client version v0.8.0. @@ -25,19 +25,47 @@ Each subscription emits **one item per WebSocket message**. Events arrive approx - If `true`, each notification includes the full transaction object and associated logs. Defaults to `false` (minimal data only). + If `true`, each notification includes the full transaction object and associated receipt fields. Defaults to `false` (transaction hash only). ## Returns - Hex-encoded subscription ID. + Hex-encoded subscription ID. Each event notification delivers one transaction per message. + + When `full` is `false` (default), each notification is a transaction hash string. + + When `full` is `true`, each notification is an object with the following fields: + + + 32-byte transaction hash. + Sender nonce (hex). + Hash of the Flashblock containing this transaction. + Block number (hex). + Index of this transaction in the block (hex). + 20-byte sender address. + 20-byte recipient address. `null` for contract deployments. + ETH value in wei (hex). + Gas limit (hex). + Gas price in wei (hex). + ABI-encoded call data. + Transaction type: `"0x0"`, `"0x1"`, `"0x2"`, or `"0x7e"` (deposit). + Gas used by this transaction (hex). Added in v0.8.0. + Transaction status: `"0x1"` success, `"0x0"` failure. + Array of log objects emitted by this transaction. + Bloom filter for the logs in this receipt. + Cumulative gas used in the block up to this transaction (hex). + + +**Breaking change in v0.8.0:** The `gasUsed` field changed from a decimal integer to a hexadecimal string. If you parse `gasUsed` as a number, update your code to handle hex strings (e.g. `parseInt(gasUsed, 16)`). + + ## Example -```json Subscribe +```json Subscribe (hash only) {"jsonrpc": "2.0", "id": 1, "method": "eth_subscribe", "params": ["newFlashblockTransactions"]} ``` @@ -48,4 +76,44 @@ Each subscription emits **one item per WebSocket message**. Events arrive approx ```json Subscription ID Response {"jsonrpc": "2.0", "id": 1, "result": "0x1887ec8b9589ccad00000000000532da"} ``` + +```json Event notification (full: false) +{ + "jsonrpc": "2.0", + "method": "eth_subscription", + "params": { + "subscription": "0x1887ec8b9589ccad00000000000532da", + "result": "0x03c8f106f18ad94190e763e21b584c5825b2f4c61f1274c0e8abe65b4476cd51" + } +} +``` + +```json Event notification (full: true) +{ + "jsonrpc": "2.0", + "method": "eth_subscription", + "params": { + "subscription": "0x1887ec8b9589ccad00000000000532da", + "result": { + "blockHash": "0x491bca01d4bc076d60833dbd973fe031a74e7ae31866bf70d077619e09edb6ff", + "blockNumber": "0x2c31b0b", + "cumulativeGasUsed": "0xb48a", + "from": "0xdeaddeaddeaddeaddeaddeaddeaddeaddead0001", + "gas": "0xf4240", + "gasPrice": "0x0", + "gasUsed": "0xb48a", + "hash": "0x03c8f106f18ad94190e763e21b584c5825b2f4c61f1274c0e8abe65b4476cd51", + "input": "0x3db6be2b...", + "logs": [], + "logsBloom": "0x000...000", + "nonce": "0x2c31b0e", + "status": "0x1", + "to": "0x4200000000000000000000000000000000000015", + "transactionIndex": "0x0", + "type": "0x7e", + "value": "0x0" + } + } +} +``` diff --git a/docs/docs.json b/docs/docs.json index 797c6f4e7..9c89b4785 100644 --- a/docs/docs.json +++ b/docs/docs.json @@ -147,32 +147,32 @@ "group": "Ethereum JSON-RPC API", "pages": [ "base-chain/api-reference/ethereum-json-rpc-api/eth_blockNumber", - "base-chain/api-reference/ethereum-json-rpc-api/eth_getBalance", - "base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionCount", - "base-chain/api-reference/ethereum-json-rpc-api/eth_getCode", - "base-chain/api-reference/ethereum-json-rpc-api/eth_getStorageAt", "base-chain/api-reference/ethereum-json-rpc-api/eth_call", - "base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockByNumber", + "base-chain/api-reference/ethereum-json-rpc-api/eth_chainId", + "base-chain/api-reference/ethereum-json-rpc-api/eth_estimateGas", + "base-chain/api-reference/ethereum-json-rpc-api/eth_feeHistory", + "base-chain/api-reference/ethereum-json-rpc-api/eth_gasPrice", + "base-chain/api-reference/ethereum-json-rpc-api/eth_getBalance", "base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockByHash", + "base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockByNumber", "base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockReceipts", - "base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockTransactionCountByNumber", "base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockTransactionCountByHash", - "base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionByHash", + "base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockTransactionCountByNumber", + "base-chain/api-reference/ethereum-json-rpc-api/eth_getCode", + "base-chain/api-reference/ethereum-json-rpc-api/eth_getLogs", + "base-chain/api-reference/ethereum-json-rpc-api/eth_getStorageAt", "base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionByBlockHashAndIndex", "base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionByBlockNumberAndIndex", + "base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionByHash", + "base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionCount", "base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionReceipt", - "base-chain/api-reference/ethereum-json-rpc-api/eth_sendRawTransaction", - "base-chain/api-reference/ethereum-json-rpc-api/eth_gasPrice", "base-chain/api-reference/ethereum-json-rpc-api/eth_maxPriorityFeePerGas", - "base-chain/api-reference/ethereum-json-rpc-api/eth_feeHistory", - "base-chain/api-reference/ethereum-json-rpc-api/eth_estimateGas", - "base-chain/api-reference/ethereum-json-rpc-api/eth_getLogs", - "base-chain/api-reference/ethereum-json-rpc-api/eth_chainId", + "base-chain/api-reference/ethereum-json-rpc-api/eth_sendRawTransaction", + "base-chain/api-reference/ethereum-json-rpc-api/eth_subscribe", "base-chain/api-reference/ethereum-json-rpc-api/eth_syncing", + "base-chain/api-reference/ethereum-json-rpc-api/eth_unsubscribe", "base-chain/api-reference/ethereum-json-rpc-api/net_version", - "base-chain/api-reference/ethereum-json-rpc-api/web3_clientVersion", - "base-chain/api-reference/ethereum-json-rpc-api/eth_subscribe", - "base-chain/api-reference/ethereum-json-rpc-api/eth_unsubscribe" + "base-chain/api-reference/ethereum-json-rpc-api/web3_clientVersion" ] }, { From dc57b110b449cbc7a9d827d4cffb01f705c53446 Mon Sep 17 00:00:00 2001 From: roethke Date: Wed, 27 May 2026 11:19:50 -0700 Subject: [PATCH 03/11] additional v0.9.0 update --- .../ethereum-json-rpc-api/eth_subscribe.mdx | 2 +- .../flashblocks-api-overview.mdx | 4 +- .../newFlashblockTransactions.mdx | 78 ++----------------- .../flashblocks-api/newFlashblocks.mdx | 8 +- .../flashblocks-api/pendingLogs.mdx | 2 +- 5 files changed, 12 insertions(+), 82 deletions(-) diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_subscribe.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_subscribe.mdx index 5cc73566b..c265697ca 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_subscribe.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_subscribe.mdx @@ -7,7 +7,7 @@ description: 'Creates a real-time WebSocket subscription. Flashblocks endpoints Creates a real-time event subscription over a WebSocket connection. Returns a subscription ID; events are pushed as `eth_subscription` notifications without the client needing to poll. -**Flashblocks:** On `wss://mainnet.flashblocks.base.org/ws`, `newHeads` emits every ~200ms (once per Flashblock) instead of every ~2 seconds. Three additional subscription types are also available: [`newFlashblockTransactions`](/base-chain/api-reference/flashblocks-api/newFlashblockTransactions), [`pendingLogs`](/base-chain/api-reference/flashblocks-api/pendingLogs), and [`newFlashblocks`](/base-chain/api-reference/flashblocks-api/newFlashblocks). +**Flashblocks:** On `wss://mainnet-preconf.base.org`, `newHeads` emits every ~200ms (once per Flashblock) instead of every ~2 seconds. Three additional subscription types are also available: [`newFlashblockTransactions`](/base-chain/api-reference/flashblocks-api/newFlashblockTransactions), [`pendingLogs`](/base-chain/api-reference/flashblocks-api/pendingLogs), and [`newFlashblocks`](/base-chain/api-reference/flashblocks-api/newFlashblocks). ## Parameters diff --git a/docs/base-chain/api-reference/flashblocks-api/flashblocks-api-overview.mdx b/docs/base-chain/api-reference/flashblocks-api/flashblocks-api-overview.mdx index 50760aca9..92bc8ee00 100644 --- a/docs/base-chain/api-reference/flashblocks-api/flashblocks-api-overview.mdx +++ b/docs/base-chain/api-reference/flashblocks-api/flashblocks-api-overview.mdx @@ -112,7 +112,9 @@ As of v0.9.0 (Azul), `new_account_balances` and `receipts` are no longer present ### Receipt Object -The abbreviated transaction receipt included in `metadata.receipts`. Check the `type` field to determine transaction type. + +`metadata.receipts` was removed in v0.9.0 (Azul). This schema is preserved for reference if you are running an older node version. On v0.9.0+, use [`eth_getTransactionReceipt`](/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionReceipt) for receipt data. + Transaction type: `0x0` Legacy, `0x1` Access List, `0x2` EIP-1559, `0x7e` Deposit (L1→L2). diff --git a/docs/base-chain/api-reference/flashblocks-api/newFlashblockTransactions.mdx b/docs/base-chain/api-reference/flashblocks-api/newFlashblockTransactions.mdx index 973ffb30e..582955e5f 100644 --- a/docs/base-chain/api-reference/flashblocks-api/newFlashblockTransactions.mdx +++ b/docs/base-chain/api-reference/flashblocks-api/newFlashblockTransactions.mdx @@ -7,11 +7,11 @@ description: 'Subscribe to receive each transaction as it is pre-confirmed into Subscribe via `eth_subscribe` to receive each transaction as it is pre-confirmed into a Flashblock. Pass `true` as the second parameter to receive full transaction and log data. -Only available on Flashblocks WebSocket endpoints: `wss://mainnet.flashblocks.base.org/ws` / `wss://sepolia.flashblocks.base.org/ws`. +Only available on Flashblocks WebSocket endpoints: `wss://mainnet-preconf.base.org` / `wss://sepolia-preconf.base.org`. -Requires [base/base](https://github.com/base/base) minimum client version v0.8.0. +Requires [base/base](https://github.com/base/base) minimum client version v0.3.1. @@ -25,47 +25,19 @@ Each subscription emits **one item per WebSocket message**. Events arrive approx - If `true`, each notification includes the full transaction object and associated receipt fields. Defaults to `false` (transaction hash only). + If `true`, each notification includes the full transaction object and associated logs. Defaults to `false` (minimal data only). ## Returns - Hex-encoded subscription ID. Each event notification delivers one transaction per message. - - When `full` is `false` (default), each notification is a transaction hash string. - - When `full` is `true`, each notification is an object with the following fields: - - - 32-byte transaction hash. - Sender nonce (hex). - Hash of the Flashblock containing this transaction. - Block number (hex). - Index of this transaction in the block (hex). - 20-byte sender address. - 20-byte recipient address. `null` for contract deployments. - ETH value in wei (hex). - Gas limit (hex). - Gas price in wei (hex). - ABI-encoded call data. - Transaction type: `"0x0"`, `"0x1"`, `"0x2"`, or `"0x7e"` (deposit). - Gas used by this transaction (hex). Added in v0.8.0. - Transaction status: `"0x1"` success, `"0x0"` failure. - Array of log objects emitted by this transaction. - Bloom filter for the logs in this receipt. - Cumulative gas used in the block up to this transaction (hex). - + Hex-encoded subscription ID. - -**Breaking change in v0.8.0:** The `gasUsed` field changed from a decimal integer to a hexadecimal string. If you parse `gasUsed` as a number, update your code to handle hex strings (e.g. `parseInt(gasUsed, 16)`). - - ## Example -```json Subscribe (hash only) +```json Subscribe {"jsonrpc": "2.0", "id": 1, "method": "eth_subscribe", "params": ["newFlashblockTransactions"]} ``` @@ -76,44 +48,4 @@ Each subscription emits **one item per WebSocket message**. Events arrive approx ```json Subscription ID Response {"jsonrpc": "2.0", "id": 1, "result": "0x1887ec8b9589ccad00000000000532da"} ``` - -```json Event notification (full: false) -{ - "jsonrpc": "2.0", - "method": "eth_subscription", - "params": { - "subscription": "0x1887ec8b9589ccad00000000000532da", - "result": "0x03c8f106f18ad94190e763e21b584c5825b2f4c61f1274c0e8abe65b4476cd51" - } -} -``` - -```json Event notification (full: true) -{ - "jsonrpc": "2.0", - "method": "eth_subscription", - "params": { - "subscription": "0x1887ec8b9589ccad00000000000532da", - "result": { - "blockHash": "0x491bca01d4bc076d60833dbd973fe031a74e7ae31866bf70d077619e09edb6ff", - "blockNumber": "0x2c31b0b", - "cumulativeGasUsed": "0xb48a", - "from": "0xdeaddeaddeaddeaddeaddeaddeaddeaddead0001", - "gas": "0xf4240", - "gasPrice": "0x0", - "gasUsed": "0xb48a", - "hash": "0x03c8f106f18ad94190e763e21b584c5825b2f4c61f1274c0e8abe65b4476cd51", - "input": "0x3db6be2b...", - "logs": [], - "logsBloom": "0x000...000", - "nonce": "0x2c31b0e", - "status": "0x1", - "to": "0x4200000000000000000000000000000000000015", - "transactionIndex": "0x0", - "type": "0x7e", - "value": "0x0" - } - } -} -``` diff --git a/docs/base-chain/api-reference/flashblocks-api/newFlashblocks.mdx b/docs/base-chain/api-reference/flashblocks-api/newFlashblocks.mdx index 09a00fc0b..1eea35ba8 100644 --- a/docs/base-chain/api-reference/flashblocks-api/newFlashblocks.mdx +++ b/docs/base-chain/api-reference/flashblocks-api/newFlashblocks.mdx @@ -7,7 +7,7 @@ description: 'Subscribe to receive full Flashblock payload stream as each pre-co Subscribe via `eth_subscribe` to receive full block state updates as each Flashblock is built. Each message contains the accumulated pre-confirmed state for the block in progress. -Only available on Flashblocks WebSocket endpoints: `wss://mainnet.flashblocks.base.org/ws` and `wss://sepolia.flashblocks.base.org/ws`. +Only available on Flashblocks WebSocket endpoints: `wss://mainnet-preconf.base.org` and `wss://sepolia-preconf.base.org`. @@ -18,10 +18,6 @@ Requires [base/base](https://github.com/base/base) minimum client version v0.3.1 Each subscription emits **one Flashblock Object per WebSocket message**. Events arrive approximately every 200ms. If your handler performs heavy processing per event, throttle or debounce it to avoid blocking. - -**Binary frames:** All WebSocket frames on the Flashblocks endpoint, including subscription acknowledgements, are sent as binary (opcode `0x2`). Tools that expect JSON text frames (such as `wscat` in default mode) will not be able to parse responses. Use a binary-capable WebSocket client. Additionally, the server begins broadcasting binary Flashblock payload frames immediately upon connection. Data arrives before you send a subscription message. - - ## Parameters @@ -49,7 +45,7 @@ Each subscription emits **one Flashblock Object per WebSocket message**. Events import WebSocket from 'ws'; // Use a Flashblocks-enabled provider WSS endpoint in production -const ws = new WebSocket('wss://mainnet.flashblocks.base.org/ws'); +const ws = new WebSocket('wss://mainnet-preconf.base.org'); ws.on('open', () => { ws.send(JSON.stringify({ diff --git a/docs/base-chain/api-reference/flashblocks-api/pendingLogs.mdx b/docs/base-chain/api-reference/flashblocks-api/pendingLogs.mdx index a58af26d5..b17e9c4a3 100644 --- a/docs/base-chain/api-reference/flashblocks-api/pendingLogs.mdx +++ b/docs/base-chain/api-reference/flashblocks-api/pendingLogs.mdx @@ -7,7 +7,7 @@ description: 'Subscribe to logs from pre-confirmed transactions matching an opti Subscribe via `eth_subscribe` to receive logs from pre-confirmed transactions matching an optional filter. Useful for monitoring contract events with sub-block latency. -Only available on Flashblocks WebSocket endpoints: `wss://mainnet.flashblocks.base.org/ws` / `wss://sepolia.flashblocks.base.org/ws`. +Only available on Flashblocks WebSocket endpoints: `wss://mainnet-preconf.base.org` / `wss://sepolia-preconf.base.org`. From 5402b43864b976456693971748cca10846dc22db Mon Sep 17 00:00:00 2001 From: roethke Date: Wed, 27 May 2026 12:48:25 -0700 Subject: [PATCH 04/11] update preconf urls --- docs/ai-agents/llms-full.txt | 2 +- docs/ai-agents/quickstart/trading.mdx | 2 +- docs/ai-agents/trading/trade-execution.mdx | 8 +++--- .../ethereum-json-rpc-api/eth_call.mdx | 8 +++--- .../ethereum-json-rpc-api/eth_estimateGas.mdx | 8 +++--- .../ethereum-json-rpc-api/eth_getBalance.mdx | 8 +++--- .../eth_getBlockByNumber.mdx | 8 +++--- .../eth_getBlockReceipts.mdx | 6 ++--- .../eth_getBlockTransactionCountByNumber.mdx | 2 +- .../ethereum-json-rpc-api/eth_getCode.mdx | 6 ++--- .../ethereum-json-rpc-api/eth_getLogs.mdx | 8 +++--- .../eth_getStorageAt.mdx | 6 ++--- .../eth_getTransactionCount.mdx | 8 +++--- .../eth_sendRawTransaction.mdx | 6 ++--- .../base_transactionStatus.mdx | 4 +-- .../flashblocks-api/eth_simulateV1.mdx | 2 +- .../flashblocks-api-overview.mdx | 4 +-- .../base-chain/api-reference/rpc-overview.mdx | 25 ++++++++----------- .../flashblocks/app-integration.mdx | 2 +- docs/base-chain/flashblocks/faq.mdx | 2 +- docs/base-chain/llms-full.txt | 2 +- .../troubleshooting-transactions.mdx | 4 +-- .../quickstart/connecting-to-base.mdx | 6 ++--- docs/snippets/TradeExecutionDemo.jsx | 6 ++--- 24 files changed, 68 insertions(+), 75 deletions(-) diff --git a/docs/ai-agents/llms-full.txt b/docs/ai-agents/llms-full.txt index 6e6a89e08..f3fa3321b 100644 --- a/docs/ai-agents/llms-full.txt +++ b/docs/ai-agents/llms-full.txt @@ -108,7 +108,7 @@ l1FeeUpperBound / (gasLimit × maxFeePerGas + l1FeeUpperBound) > 0.8 ``` Key patterns: -- Connect to `mainnet-preconf.base.org` for all reads and submissions +- Connect to `mainnet.base.org` for all reads and submissions - Simulate with `eth_simulateV1` against preconfirmed state before signing - Poll `base_transactionStatus` (not `eth_getTransactionReceipt`) for ~200ms inclusion status - Use `eth_feeHistory` over last 5–10 blocks with reward percentiles `[50, 90]` for fee calibration diff --git a/docs/ai-agents/quickstart/trading.mdx b/docs/ai-agents/quickstart/trading.mdx index 23219ecb1..653ab28f0 100644 --- a/docs/ai-agents/quickstart/trading.mdx +++ b/docs/ai-agents/quickstart/trading.mdx @@ -75,7 +75,7 @@ Buy $50 of ETH on Base With Bankr or CDP Agentic Wallet, built-in swap tools handle the trade — no external DEX integration needed. The wallet constructs, signs, and broadcasts the transaction. -For best execution on Base, use the preconf endpoint to simulate before signing: +For best execution on Base, all public Base endpoints are Flashblocks-enabled — use `eth_simulateV1` with `"pending"` to simulate before signing: ```text Simulate buying $50 of ETH then execute if the price impact is below 1% diff --git a/docs/ai-agents/trading/trade-execution.mdx b/docs/ai-agents/trading/trade-execution.mdx index 6d5675bea..7a813ec5f 100644 --- a/docs/ai-agents/trading/trade-execution.mdx +++ b/docs/ai-agents/trading/trade-execution.mdx @@ -47,13 +47,13 @@ curl -X POST "https://api.wallet.paysponge.com/api/swap" \ ## Execution patterns -### Use the preconf endpoint for all reads and submissions +### Use Flashblocks endpoints for all reads and submissions -Always connect to `mainnet-preconf.base.org` (or `sepolia-preconf.base.org` for testnet) rather than the standard endpoint. This is the only way to access Flashblocks `pending` state, preconfirmed transaction streams, and `base_transactionStatus`. See [Flashblocks endpoints](/base-chain/flashblocks/app-integration#rpc-endpoints) for the full list. +All Base public endpoints (`mainnet.base.org` / `sepolia.base.org`) are Flashblocks-enabled. This gives you access to Flashblocks `pending` state, preconfirmed transaction streams, and `base_transactionStatus`. See [Flashblocks endpoints](/base-chain/flashblocks/app-integration#rpc-endpoints) for details. ### Simulate against preconfirmed state before signing -Call [`eth_simulateV1`](/base-chain/api-reference/flashblocks-api/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/api-reference/flashblocks-api/eth_simulateV1) 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 @@ -96,7 +96,7 @@ Base exposes data that most chains don't provide at this resolution: | Signal | How to access | Opportunity category | | ------ | ------------- | -------------------- | -| Preconfirmed pending block state (200ms early) | `eth_getBlockByNumber("pending")` on preconf endpoint | Detect price impact before block seals | +| Preconfirmed pending block state (200ms early) | `eth_getBlockByNumber("pending")` | Detect price impact before block seals | | Preconfirmed transaction stream | `eth_subscribe("newFlashblockTransactions")` | First-mover on large trades entering the block | | Preconfirmed logs | `eth_subscribe("pendingLogs", { address, topics })` | Detect liquidation thresholds, oracle updates before finality | | Fee spike detection | `eth_feeHistory` trend over last 5 blocks | Identify congestion onset; adjust routing or pause | diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_call.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_call.mdx index a9dcad6dc..89e905ed2 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_call.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_call.mdx @@ -1,13 +1,13 @@ --- title: 'eth_call' sidebarTitle: 'eth_call' -description: 'Executes a message call without creating a transaction. Use pending on a Flashblocks endpoint to simulate against pre-confirmed state.' +description: 'Executes a message call without creating a transaction. Use pending to simulate against pre-confirmed state.' --- Executes a message call immediately without broadcasting a transaction to the network. No gas is consumed on-chain. Used to read contract state or simulate calls. -**Flashblocks:** Query `https://mainnet-preconf.base.org` with `"pending"` to simulate against the current pre-confirmed block state, updated every ~200ms. +**Flashblocks:** Query `https://mainnet.base.org` with `"pending"` to simulate against the current pre-confirmed block state, updated every ~200ms. @@ -48,7 +48,7 @@ Executes a message call immediately without broadcasting a transaction to the ne - Block number in hex, or `"latest"`, `"pending"`, `"safe"`, `"finalized"`, `"earliest"`. Use `"pending"` on a Flashblocks endpoint to call against pre-confirmed state. + Block number in hex, or `"latest"`, `"pending"`, `"safe"`, `"finalized"`, `"earliest"`. Use `"pending"` to call against pre-confirmed state. ## Returns @@ -85,7 +85,7 @@ curl https://mainnet.base.org \ ``` ```bash Flashblocks (pending, ~200ms) -curl https://mainnet-preconf.base.org \ +curl https://mainnet.base.org \ -X POST \ -H "Content-Type: application/json" \ -d '{ diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_estimateGas.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_estimateGas.mdx index 28459b710..49cb8f27f 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_estimateGas.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_estimateGas.mdx @@ -1,13 +1,13 @@ --- title: 'eth_estimateGas' sidebarTitle: 'eth_estimateGas' -description: 'Estimates the gas required for a transaction. Use pending on a Flashblocks endpoint to estimate against pre-confirmed state.' +description: 'Estimates the gas required for a transaction. Use pending to estimate against pre-confirmed state.' --- Returns an estimate of how much gas is required to execute a transaction. The estimate may be larger than the gas actually used at execution time. -**Flashblocks:** Query `https://mainnet-preconf.base.org` with `"pending"` to estimate gas against the current pre-confirmed state, useful when a transaction depends on a prior pre-confirmed one. +**Flashblocks:** Query `https://mainnet.base.org` with `"pending"` to estimate gas against the current pre-confirmed state, useful when a transaction depends on a prior pre-confirmed one. ## Parameters @@ -44,7 +44,7 @@ Returns an estimate of how much gas is required to execute a transaction. The es - Block to estimate against. Optional; defaults to `"latest"`. Use `"pending"` on a Flashblocks endpoint to estimate against pre-confirmed state. + Block to estimate against. Optional; defaults to `"latest"`. Use `"pending"` to estimate against pre-confirmed state. ## Returns @@ -79,7 +79,7 @@ curl https://mainnet.base.org \ ``` ```bash Flashblocks (pending state) -curl https://mainnet-preconf.base.org \ +curl https://mainnet.base.org \ -X POST \ -H "Content-Type: application/json" \ -d '{ diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBalance.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBalance.mdx index db85174f0..1365bc3c8 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBalance.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBalance.mdx @@ -1,13 +1,13 @@ --- title: 'eth_getBalance' sidebarTitle: 'eth_getBalance' -description: 'Returns the ETH balance of an account at a given block. Use the pending tag on a Flashblocks endpoint for 200ms pre-confirmed balances.' +description: 'Returns the ETH balance of an account at a given block. Use the pending tag for 200ms pre-confirmed balances.' --- Returns the ETH balance of an address at a given block. -**Flashblocks:** Query `https://mainnet-preconf.base.org` with `"pending"` to read balances updated every ~200ms — before the block seals. +**Flashblocks:** Query `https://mainnet.base.org` with `"pending"` to read balances updated every ~200ms — before the block seals. ## Parameters @@ -17,7 +17,7 @@ Returns the ETH balance of an address at a given block. - Block number in hex, or `"latest"`, `"pending"`, `"safe"`, `"finalized"`, `"earliest"`. Use `"pending"` on a Flashblocks endpoint for pre-confirmed balance. + Block number in hex, or `"latest"`, `"pending"`, `"safe"`, `"finalized"`, `"earliest"`. Use `"pending"` for pre-confirmed balance. ## Returns @@ -42,7 +42,7 @@ curl https://mainnet.base.org \ ``` ```bash Flashblocks (pending, ~200ms) -curl https://mainnet-preconf.base.org \ +curl https://mainnet.base.org \ -X POST \ -H "Content-Type: application/json" \ -d '{ diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockByNumber.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockByNumber.mdx index 9fcafa81c..6d9ac38f5 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockByNumber.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockByNumber.mdx @@ -7,13 +7,13 @@ description: 'Returns block information by number. On Flashblocks endpoints, the Returns information about a block by its number. -**Flashblocks:** Query `https://mainnet-preconf.base.org` with `"pending"` to fetch the live Flashblock in progress — a real block object updated every ~200ms with new pre-confirmed transactions. The response shape is identical; the block is simply not yet sealed. +**Flashblocks:** Query `https://mainnet.base.org` with `"pending"` to fetch the live Flashblock in progress — a real block object updated every ~200ms with new pre-confirmed transactions. The response shape is identical; the block is simply not yet sealed. ## Parameters - Block number in hex, or `"latest"`, `"pending"`, `"safe"`, `"finalized"`, `"earliest"`. Use `"pending"` on a Flashblocks endpoint to get the in-progress block. + Block number in hex, or `"latest"`, `"pending"`, `"safe"`, `"finalized"`, `"earliest"`. Use `"pending"` to get the in-progress block. @@ -57,7 +57,7 @@ Returns information about a block by its number. ## Flashblock-Specific Response Fields -When querying `"pending"` on a Flashblocks endpoint, the response is a live snapshot of the block being built. A few fields behave differently: +When querying `"pending"`, the response is a live snapshot of the block being built. A few fields behave differently: | Field | Standard `latest` | Flashblocks `pending` | | --- | --- | --- | @@ -83,7 +83,7 @@ curl https://mainnet.base.org \ ``` ```bash Flashblocks (pending, live at ~200ms) -curl https://mainnet-preconf.base.org \ +curl https://mainnet.base.org \ -X POST \ -H "Content-Type: application/json" \ -d '{ diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockReceipts.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockReceipts.mdx index 8de16e2c6..c6dc3d2e7 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockReceipts.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockReceipts.mdx @@ -1,7 +1,7 @@ --- title: 'eth_getBlockReceipts' sidebarTitle: 'eth_getBlockReceipts' -description: 'Returns all transaction receipts for a block. Use pending on a Flashblocks endpoint for pre-confirmed receipts.' +description: 'Returns all transaction receipts for a block. Use pending for pre-confirmed receipts.' --- Returns all transaction receipts for a given block. @@ -11,7 +11,7 @@ This method returns HTTP 403 on the public Base RPC endpoints (`mainnet.base.org -**Flashblocks:** Query `https://mainnet-preconf.base.org` with `"pending"` to get receipts for all pre-confirmed transactions in the current Flashblock. +**Flashblocks:** Query `https://mainnet.base.org` with `"pending"` to get receipts for all pre-confirmed transactions in the current Flashblock. ## Parameters @@ -36,7 +36,7 @@ curl https://mainnet.base.org \ ``` ```bash Flashblocks (pending) -curl https://mainnet-preconf.base.org \ +curl https://mainnet.base.org \ -X POST -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","method":"eth_getBlockReceipts","params":["pending"],"id":1}' ``` diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockTransactionCountByNumber.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockTransactionCountByNumber.mdx index 80d1bce8e..6256640f8 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockTransactionCountByNumber.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockTransactionCountByNumber.mdx @@ -7,7 +7,7 @@ description: 'eth_getBlockTransactionCountByNumber — Returns the number of tra Returns the number of transactions in a block matching the given block number. -**Flashblocks:** Query `https://mainnet-preconf.base.org` with `"pending"` to get the count of pre-confirmed transactions in the current Flashblock. +**Flashblocks:** Query `https://mainnet.base.org` with `"pending"` to get the count of pre-confirmed transactions in the current Flashblock. ## Parameters diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getCode.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getCode.mdx index ff2d89629..a8c7b5c1c 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getCode.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getCode.mdx @@ -1,13 +1,13 @@ --- title: 'eth_getCode' sidebarTitle: 'eth_getCode' -description: 'Returns the contract bytecode at an address. Use pending on a Flashblocks endpoint to detect newly deployed contracts before block finalization.' +description: 'Returns the contract bytecode at an address. Use pending to detect newly deployed contracts before block finalization.' --- Returns the compiled bytecode at a given address. Returns `"0x"` for externally owned accounts (EOAs). -**Flashblocks:** Query `https://mainnet-preconf.base.org` with `"pending"` to detect contract deployments before the block seals. +**Flashblocks:** Query `https://mainnet.base.org` with `"pending"` to detect contract deployments before the block seals. ## Parameters @@ -42,7 +42,7 @@ curl https://mainnet.base.org \ ``` ```bash Flashblocks (pending, ~200ms) -curl https://mainnet-preconf.base.org \ +curl https://mainnet.base.org \ -X POST \ -H "Content-Type: application/json" \ -d '{ diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getLogs.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getLogs.mdx index 2fb5959be..f7cdc8d87 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getLogs.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getLogs.mdx @@ -1,7 +1,7 @@ --- title: 'eth_getLogs' sidebarTitle: 'eth_getLogs' -description: 'Returns logs matching a filter. Use pending on a Flashblocks endpoint to query logs from pre-confirmed transactions.' +description: 'Returns logs matching a filter. Use pending to query logs from pre-confirmed transactions.' --- Returns an array of all logs matching a given filter object. Particularly useful for indexing on-chain events. @@ -11,7 +11,7 @@ Queries spanning large block ranges or high-activity contracts can time out or b -**Flashblocks:** Set `"fromBlock": "pending"` and `"toBlock": "pending"` on a `https://mainnet-preconf.base.org` endpoint to query logs from pre-confirmed transactions, updated every ~200ms. For a real-time stream, consider the [`pendingLogs`](/base-chain/api-reference/flashblocks-api/pendingLogs) WebSocket subscription instead. +**Flashblocks:** Set `"fromBlock": "pending"` and `"toBlock": "pending"` on a `https://mainnet.base.org` endpoint to query logs from pre-confirmed transactions, updated every ~200ms. For a real-time stream, consider the [`pendingLogs`](/base-chain/api-reference/flashblocks-api/pendingLogs) WebSocket subscription instead. ## Parameters @@ -21,7 +21,7 @@ Queries spanning large block ranges or high-activity contracts can time out or b - Start of the block range. Block number in hex or a block tag. Use `"pending"` on a Flashblocks endpoint to include pre-confirmed logs. Defaults to `"latest"`. + Start of the block range. Block number in hex or a block tag. Use `"pending"` to include pre-confirmed logs. Defaults to `"latest"`. End of the block range. Block number in hex or a block tag. Defaults to `"latest"`. @@ -78,7 +78,7 @@ curl https://mainnet.base.org \ ``` ```bash Flashblocks (pending, ~200ms) -curl https://mainnet-preconf.base.org \ +curl https://mainnet.base.org \ -X POST \ -H "Content-Type: application/json" \ -d '{ diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getStorageAt.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getStorageAt.mdx index 3341f85e2..826d189ae 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getStorageAt.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getStorageAt.mdx @@ -1,13 +1,13 @@ --- title: 'eth_getStorageAt' sidebarTitle: 'eth_getStorageAt' -description: 'Returns the value of a storage slot at an address. Use pending on a Flashblocks endpoint for pre-confirmed storage reads.' +description: 'Returns the value of a storage slot at an address. Use pending for pre-confirmed storage reads.' --- Returns the value from a storage position at a given address. -**Flashblocks:** Query `https://mainnet-preconf.base.org` with `"pending"` to read storage updated by pre-confirmed transactions every ~200ms. +**Flashblocks:** Query `https://mainnet.base.org` with `"pending"` to read storage updated by pre-confirmed transactions every ~200ms. ## Parameters @@ -46,7 +46,7 @@ curl https://mainnet.base.org \ ``` ```bash Flashblocks (pending, ~200ms) -curl https://mainnet-preconf.base.org \ +curl https://mainnet.base.org \ -X POST \ -H "Content-Type: application/json" \ -d '{ diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionCount.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionCount.mdx index 21d2508ad..ec3f69d58 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionCount.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionCount.mdx @@ -1,13 +1,13 @@ --- title: 'eth_getTransactionCount' sidebarTitle: 'eth_getTransactionCount' -description: 'Returns the number of transactions sent from an address (the nonce). Use pending on a Flashblocks endpoint to get the pre-confirmed nonce.' +description: 'Returns the number of transactions sent from an address (the nonce). Use pending to get the pre-confirmed nonce.' --- Returns the number of transactions sent from an address. This value is the account's current nonce — the value to use as `nonce` when constructing the next transaction. -**Flashblocks:** Query `https://mainnet-preconf.base.org` with `"pending"` to get the nonce inclusive of all pre-confirmed transactions, updated every ~200ms. This is critical for agents submitting high-frequency transactions to avoid nonce gaps. +**Flashblocks:** Query `https://mainnet.base.org` with `"pending"` to get the nonce inclusive of all pre-confirmed transactions, updated every ~200ms. This is critical for agents submitting high-frequency transactions to avoid nonce gaps. ## Parameters @@ -17,7 +17,7 @@ Returns the number of transactions sent from an address. This value is the accou - Block number in hex, or `"latest"`, `"pending"`, `"safe"`, `"finalized"`, `"earliest"`. Use `"pending"` on a Flashblocks endpoint to include all pre-confirmed transactions in the nonce count. + Block number in hex, or `"latest"`, `"pending"`, `"safe"`, `"finalized"`, `"earliest"`. Use `"pending"` to include all pre-confirmed transactions in the nonce count. ## Returns @@ -42,7 +42,7 @@ curl https://mainnet.base.org \ ``` ```bash Flashblocks (pending nonce, ~200ms) -curl https://mainnet-preconf.base.org \ +curl https://mainnet.base.org \ -X POST \ -H "Content-Type: application/json" \ -d '{ diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_sendRawTransaction.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_sendRawTransaction.mdx index 80a96ea75..3cb233f9a 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_sendRawTransaction.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_sendRawTransaction.mdx @@ -1,13 +1,13 @@ --- title: 'eth_sendRawTransaction' sidebarTitle: 'eth_sendRawTransaction' -description: 'Submits a pre-signed transaction to the network. Submit to a Flashblocks preconf endpoint to get 200ms pre-confirmation.' +description: 'Submits a pre-signed transaction to the network. All Base endpoints are Flashblocks-enabled, providing 200ms pre-confirmation.' --- Submits a pre-signed, RLP-encoded transaction to the network and returns its hash. -**Flashblocks:** Submit to `https://mainnet-preconf.base.org` to have your transaction considered for the next Flashblock (~200ms). Use [`base_transactionStatus`](/base-chain/api-reference/flashblocks-api/base_transactionStatus) to confirm receipt in the mempool and subscribe to [`newFlashblockTransactions`](/base-chain/api-reference/flashblocks-api/newFlashblockTransactions) to detect pre-confirmation. +**Flashblocks:** Submit to `https://mainnet.base.org` to have your transaction considered for the next Flashblock (~200ms). Use [`base_transactionStatus`](/base-chain/api-reference/flashblocks-api/base_transactionStatus) to confirm receipt in the mempool and subscribe to [`newFlashblockTransactions`](/base-chain/api-reference/flashblocks-api/newFlashblockTransactions) to detect pre-confirmation. ## Parameters @@ -41,7 +41,7 @@ curl https://mainnet.base.org \ ``` ```bash Flashblocks (preconf submission) -curl https://mainnet-preconf.base.org \ +curl https://mainnet.base.org \ -X POST -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","method":"eth_sendRawTransaction","params":["0x02f86b82210501843b9aca008477359400825208944200000000000000000000000000000000000006872c68af0bb1400080c001a0..."],"id":1}' ``` diff --git a/docs/base-chain/api-reference/flashblocks-api/base_transactionStatus.mdx b/docs/base-chain/api-reference/flashblocks-api/base_transactionStatus.mdx index 8948d629f..89280c761 100644 --- a/docs/base-chain/api-reference/flashblocks-api/base_transactionStatus.mdx +++ b/docs/base-chain/api-reference/flashblocks-api/base_transactionStatus.mdx @@ -7,7 +7,7 @@ description: 'Checks whether a transaction is in the node mempool. Only availabl 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. -Only available on Flashblocks endpoints: `https://mainnet-preconf.base.org` / `https://sepolia-preconf.base.org`. +Only available on Flashblocks endpoints: `https://mainnet.base.org` / `https://sepolia.base.org`. @@ -36,7 +36,7 @@ Requires [base/base](https://github.com/base/base) minimum client version v0.3.0 ```bash cURL -curl https://mainnet-preconf.base.org \ +curl https://mainnet.base.org \ -X POST -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","method":"base_transactionStatus","params":["0xabc123..."],"id":1}' ``` diff --git a/docs/base-chain/api-reference/flashblocks-api/eth_simulateV1.mdx b/docs/base-chain/api-reference/flashblocks-api/eth_simulateV1.mdx index b75268be9..f722da85a 100644 --- a/docs/base-chain/api-reference/flashblocks-api/eth_simulateV1.mdx +++ b/docs/base-chain/api-reference/flashblocks-api/eth_simulateV1.mdx @@ -76,7 +76,7 @@ Only available on Flashblocks endpoints: `https://mainnet.flashblocks.base.org` ```bash cURL -curl https://sepolia-preconf.base.org \ +curl https://sepolia.base.org \ -X POST \ -H "Content-Type: application/json" \ -d '{ diff --git a/docs/base-chain/api-reference/flashblocks-api/flashblocks-api-overview.mdx b/docs/base-chain/api-reference/flashblocks-api/flashblocks-api-overview.mdx index 92bc8ee00..08a305733 100644 --- a/docs/base-chain/api-reference/flashblocks-api/flashblocks-api-overview.mdx +++ b/docs/base-chain/api-reference/flashblocks-api/flashblocks-api-overview.mdx @@ -4,10 +4,10 @@ sidebarTitle: 'Overview' description: 'Flashblocks-specific RPC methods, WebSocket subscriptions, and the infrastructure stream schema for Base pre-confirmations.' --- -Flashblocks endpoints expose all standard Ethereum JSON-RPC methods plus a set of pre-confirmation-specific additions. These let you read state, simulate transactions, and stream events against sequencer-ordered data up to ~1.8 seconds before a block seals. +All Base public endpoints (`mainnet.base.org` / `sepolia.base.org`) are Flashblocks-enabled, exposing all standard Ethereum JSON-RPC methods plus a set of pre-confirmation-specific additions. These let you read state, simulate transactions, and stream events against sequencer-ordered data up to ~1.8 seconds before a block seals. -All [standard Ethereum JSON-RPC methods](/base-chain/api-reference/rpc-overview) work identically on Flashblocks endpoints. Use the `"pending"` block tag to resolve against pre-confirmed state instead of the transaction pool. See the [Overview](/base-chain/api-reference/rpc-overview#what-is-the-flashblocks-tier) for endpoint URLs and a full explanation of the two tiers. +All [standard Ethereum JSON-RPC methods](/base-chain/api-reference/rpc-overview) support the `"pending"` block tag to resolve against pre-confirmed state instead of the transaction pool. See the [RPC Overview](/base-chain/api-reference/rpc-overview) for endpoint URLs. ## HTTP Methods diff --git a/docs/base-chain/api-reference/rpc-overview.mdx b/docs/base-chain/api-reference/rpc-overview.mdx index eb9cb9e87..c86871ec2 100644 --- a/docs/base-chain/api-reference/rpc-overview.mdx +++ b/docs/base-chain/api-reference/rpc-overview.mdx @@ -17,16 +17,14 @@ Base exposes a single, fully EVM-compatible JSON-RPC API across two performance - | Tier | HTTP | WSS | + | | HTTP | WSS | | :--- | :--- | :--- | - | Standard | `https://mainnet.base.org` | — | - | Flashblocks | `https://mainnet-preconf.base.org` | `wss://mainnet.flashblocks.base.org/ws` | + | RPC | `https://mainnet.base.org` | `wss://mainnet.flashblocks.base.org/ws` | - | Tier | HTTP | WSS | + | | HTTP | WSS | | :--- | :--- | :--- | - | Standard | `https://sepolia.base.org` | — | - | Flashblocks | `https://sepolia-preconf.base.org` | `wss://sepolia.flashblocks.base.org/ws` | + | RPC | `https://sepolia.base.org` | `wss://sepolia.flashblocks.base.org/ws` | @@ -35,15 +33,12 @@ The public endpoints above are rate-limited and not suitable for production traf -The standard WebSocket endpoints (`wss://mainnet.base.org`, `wss://sepolia.base.org`) are not currently available. For WebSocket subscriptions (`eth_subscribe`, `newHeads`, `logs`), use the Flashblocks WSS endpoints listed above. +Standard WebSocket endpoints (`wss://mainnet.base.org`, `wss://sepolia.base.org`) are not currently available. For WebSocket subscriptions (`eth_subscribe`, `newHeads`, `logs`), use the Flashblocks WSS endpoints listed above. -## What is the Flashblocks Tier? +## Flashblocks -Flashblocks endpoints are fully EVM-equivalent; every standard `eth_` method works identically. The difference is in what the `pending` block tag returns: - -- On **Standard** endpoints, `pending` reflects the transaction pool (unmined state). -- On **Flashblocks** endpoints, `pending` reflects the current **pre-confirmed block in progress**, updated every ~200ms with new batches of sequencer-ordered transactions. +All Base public endpoints are Flashblocks-enabled. Every standard `eth_` method works identically, and the `pending` block tag reflects the current **pre-confirmed block in progress**, updated every ~200ms with new batches of sequencer-ordered transactions. Calls like `eth_getBalance`, `eth_getStorageAt`, and `eth_call` run against real sequencer state up to 1.8 seconds before the block seals, with sub-second latency. @@ -51,10 +46,10 @@ Calls like `eth_getBalance`, `eth_getStorageAt`, and `eth_call` run against real ### Ethereum JSON-RPC API -Core Ethereum protocol methods for account queries, block and transaction data, gas estimation, and log filtering. All methods work on both Standard and Flashblocks endpoints. +Core Ethereum protocol methods for account queries, block and transaction data, gas estimation, and log filtering. -Methods marked ✓ support the `"pending"` block tag on Flashblocks endpoints. +Methods marked ✓ support the `"pending"` block tag, which reflects the current pre-confirmed Flashblock in progress. | Method | Description | Flashblocks `pending` | @@ -89,7 +84,7 @@ Methods marked ✓ support the `"pending"` block tag on Flashblocks endpoints. ### Flashblocks API -Pre-confirmation methods for sub-second transaction signals on Base. These methods are only available on Flashblocks endpoints and enable reading state, simulating bundles, and streaming events up to ~1.8 seconds before a block seals. +Pre-confirmation methods for sub-second transaction signals on Base. These methods enable reading state, simulating bundles, and streaming events up to ~1.8 seconds before a block seals. | Method | Description | | --- | --- | diff --git a/docs/base-chain/flashblocks/app-integration.mdx b/docs/base-chain/flashblocks/app-integration.mdx index 9c3b3c890..d7b417fe8 100644 --- a/docs/base-chain/flashblocks/app-integration.mdx +++ b/docs/base-chain/flashblocks/app-integration.mdx @@ -168,7 +168,7 @@ console.log(`Time difference: ${confirmTime - submissionTime}ms`); ```jsx const providerA = new ethers.JsonRpcProvider( - "https://sepolia-preconf.base.org" + "https://sepolia.base.org" ); const wallet = new ethers.Wallet(process.env.PRIVATE_KEY, providerA); diff --git a/docs/base-chain/flashblocks/faq.mdx b/docs/base-chain/flashblocks/faq.mdx index 84afdaabe..c07f4264c 100644 --- a/docs/base-chain/flashblocks/faq.mdx +++ b/docs/base-chain/flashblocks/faq.mdx @@ -118,7 +118,7 @@ For a comprehensive introduction to how Flashblocks work, see the [Flashblocks O ## RPC - + The public endpoint has explicit rate limiting. For production use: - Use a third-party node provider with Flashblocks support (Alchemy, Infura, QuickNode, dRPC) diff --git a/docs/base-chain/llms-full.txt b/docs/base-chain/llms-full.txt index 1e00fd85b..4cd394078 100644 --- a/docs/base-chain/llms-full.txt +++ b/docs/base-chain/llms-full.txt @@ -184,7 +184,7 @@ Sources: - Overview: Flashblocks provide sub-200ms preconfirmed block state on Base, enabling lower-latency reads and faster transaction confirmation signals. - Ecosystem: Review apps that make use of Flashblocks‑related infra and the node providers who support relevant capabilities. - When to consider: High‑frequency reads/writes, market‑sensitive UX, or services where propagation and data freshness are critical. -- Integration: Connect to `mainnet-preconf.base.org` (or `sepolia-preconf.base.org`); use `"pending"` block tag to query preconfirmed state. Follow provider documentation and the Flashblocks docs for setup and operational guidance. +- Integration: Connect to `mainnet.base.org` (or `sepolia.base.org`); use `"pending"` block tag to query preconfirmed state. Follow provider documentation and the Flashblocks docs for setup and operational guidance. - Validation: Measure end‑to‑end latency and consistency across providers as part of your rollout plan. Simple latency probe (conceptual): diff --git a/docs/base-chain/network-information/troubleshooting-transactions.mdx b/docs/base-chain/network-information/troubleshooting-transactions.mdx index 275fa3d57..01866191b 100644 --- a/docs/base-chain/network-information/troubleshooting-transactions.mdx +++ b/docs/base-chain/network-information/troubleshooting-transactions.mdx @@ -93,8 +93,8 @@ To get the fastest possible confirmation, use a Flashblocks-aware RPC endpoint: | Network | Flashblocks RPC | |---------|-----------------| -| Mainnet | `https://mainnet-preconf.base.org` | -| Sepolia | `https://sepolia-preconf.base.org` | +| Mainnet | `https://mainnet.base.org` | +| Sepolia | `https://sepolia.base.org` | These endpoints return transaction receipts as soon as a transaction is included in a Flashblock, rather than waiting for the full L2 block. diff --git a/docs/base-chain/quickstart/connecting-to-base.mdx b/docs/base-chain/quickstart/connecting-to-base.mdx index 17e708dfe..d3d326288 100644 --- a/docs/base-chain/quickstart/connecting-to-base.mdx +++ b/docs/base-chain/quickstart/connecting-to-base.mdx @@ -9,8 +9,7 @@ description: Documentation about Base Mainnet and Base Testnet. This page covers | :-------------------------- | :------------------------------------------------------------------------------------------------------------------------ | | Network Name | Base Mainnet | | Description | The public mainnet for Base. | -| RPC Endpoint | [https://mainnet.base.org](https://mainnet.base.org)
_Rate limited and not for production systems._ | -| Flashblocks RPC Endpoint | [ https://mainnet-preconf.base.org]( https://mainnet-preconf.base.org)
_Rate limited and not for production systems._ | +| RPC Endpoint | [https://mainnet.base.org](https://mainnet.base.org)
_Flashblocks-enabled. Rate limited and not for production systems._ | | Chain ID | 8453 | | Currency Symbol | ETH | | Block Explorer | [https://base.blockscout.com/](https://base.blockscout.com/) | @@ -21,8 +20,7 @@ description: Documentation about Base Mainnet and Base Testnet. This page covers | :-------------------------- | :------------------------------------------------------------------------------------------------------------------------ | | Network Name | Base Sepolia | | Description | A public testnet for Base. | -| RPC Endpoint | [https://sepolia.base.org](https://sepolia.base.org)
_Rate limited and not for production systems._ | -| Flashblocks RPC Endpoint | [ https://sepolia-preconf.base.org]( https://sepolia-preconf.base.org)
_Rate limited and not for production systems._ | +| RPC Endpoint | [https://sepolia.base.org](https://sepolia.base.org)
_Flashblocks-enabled. Rate limited and not for production systems._ | | Chain ID | 84532 | | Currency Symbol | ETH | | Block Explorer | [https://sepolia-explorer.base.org](https://sepolia-explorer.base.org) | diff --git a/docs/snippets/TradeExecutionDemo.jsx b/docs/snippets/TradeExecutionDemo.jsx index 959b3898e..8445c8096 100644 --- a/docs/snippets/TradeExecutionDemo.jsx +++ b/docs/snippets/TradeExecutionDemo.jsx @@ -11,12 +11,12 @@ export const TradeExecutionDemo = () => { }; const steps = [ - { delay: 350, left: [{ t: "> Connect to mainnet-preconf.base.org...", c: "active" }], right: [ + { delay: 350, left: [{ t: "> Connect to mainnet.base.org...", c: "active" }], right: [ { t: "── Flashblocks State ───────────────────", c: "dim" }, { t: "eth_getBlockByNumber(\"pending\")", c: "code" }, - { t: "Host: mainnet-preconf.base.org", c: "muted" }, + { t: "Host: mainnet.base.org", c: "muted" }, ]}, - { delay: 650, left: [{ t: " ✓ preconf endpoint connected (200ms)", c: "success" }], right: [ + { delay: 650, left: [{ t: " ✓ Flashblocks endpoint connected (200ms)", c: "success" }], right: [ { t: "", c: "dim" }, { t: '{"pending": {', c: "code" }, { t: ' "number": "0x1B2A4F2",', c: "code" }, From 47f7a85f34990c63337f85f0206cb97504d27446 Mon Sep 17 00:00:00 2001 From: roethke Date: Wed, 27 May 2026 12:59:13 -0700 Subject: [PATCH 05/11] fix sidebar method naming --- .../eth_getBlockTransactionCountByHash.mdx | 6 +++--- .../eth_getBlockTransactionCountByNumber.mdx | 6 +++--- .../eth_getTransactionByBlockHashAndIndex.mdx | 6 +++--- .../eth_getTransactionByBlockNumberAndIndex.mdx | 6 +++--- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockTransactionCountByHash.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockTransactionCountByHash.mdx index 17308996a..41191fc1f 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockTransactionCountByHash.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockTransactionCountByHash.mdx @@ -1,7 +1,7 @@ --- -title: 'eth_getBlockTxCountByHash' -sidebarTitle: 'eth_getBlockTxCountByHash' -description: 'eth_getBlockTransactionCountByHash — Returns the number of transactions in a block by block hash.' +title: 'eth_getBlockTransactionCountByHash' +sidebarTitle: 'eth_getBlockTransactionCountByHash' +description: 'Returns the number of transactions in a block by block hash.' --- Returns the number of transactions in a block matching the given block hash. diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockTransactionCountByNumber.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockTransactionCountByNumber.mdx index 6256640f8..ce6f542b4 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockTransactionCountByNumber.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockTransactionCountByNumber.mdx @@ -1,7 +1,7 @@ --- -title: 'eth_getBlockTxCountByNumber' -sidebarTitle: 'eth_getBlockTxCountByNumber' -description: 'eth_getBlockTransactionCountByNumber — Returns the number of transactions in a block by block number.' +title: 'eth_getBlockTransactionCountByNumber' +sidebarTitle: 'eth_getBlockTransactionCountByNumber' +description: 'Returns the number of transactions in a block by block number.' --- Returns the number of transactions in a block matching the given block number. diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionByBlockHashAndIndex.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionByBlockHashAndIndex.mdx index 44d359ab4..db7d54d05 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionByBlockHashAndIndex.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionByBlockHashAndIndex.mdx @@ -1,7 +1,7 @@ --- -title: 'eth_getTxByBlockHashAndIndex' -sidebarTitle: 'eth_getTxByBlockHashAndIndex' -description: 'eth_getTransactionByBlockHashAndIndex — Returns a transaction by block hash and index position.' +title: 'eth_getTransactionByBlockHashAndIndex' +sidebarTitle: 'eth_getTransactionByBlockHashAndIndex' +description: 'Returns a transaction by block hash and index position.' --- Returns information about a transaction given a block hash and the transaction's index position within that block. diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionByBlockNumberAndIndex.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionByBlockNumberAndIndex.mdx index b63d1fa2c..b0e19733b 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionByBlockNumberAndIndex.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionByBlockNumberAndIndex.mdx @@ -1,7 +1,7 @@ --- -title: 'eth_getTxByBlockNumberAndIndex' -sidebarTitle: 'eth_getTxByBlockNumberAndIndex' -description: 'eth_getTransactionByBlockNumberAndIndex — Returns a transaction by block number and index position.' +title: 'eth_getTransactionByBlockNumberAndIndex' +sidebarTitle: 'eth_getTransactionByBlockNumberAndIndex' +description: 'Returns a transaction by block number and index position.' --- Returns information about a transaction given a block number and the transaction's index position within that block. From 1c1e729acbc9968e4680c0bf67c71330c6f7a115 Mon Sep 17 00:00:00 2001 From: roethke Date: Wed, 27 May 2026 13:12:43 -0700 Subject: [PATCH 06/11] fix descriptions --- .../api-reference/ethereum-json-rpc-api/eth_getLogs.mdx | 2 +- .../base-chain/api-reference/flashblocks-api/eth_simulateV1.mdx | 2 +- .../api-reference/flashblocks-api/flashblocks-api-overview.mdx | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getLogs.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getLogs.mdx index f7cdc8d87..a1ad0ac6c 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getLogs.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getLogs.mdx @@ -11,7 +11,7 @@ Queries spanning large block ranges or high-activity contracts can time out or b -**Flashblocks:** Set `"fromBlock": "pending"` and `"toBlock": "pending"` on a `https://mainnet.base.org` endpoint to query logs from pre-confirmed transactions, updated every ~200ms. For a real-time stream, consider the [`pendingLogs`](/base-chain/api-reference/flashblocks-api/pendingLogs) WebSocket subscription instead. +**Flashblocks:** Set `"fromBlock": "pending"` and `"toBlock": "pending"` to query logs from pre-confirmed transactions, updated every ~200ms. For a real-time stream, consider the [`pendingLogs`](/base-chain/api-reference/flashblocks-api/pendingLogs) WebSocket subscription instead. ## Parameters diff --git a/docs/base-chain/api-reference/flashblocks-api/eth_simulateV1.mdx b/docs/base-chain/api-reference/flashblocks-api/eth_simulateV1.mdx index f722da85a..8c464acad 100644 --- a/docs/base-chain/api-reference/flashblocks-api/eth_simulateV1.mdx +++ b/docs/base-chain/api-reference/flashblocks-api/eth_simulateV1.mdx @@ -7,7 +7,7 @@ description: 'Simulates one or more transaction bundles against the current pre- Simulates one or more transaction bundles against the current pre-confirmed Flashblock state. Supports state overrides, multi-block simulation, and optional transfer tracing. -Only available on Flashblocks endpoints: `https://mainnet.flashblocks.base.org` / `https://sepolia.flashblocks.base.org`. +Only available on Flashblocks endpoints: `https://mainnet.base.org` / `https://sepolia.base.org`. ## Parameters diff --git a/docs/base-chain/api-reference/flashblocks-api/flashblocks-api-overview.mdx b/docs/base-chain/api-reference/flashblocks-api/flashblocks-api-overview.mdx index 08a305733..33afbd3e2 100644 --- a/docs/base-chain/api-reference/flashblocks-api/flashblocks-api-overview.mdx +++ b/docs/base-chain/api-reference/flashblocks-api/flashblocks-api-overview.mdx @@ -113,7 +113,7 @@ As of v0.9.0 (Azul), `new_account_balances` and `receipts` are no longer present ### Receipt Object -`metadata.receipts` was removed in v0.9.0 (Azul). This schema is preserved for reference if you are running an older node version. On v0.9.0+, use [`eth_getTransactionReceipt`](/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionReceipt) for receipt data. +`metadata.receipts` was removed in v0.9.0 (Azul). This schema is preserved for reference for older node versions. On v0.9.0+, use [`eth_getTransactionReceipt`](/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionReceipt) for polling-based receipt data, or subscribe to [`newFlashblockTransactions`](/base-chain/api-reference/flashblocks-api/newFlashblockTransactions) with `full: true` for a real-time stream of pre-confirmed transaction data including logs. From 368ce96544617cb61858fc0ee9c93476da826fc9 Mon Sep 17 00:00:00 2001 From: roethke Date: Wed, 27 May 2026 13:28:58 -0700 Subject: [PATCH 07/11] update newFlashblockTransactions example response --- .../newFlashblockTransactions.mdx | 102 +++++++++++++++++- 1 file changed, 97 insertions(+), 5 deletions(-) diff --git a/docs/base-chain/api-reference/flashblocks-api/newFlashblockTransactions.mdx b/docs/base-chain/api-reference/flashblocks-api/newFlashblockTransactions.mdx index 582955e5f..87aa12a92 100644 --- a/docs/base-chain/api-reference/flashblocks-api/newFlashblockTransactions.mdx +++ b/docs/base-chain/api-reference/flashblocks-api/newFlashblockTransactions.mdx @@ -4,14 +4,14 @@ sidebarTitle: 'newFlashblockTransactions' description: 'Subscribe to receive each transaction as it is pre-confirmed into a Flashblock. Only available on Flashblocks WebSocket endpoints.' --- -Subscribe via `eth_subscribe` to receive each transaction as it is pre-confirmed into a Flashblock. Pass `true` as the second parameter to receive full transaction and log data. +Subscribe via `eth_subscribe` to receive each transaction as it is pre-confirmed into a Flashblock. Pass `true` as the second parameter to receive full transaction and receipt data. -Only available on Flashblocks WebSocket endpoints: `wss://mainnet-preconf.base.org` / `wss://sepolia-preconf.base.org`. +Only available on Flashblocks WebSocket endpoints: `wss://mainnet.base.org` / `wss://sepolia.base.org`. -Requires [base/base](https://github.com/base/base) minimum client version v0.3.1. +Requires [base/base](https://github.com/base/base) minimum client version v0.8.0. @@ -25,15 +25,58 @@ Each subscription emits **one item per WebSocket message**. Events arrive approx
- If `true`, each notification includes the full transaction object and associated logs. Defaults to `false` (minimal data only). + If `true`, each notification includes the full transaction object with receipt fields embedded. Defaults to `false` (transaction hash only). ## Returns - Hex-encoded subscription ID. + Hex-encoded subscription ID returned on subscribe. +## Notifications + +Each notification is a standard `eth_subscription` message. The `params.result` field depends on the `full` parameter: + +**`full: false`** — `result` is the transaction hash: + +```json +"0xe26de91f9037e903eefe70b28f613019253da603e67e0dbfe2f656dce5444311" +``` + +**`full: true`** — `result` is a transaction object with receipt fields embedded directly (no nested receipt sub-object). Verified live against `base/v0.9.0`: + +Transaction type: `0x0` Legacy, `0x2` EIP-1559, `0x7e` Deposit. +Chain ID (hex). +Sender nonce (hex). +Gas limit (hex). +EIP-1559 max fee per gas (hex). +EIP-1559 max priority fee per gas (hex). +Recipient address. +ETH value transferred (hex). +EIP-2930 access list. +Transaction input data (hex). +Signature r component. +Signature s component. +Signature parity (hex). +Signature v value (hex). +Transaction hash. +Always `null` — transaction is pre-confirmed, not yet in a finalized block. +Block number (hex) of the in-progress Flashblock. +Index within the block (hex). +Sender address. +Effective gas price (hex). +Gas used by this transaction (hex). **Note:** changed from integer to hex string in v0.8.0. +`0x1` for success, `0x0` for failure. +Total gas used in the block up to and including this transaction (hex). +Address of the created contract, or `null`. +Bloom filter of logs (hex). +Array of log objects emitted by this transaction. + + +`gasUsed` is a hex string (e.g. `"0x26132"`), not an integer. This changed in v0.8.0 — update any parsers that expect a numeric value. + + ## Example @@ -48,4 +91,53 @@ Each subscription emits **one item per WebSocket message**. Events arrive approx ```json Subscription ID Response {"jsonrpc": "2.0", "id": 1, "result": "0x1887ec8b9589ccad00000000000532da"} ``` + +```json Notification (full: false) +{ + "jsonrpc": "2.0", + "method": "eth_subscription", + "params": { + "subscription": "0x1887ec8b9589ccad00000000000532da", + "result": "0xe26de91f9037e903eefe70b28f613019253da603e67e0dbfe2f656dce5444311" + } +} +``` + +```json Notification (full: true) +{ + "jsonrpc": "2.0", + "method": "eth_subscription", + "params": { + "subscription": "0x1887ec8b9589ccad00000000000532da", + "result": { + "type": "0x2", + "chainId": "0x2105", + "nonce": "0x34ed", + "gas": "0x7a1200", + "maxFeePerGas": "0x257ab3c", + "maxPriorityFeePerGas": "0x419c7c", + "to": "0x6211a3742cf9d3b6677ecc7fd9dd102ab101d8e2", + "value": "0x0", + "accessList": [], + "input": "0x...", + "r": "0xa7cd30d21c30d4d60d27073c8bbc3ef5778527cf98eae0433e9d1f18c929dd5d", + "s": "0x08c75921e6bb75e19112300f80998f88a2b0f1adc52df2c3597b171d8c8de68d", + "yParity": "0x1", + "v": "0x1", + "hash": "0x6a010a5ce041ff0ee5a926db65d1ef512836cae822d5f2d58b63981bfa40aa7f", + "blockHash": null, + "blockNumber": "0x2c679a1", + "transactionIndex": "0x83", + "from": "0x2ad149d3d3099532d7c25c47cce37db6c4677b3a", + "gasPrice": "0x8de7bc", + "gasUsed": "0x26132", + "status": "0x1", + "cumulativeGasUsed": "0x16cb406", + "contractAddress": null, + "logsBloom": "0x00...00", + "logs": [] + } + } +} +``` From 968c1a15639a4bbf4754722534e6f2ab722530d1 Mon Sep 17 00:00:00 2001 From: roethke Date: Wed, 27 May 2026 14:38:27 -0700 Subject: [PATCH 08/11] address pr comments --- .../flashblocks-api/newFlashblockTransactions.mdx | 2 +- docs/base-chain/api-reference/rpc-overview.mdx | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/base-chain/api-reference/flashblocks-api/newFlashblockTransactions.mdx b/docs/base-chain/api-reference/flashblocks-api/newFlashblockTransactions.mdx index 87aa12a92..0dac07d40 100644 --- a/docs/base-chain/api-reference/flashblocks-api/newFlashblockTransactions.mdx +++ b/docs/base-chain/api-reference/flashblocks-api/newFlashblockTransactions.mdx @@ -7,7 +7,7 @@ description: 'Subscribe to receive each transaction as it is pre-confirmed into Subscribe via `eth_subscribe` to receive each transaction as it is pre-confirmed into a Flashblock. Pass `true` as the second parameter to receive full transaction and receipt data. -Only available on Flashblocks WebSocket endpoints: `wss://mainnet.base.org` / `wss://sepolia.base.org`. +This subscription requires a WebSocket-enabled RPC endpoint. The public Base endpoints (`mainnet.base.org`, `sepolia.base.org`) are HTTP only. Use a [node provider](/base-chain/node-operators/node-providers) such as Alchemy or QuickNode that offers WebSocket support for Base. diff --git a/docs/base-chain/api-reference/rpc-overview.mdx b/docs/base-chain/api-reference/rpc-overview.mdx index c86871ec2..25dc9aa94 100644 --- a/docs/base-chain/api-reference/rpc-overview.mdx +++ b/docs/base-chain/api-reference/rpc-overview.mdx @@ -17,14 +17,14 @@ Base exposes a single, fully EVM-compatible JSON-RPC API across two performance - | | HTTP | WSS | - | :--- | :--- | :--- | - | RPC | `https://mainnet.base.org` | `wss://mainnet.flashblocks.base.org/ws` | + | | HTTP | + | :--- | :--- | + | RPC | `https://mainnet.base.org` | - | | HTTP | WSS | - | :--- | :--- | :--- | - | RPC | `https://sepolia.base.org` | `wss://sepolia.flashblocks.base.org/ws` | + | | HTTP | + | :--- | :--- | + | RPC | `https://sepolia.base.org` | @@ -33,7 +33,7 @@ The public endpoints above are rate-limited and not suitable for production traf -Standard WebSocket endpoints (`wss://mainnet.base.org`, `wss://sepolia.base.org`) are not currently available. For WebSocket subscriptions (`eth_subscribe`, `newHeads`, `logs`), use the Flashblocks WSS endpoints listed above. +The public Base endpoints are **HTTP only**. WebSocket RPC connections (`eth_subscribe`, `newHeads`, `logs`) are not available on public Base endpoints — use a [node provider](/base-chain/node-operators/node-providers) such as Alchemy or QuickNode for WebSocket support. ## Flashblocks From 3637c5621b26456f80fb7b53354c17fb3de307e0 Mon Sep 17 00:00:00 2001 From: roethke Date: Wed, 27 May 2026 14:40:54 -0700 Subject: [PATCH 09/11] fix version --- .../api-reference/flashblocks-api/flashblocks-api-overview.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/base-chain/api-reference/flashblocks-api/flashblocks-api-overview.mdx b/docs/base-chain/api-reference/flashblocks-api/flashblocks-api-overview.mdx index 33afbd3e2..ceeddf464 100644 --- a/docs/base-chain/api-reference/flashblocks-api/flashblocks-api-overview.mdx +++ b/docs/base-chain/api-reference/flashblocks-api/flashblocks-api-overview.mdx @@ -113,7 +113,7 @@ As of v0.9.0 (Azul), `new_account_balances` and `receipts` are no longer present ### Receipt Object -`metadata.receipts` was removed in v0.9.0 (Azul). This schema is preserved for reference for older node versions. On v0.9.0+, use [`eth_getTransactionReceipt`](/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionReceipt) for polling-based receipt data, or subscribe to [`newFlashblockTransactions`](/base-chain/api-reference/flashblocks-api/newFlashblockTransactions) with `full: true` for a real-time stream of pre-confirmed transaction data including logs. +`metadata.receipts` was removed in v0.8.0. This schema is preserved for reference for older node versions. On v0.8.0+, use [`eth_getTransactionReceipt`](/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionReceipt) for polling-based receipt data, or subscribe to [`newFlashblockTransactions`](/base-chain/api-reference/flashblocks-api/newFlashblockTransactions) with `full: true` for a real-time stream of pre-confirmed transaction data including logs. From 73800a32e7e6bc71ba55ceca9d4fd90b0b002360 Mon Sep 17 00:00:00 2001 From: roethke Date: Wed, 27 May 2026 17:08:38 -0700 Subject: [PATCH 10/11] add v0.8.0 notes --- .../eth_getTransactionReceipt.mdx | 12 ------------ .../flashblocks-api/flashblocks-api-overview.mdx | 2 +- 2 files changed, 1 insertion(+), 13 deletions(-) diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionReceipt.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionReceipt.mdx index 962d27768..ea5f50675 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionReceipt.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionReceipt.mdx @@ -55,18 +55,6 @@ Receipts are only available for mined transactions. To monitor a transaction bef | --- | --- | --- | | `-32000` | transaction indexing is in progress | The node is still indexing transactions. Retry after the node has finished syncing. | -## Flashblock-Specific Response Fields - -The Flashblocks infrastructure stream includes pre-confirmed receipt data inside the `metadata.receipts` object of each Flashblock payload before the block seals. This abbreviated receipt matches the full receipt shape: - -| Field | Flashblock `metadata.receipts[hash]` | -| --- | --- | -| `type` | Transaction type (`0x0`, `0x1`, `0x2`, `0x7e`) | -| `status` | `"0x1"` success / `"0x0"` failure | -| `cumulativeGasUsed` | Cumulative gas in block to this transaction | -| `logs` | Emitted log objects | -| `logsBloom` | Bloom filter | -| `transactionIndex` | Index in block | ## Example diff --git a/docs/base-chain/api-reference/flashblocks-api/flashblocks-api-overview.mdx b/docs/base-chain/api-reference/flashblocks-api/flashblocks-api-overview.mdx index ceeddf464..e057c88b4 100644 --- a/docs/base-chain/api-reference/flashblocks-api/flashblocks-api-overview.mdx +++ b/docs/base-chain/api-reference/flashblocks-api/flashblocks-api-overview.mdx @@ -104,7 +104,7 @@ Contains the incremental block state changes for this specific Flashblock. Prese **The `metadata` object is not stable.** Fields may be added, modified, or removed without prior notice. Do not build production dependencies on it — use the [`diff`](#diff-object) object or query finalized block data via standard RPC instead. -As of v0.9.0 (Azul), `new_account_balances` and `receipts` are no longer present in the `metadata` object. Only `block_number` remains. +As of v0.8.0, `new_account_balances` and `receipts` are no longer present in the `metadata` object. Only `block_number` remains. Block number as a decimal integer. From fe7152376fd73127f5f260eca9a58782a8a727d2 Mon Sep 17 00:00:00 2001 From: roethke Date: Thu, 28 May 2026 11:26:26 -0700 Subject: [PATCH 11/11] fix eth_subscribe example responses --- .../ethereum-json-rpc-api/eth_subscribe.mdx | 64 ++++++++++++------- 1 file changed, 41 insertions(+), 23 deletions(-) diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_subscribe.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_subscribe.mdx index c265697ca..a0ed81281 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_subscribe.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_subscribe.mdx @@ -1,14 +1,14 @@ --- title: 'eth_subscribe' sidebarTitle: 'eth_subscribe' -description: 'Creates a real-time WebSocket subscription. Flashblocks endpoints add three extra subscription types and emit newHeads every ~200ms.' +description: 'Creates a real-time WebSocket subscription for new blocks, logs, and pending transactions.' --- Creates a real-time event subscription over a WebSocket connection. Returns a subscription ID; events are pushed as `eth_subscription` notifications without the client needing to poll. - -**Flashblocks:** On `wss://mainnet-preconf.base.org`, `newHeads` emits every ~200ms (once per Flashblock) instead of every ~2 seconds. Three additional subscription types are also available: [`newFlashblockTransactions`](/base-chain/api-reference/flashblocks-api/newFlashblockTransactions), [`pendingLogs`](/base-chain/api-reference/flashblocks-api/pendingLogs), and [`newFlashblocks`](/base-chain/api-reference/flashblocks-api/newFlashblocks). - + +The public Base endpoints (`mainnet.base.org`, `sepolia.base.org`) are **HTTP only**. WebSocket connections are not available on public Base endpoints — use a [node provider](/base-chain/node-operators/node-providers) such as Alchemy or QuickNode that offers WebSocket support for Base. + ## Parameters @@ -33,8 +33,8 @@ Creates a real-time event subscription over a WebSocket connection. Returns a su | Type | Description | Notification payload | | --- | --- | --- | -| `newHeads` | Fires for each new block appended to the chain | Block header object (~200ms on Flashblocks endpoints) | -| `logs` | Fires for each new log matching filter criteria | Log object | +| `newHeads` | Fires for each new block appended to the chain | Full block header object — identical shape to [`eth_getBlockByNumber`](/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockByNumber) with `hydrated: false` | +| `logs` | Fires for each new log matching filter criteria | Log object (see below) | | `newPendingTransactions` | Fires for each new transaction hash added to the mempool | Transaction hash string | ## Returns @@ -89,13 +89,30 @@ Event notifications arrive as unsolicited JSON-RPC messages: "params": { "subscription": "0x1887ec8b9589ccad00000000000532da", "result": { - "number": "0x12ced29", - "hash": "0x4b5e8c5d7f2b1a6e9d0c4f8b3e7a2d5c8f1b4e7a0d3c6f9b2e5a8d1c4f7b0e4", - "parentHash": "0x3a4e8c5d7f2b1a6e9d0c4f8b3e7a2d5c8f1b4e7a0d3c6f9b2e5a8d1c4f7b0e3", - "gasLimit": "0x1c9c380", - "gasUsed": "0xa410", - "timestamp": "0x6783a5d2", - "baseFeePerGas": "0x3b9aca00" + "baseFeePerGas": "0x4c4b40", + "blobGasUsed": "0x5384cc", + "difficulty": "0x0", + "excessBlobGas": "0x0", + "extraData": "0x01000000640000000500000000004c4b40", + "gasLimit": "0x17d78400", + "gasUsed": "0x2155bc7", + "hash": "0x491bca01d4bc076d60833dbd973fe031a74e7ae31866bf70d077619e09edb6ff", + "logsBloom": "0x00...00", + "miner": "0x4200000000000000000000000000000000000011", + "mixHash": "0x47aecef0e1afa26b8e1f428e9a8696cf53d85c62587d8c2cea079c715cd29626", + "nonce": "0x0000000000000000", + "number": "0x2c31b0b", + "parentBeaconBlockRoot": "0x15b9e7c8ac4cbe92dafc849ed30a23e91624bbe5cbe199c0ccea3f7de7fc6d49", + "parentHash": "0x89f4c9e23a2f706f0afa9ca8f770c4b7dcbcb73ba7e9b1c29c4a8c1b90c31d24", + "receiptsRoot": "0x5a428d77344334537d7adaf85a45eb6d7977bc807a68c669f36cb043600da6d2", + "requestsHash": "0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "size": "0x1bb3b", + "stateRoot": "0x1b1525af0cdd504147b89f2a7ce1838ccb70c5439c45ce55522c2e2529801e87", + "timestamp": "0x6a1092f9", + "transactionsRoot": "0x6b9c9fcbdf98a8f4d38a3c16d099e9f0c7b7b474c2f5e044af7c91949c04a234", + "withdrawals": [], + "withdrawalsRoot": "0x57f4414a70a4af5e1a97b5fd8b8c6c870c00e8d9dbc0fde0059ce46e2cd28e5b" } } } @@ -108,18 +125,19 @@ Event notifications arrive as unsolicited JSON-RPC messages: "params": { "subscription": "0x2a7bc8d4e3f5a6b1c2d3e4f5a6b7c8d9", "result": { - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "address": "0xef5997c2cf2f6c138196f8a6203afc335206b3c1", + "blockHash": "0xc104d3b3a4008d854c21f25ff41917e2bff0f0d28eacd348cc664b891d9db00c", + "blockNumber": "0x2c70f90", + "blockTimestamp": "0x6a187c03", + "data": "0x0000000000000000000000000000000000000000000000078e0cf33a1d658000", + "logIndex": "0x0", + "removed": false, "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000d3cda913deb6f4967b2ef66ae97de114a83bcc01", - "0x0000000000000000000000004200000000000000000000000000000000000006" + "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "..." ], - "data": "0x0000000000000000000000000000000000000000000000000000000005f5e100", - "blockNumber": "0x12ced29", - "transactionHash": "0xc903239f...", - "blockHash": "0x4b5e8c5d...", - "logIndex": "0x0", - "removed": false + "transactionHash": "0x9efe32df11e30a345c5908ff4db248895c8e4b0d83c4d368fe14042ebbd3a130", + "transactionIndex": "0x2" } } }