Flashblocks Support on Base

Blockdaemon Base nodes support Flashblocks — Base's pre-confirmation streaming protocol — on both Mainnet and Sepolia Testnet. Flashblocks lets your application read transaction and state data up to 200ms after sequencer acceptance, well before a block is sealed.

What is Flashblocks?

The Base sequencer continuously emits sub-block updates over a WebSocket relay. Each update (a "Flashblock") carries the latest pending transactions and their resulting state changes. Blockdaemon nodes subscribe to this relay and expose the pre-confirmed state through the standard Ethereum JSON-RPC interface, with no new SDK or transport required.

Applications that read pending state get data that is seconds fresher than latest, with no change to how they construct requests.

Networks

NetworkStatus
Base MainnetSupported
Base Sepolia TestnetSupported

Using Flashblocks

The pending Block Tag

The primary way to access Flashblocks data is the pending block tag. On a standard node, pending reflects the mempool. On a Flashblocks-enabled node, it resolves to the latest pre-confirmed Flashblock state. If no Flashblock is available, it silently falls back to latest.

All standard methods that accept a block parameter support this:

MethodFlashblocks Behavior with pending
eth_getBlockByNumberReturns the current in-progress Flashblock as a block object
eth_getBalanceReturns balance including all pending Flashblock state changes
eth_getTransactionCountReturns canonical nonce plus any delta from pending Flashblock transactions
eth_getTransactionByHashReturns pre-confirmed transactions before the block is sealed
eth_getTransactionReceiptReturns pre-confirmation receipts
eth_callExecutes against canonical state with Flashblock state injected as overrides
eth_estimateGasSame as eth_call — canonical block with Flashblock state overrides
eth_simulateV1Prepends Flashblock state overrides into each blockStateCalls entry
eth_getLogsWhen toBlock is pending: returns confirmed logs plus current Flashblock logs, deduplicated
eth_getBlockTransactionCountByNumberReturns the transaction count of the current in-progress Flashblock

Here's an example for reading a pre-confirmed balance:

{
  "jsonrpc": "2.0",
  "method": "eth_getBalance",
  "params": ["0xYourAddress", "pending"],
  "id": 1
}

WebSocket Subscriptions

WebSocket connections are available at the /websocket path on the node endpoint. See How to Connect to Base for connection details.

Three Flashblocks-specific subscription kinds are available via eth_subscribe:

newFlashblocks

Emits the full Flashblock object every ~200ms as new pre-confirmed state arrives.

{ "jsonrpc": "2.0", "method": "eth_subscribe", "params": ["newFlashblocks"], "id": 1 }

newFlashblockTransactions

Emits transactions from the latest Flashblock as they arrive. Pass false (or omit) for transaction hashes only; pass true for full transaction objects including receipt fields (logs, gasUsed, status, cumulativeGasUsed, contractAddress, logsBloom).

{ "jsonrpc": "2.0", "method": "eth_subscribe", "params": ["newFlashblockTransactions", true], "id": 1 }

A log filter object can be passed instead of true to receive only transactions whose logs match a given address and/or topics.

pendingLogs

Emits individual log objects from the latest Flashblock. Accepts an optional filter (same format as eth_getLogs) to scope by address and topics.

{
  "jsonrpc": "2.0",
  "method": "eth_subscribe",
  "params": ["pendingLogs", { "address": "0xContractAddress", "topics": ["0xEventSignature"] }],
  "id": 1
}

Base-Specific Methods

🚧

Upcoming

eth_sendRawTransactionSync and base_transactionStatus are being enabled in an upcoming deployment.

eth_sendRawTransactionSync

Sends a signed raw transaction and waits (up to 6,000ms) for it to appear in a Flashblock or the canonical chain before returning a receipt. Useful for applications that need immediate confirmation of sequencer acceptance without polling.

{
  "jsonrpc": "2.0",
  "method": "eth_sendRawTransactionSync",
  "params": ["0xSignedRawTx"],
  "id": 1
}

base_transactionStatus

Returns whether a transaction hash is known to the node (Known) or not (Unknown). Checks the local mempool and proxies to the sequencer when available.

{
  "jsonrpc": "2.0",
  "method": "base_transactionStatus",
  "params": ["0xTxHash"],
  "id": 1
}
{ "jsonrpc": "2.0", "id": 1, "result": { "status": "Known" } }

👋 Need Help?

Contact us through email or our support page for any issues, bugs, or assistance you may need.


Did this page help you?