Further reading

Deep Web3
Menu

Base’s Denim Upgrade Retires Flashblocks: Subscription and Node Migration Requirements

Original report published by ChainCatcher on November 9, 2026, at 22:59:43 UTC+8.

Base discontinued Flashblocks with its Denim upgrade, replacing them with a complete canonical block every 200 milliseconds. According to ChainCatcher, Denim activated on Base Sepolia on October 21, 2026, at 18:00 UTC, and on Base mainnet on November 5 at 18:00 UTC.

After activation, both networks stopped producing Flashblocks. Flashblocks subscriptions, WebSocket streams and pending-state interfaces no longer return data.

Subscription and RPC changes

The official documentation cited in the report notes that endpoints such as wss://mainnet.flashblocks.base.org/ws still accept connections but no longer push any data. A successful connection therefore does not mean the stream remains operational.

Developers need to migrate their integrations as follows:

  • Replace eth_subscribe("newFlashblocks") with eth_subscribe("newHeads").
  • Replace pendingLogs with logs.
  • Replace newFlashblockTransactions by subscribing to newHeads and then fetching transactions from the corresponding canonical blocks.
  • Change RPC calls using the "pending" block tag to read the latest canonical block and state instead.

Node versions and configuration

Mainnet nodes require base/base v1.5.1 or later; Sepolia nodes require v1.5.0 or later. Operators also need to remove Flashblocks-related settings, including:

  • RETH_FB_WEBSOCKET_URL
  • --flashblocks-url
  • --max-pending-blocks-depth
  • --flashblocks.ping-interval

Transactions containing a flashblock_index validity predicate will be rejected. The official recommendation is to use block_number to constrain the applicable range instead.

The documented migration shifts integrations from Flashblocks-specific streams and pending-state reads to canonical block notifications and state. The supplied report specifies the operational changes but provides no performance measurements beyond the stated 200-millisecond block interval.

Original article: ChainCatcher