Enable Flashblocks on Base through Chainstack for 200ms transaction preconfirmations, making your dApp experience up to 10x faster on the network.
Base’s Denim upgrade replaces Flashblocks with canonical 200ms blocks. Denim activated on Base Sepolia on Oct 21, 2026, at 18:00 (UTC), so Flashblocks subscriptions and pending state are no longer available on Base Sepolia. Base Mainnet serves Flashblocks until Denim activates there in November 2026, which is Base’s current target. To move your integration to newHeads, logs, and regular RPC calls, see Base’s migration guide.
Get started with a reliable Base RPC endpoint to use Flashblocks.Flashblocks is a block builder sidecar for Optimism Stack chains. This sidecar is called Rollup-Boost. It’s designed and built by Flashbots—the same team that originally productized MEV on Ethereum. Co-designed with Uniswap Labs and OP Labs.The Base team has implemented Flashblocks on the Base chain. Flashblocks went live on the Base Mainnet in July 2025.The Flashblocks implementation on the Base chain is two-part:
Sequencer side — The Rollup-Boost sidecar is installed next to the Base sequencer by the Base team.
Let’s call an eth_getBlockByNumber with the pending tag to get the latest block data on a Flashblocks-enabled and non-Flashblocks-enabled node at the same time as block 33228756 was being formed on the Base mainnet.See the results in the Chainstack Labs base-flashblocks-transaction-latency-test repository:
eth-get-block-by-number-pending-examples/preconfirmed-flashblock.log — the result of running "method":"eth_getBlockByNumber","params":["pending",true] on a Flashblocks-enabled node as block 33228756 was forming.
eth-get-block-by-number-pending-examples/confirmed-block.log — the result of running "method":"eth_getBlockByNumber","params":["pending",true] on a non-Flashblocks-enabled node as block 33228756 was formed.
You will see the key differences in the results:
Transaction count — 52 in the Flashblock vs. 167 in the fully formed block.
stateRoot — empty in the Flashblock vs. computed in the fully formed block. An empty stateRoot at this point means there’s no final chain state for the block, hence “preconfirmation” in the name.
blockHash — different in the Flashblock and the fully formed block. The finalized transactions will have the hash of the fully formed block attributed to them.
receiptsRoot — different in the Flashblock and the fully formed block.