Skip to main content
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 support the "pending" block tag to resolve against pre-confirmed state instead of the transaction pool. See the RPC Overview for endpoint URLs.

HTTP Methods

WebSocket Subscriptions

On a Flashblocks WSS endpoint, eth_subscribe with newHeads emits a new event approximately every 200ms per Flashblock instead of every 2 seconds. Three additional subscription types are also available that are exclusive to Flashblocks endpoints:

Infrastructure Stream

The raw Flashblocks infrastructure stream is the upstream WebSocket feed consumed by Flashblocks-aware RPC nodes. It emits a new message approximately every 200ms as the sequencer pre-confirms transactions.
Applications should not connect directly to the infrastructure stream. These endpoints are for node operators only. App developers should use the WebSocket subscription methods above via a Flashblocks-aware RPC provider.

Flashblock Object

The root structure of each infrastructure stream message.
string
Unique identifier for the block being built. Remains consistent across all Flashblocks within a single full block.
number
Flashblock index within the current block. Starts at 0 (system transactions only). User transactions begin at index 1. Typically reaches 9–10 per block, but may exceed 10 during sequencer timing drift.
Base Object
Block header properties. Only present when index is 0. See Base Object.
Diff Object
Incremental block state changes for this Flashblock. Present in every message. See Diff Object.
Metadata Object
Supplemental data. Unstable — fields may change without notice. See Metadata Object.

Base Object

Contains full block header properties. Only present in the index: 0 message (the first Flashblock of each full block).
string
Hash of the parent block.
string
Address receiving transaction fees (coinbase).
string
Block number in hex.
string
Maximum gas allowed in this block (hex).
string
Unix timestamp of block creation (hex).
string
EIP-1559 base fee per gas (hex).
string
Previous RANDAO value used for on-chain randomness.
string
Arbitrary data field set by the sequencer.
string
Root of the parent beacon block (EIP-4788).

Diff Object

Contains the incremental block state changes for this specific Flashblock. Present in every message.
string
Merkle root of the state trie after applying this Flashblock’s transactions.
string
Hash of the partial block at this Flashblock index. Changes with each Flashblock as more transactions are pre-confirmed.
string
Cumulative gas used up to and including this Flashblock (hex).
string
Cumulative blob gas used (EIP-4844, hex).
string[]
Array of RLP-encoded transactions included in this Flashblock.
array
Validator withdrawals (always empty on Base L2).
string
Merkle root of transaction receipts.
string
Bloom filter for logs in this Flashblock.
string
Merkle root of withdrawals.

Metadata Object

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 object or query finalized block data via standard RPC instead.
As of v0.8.0, new_account_balances and receipts are no longer present in the metadata object. block_number remains. The access_list field is present but always empty.
number
Block number as a decimal integer.

Receipt Object

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 for polling-based receipt data, or subscribe to newFlashblockTransactions with full: true for a real-time stream of pre-confirmed transaction data including logs.
string
Transaction type: 0x0 Legacy, 0x1 Access List, 0x2 EIP-1559, 0x7e Deposit (L1→L2).
string
Transaction status: 0x1 for success, 0x0 for failure.
string
Total gas used in the block up to and including this transaction (hex).
Log[]
Array of event logs emitted by the transaction. See Log Object.
string
Bloom filter for the logs in this receipt.
string
Index of the transaction within the block (hex).

Log Object

string
Contract address that emitted the event.
string[]
Array of indexed event parameters. Topic 0 is typically the event signature hash.
string
ABI-encoded non-indexed event parameters.
string
Hash of the block containing this log.
string
Block number in hex.
string
Unix timestamp of the block as a hex string. Base L2 extension to the standard Ethereum log schema.
string
Hash of the transaction that emitted this log.
string
Index of the transaction in the block (hex).
string
Log’s index position within the block (hex).
boolean
true if the log was removed due to a chain reorg.

Complete Examples

Index 0 — includes the base object (block header):
Index 1–N (diff only) — no base object: