Originally reported by ChainCatcher on November 9, 2026, at 22:59:43 UTC+8.
Base disabled Flashblocks as part of its Denim upgrade, switching to a complete canonical block every 200 milliseconds. Denim activated on Base Sepolia on October 21, 2026, at 18:00 UTC, and on Base mainnet on November 5, 2026, at 18:00 UTC.
Following activation, both networks stopped producing Flashblocks. Flashblocks subscriptions, WebSocket streams and pending-state interfaces no longer return data. According to the official documentation cited in the report, endpoints such as wss://mainnet.flashblocks.base.org/ws still accept connections but no longer push any data.
Subscription and RPC migration
Developers need to replace Flashblocks-dependent reads with canonical-block equivalents:
- Replace
eth_subscribe("newFlashblocks")witheth_subscribe("newHeads"). - Replace
pendingLogswithlogs. - Replace
newFlashblockTransactionswith anewHeadssubscription, then retrieve transactions from the corresponding canonical blocks. - Change RPC calls using the
"pending"block tag to read the latest canonical block and state instead.
Node requirements and transaction compatibility
Mainnet nodes require base/base v1.5.1 or later; Sepolia nodes require v1.5.0 or later. Operators also need to remove these Flashblocks-related settings:
RETH_FB_WEBSOCKET_URL--flashblocks-url--max-pending-blocks-depth--flashblocks.ping-interval
Transactions with validity conditions that include a flashblock_index predicate will be rejected. The official recommendation is to use block_number to define the applicable range instead.