200ms Blocks
Summary
Base will produce native L2 blocks at a 200ms cadence. Each block has its own number, hash, state root, receipts, and unsafe-to-finalized lifecycle.
Unlike Flashblocks, which expose sub-second updates while building one block, this change runs the full rollup block lifecycle every 200ms.
Deprecation Notice
Flashblocks will be deprecated as part of this release. Because native 200ms blocks deliver the same sub-second confirmation experience directly on the canonical chain, the Flashblocks WebSocket stream is no longer needed and will be removed. Migrate off the Flashblocks WebSocket stream before Denim activation.
Ethereum block headers and block.timestamp remain in whole seconds. The BaseTime predeploy records the sub-second component before user transactions, while optional timestampMs and blockTimestampMs RPC fields expose the complete millisecond timestamp to applications and infrastructure.
Migration Notes
Application developers
Existing contracts and applications remain compatible. Use the BaseTime timestampMs() getter when contracts need same-block millisecond precision; continue using block.timestamp when second-level precision is sufficient.
RPC and indexing providers
Support the optional timestampMs block and header field and blockTimestampMs on mined transactions and logs. Do not infer millisecond timestamps from the whole-second header value.
Node operators
Upgrade to a Denim-compatible release before activation. Plan capacity for the higher native block rate across execution, storage, RPC events, and peer-to-peer propagation.
Related Repos