Flashblocks Overview
Flashblocks are 200ms preconfirmed sub-blocks streamed by the Base sequencer, giving applications fee-ordered state updates ten times per standard 2-second block.
What are Flashblocks
Section titled “What are Flashblocks”Flashblocks add 200ms incremental state updates to Base, cutting perceived latency for end users.
The mechanism, built with Flashbots, streams sub-blocks inside the regular 2-second block interval. Apps see preconfirmations from the sequencer well before the full block is gossiped to the network.
Key concepts
Section titled “Key concepts”| Term | Definition |
|---|---|
| Flashblock | A 200ms sub-block carrying part of the full block’s transactions. |
| Preconfirmation | An ultra-fast signal that a transaction will be included, before the full block is sealed. |
| Full Block | A sequence of 10 Flashblocks combined into the complete 2-second block. |
Each block contains 10 Flashblocks (indexes 1-10), arriving every 200ms. Index 0 exists but only carries system transactions. See Gas and transaction sizing for how the gas budget evolves across the window.
Architecture
Section titled “Architecture”For details on the sequencer system and the Flashblocks infrastructure components (rollup-boost, op-rbuilder, websocket-proxy, and base), see the Architecture page.
Transaction lifecycle
Section titled “Transaction lifecycle”When a transaction is sent to Base, this is the path it takes:
1. Submission
Section titled “1. Submission”User → DNS (mainnet.base.org) → Load Balancer → Proxyd → MempoolThe transaction lands in the private mempool and is added to the txpool as pending.
2. Distribution
Section titled “2. Distribution”The mempool keeps P2P connections open with execution layers (op-reth, op-rbuilder), keeping all pending transactions in sync for block building.
3. Block building
Section titled “3. Block building”In each 200ms loop, op-rbuilder selects transactions using:
- Transaction fee — transactions are ordered fee-first (highest first).
- Gas limit and remaining capacity — Flashblock
jmay use up toj/10of the total block gas limit.
4. Block building algorithm
Section titled “4. Block building algorithm”For each 2-second block, the builder runs:
FOR each flashblock j FROM 0 TO 10: 1. Wait until next 200ms window 2. Calculate available gas: (j / 10) × total_block_gas_limit 3. Sort pending transactions by fee (descending) 4. Select top transactions that fit within available gas 5. Execute transactions and update state 6. Stream flashblock to websocket-proxy5. Preconfirmation delivery
Section titled “5. Preconfirmation delivery”Once a transaction is included in a Flashblock, the builder streams it to the websocket-proxy. RPC nodes subscribe to that stream, so a Flashblocks-aware RPC method (such as eth_getTransactionReceipt) can return preconfirmed data straight from the node’s cache.
Further reading
Section titled “Further reading”- FAQ — common questions about Flashblocks.
- Block Building — detailed block ordering configuration.
- Flashblocks deep dive — engineering blog post with implementation details.