Monad's MIP-8 activates on testnet tomorrow.
It comes down to gas costs.
Today, related data sits scattered across the disk, forcing nodes into redundant reads. MIP-8 packs related data together on disk, and the savings flow through to gas pricing.
For users, that means cheaper transactions when they hit the same region of state repeatedly, like a contract reading and writing several of its own values.
Update on MIP-8 rollout
As a reminder, MIP-8 introduces page-aware storage, reorganizing the Merkle trie to assign nearby slots to the same disk page. This is a huge efficiency gain since all db lookups are in units of pages. It is currently super inefficient that nearby slots hash to different disk pages, and MIP-8 solves this problem.
Since the database structure is changing, nodes need to temporarily maintain both the old (slot-based) and new (page-based) databases in parallel, then at a later point need to phase out the old database.
Software upgrades are planned to execute this transition in phases:
- at the start of Phase A, both databases are maintained
- at the start of Phase B, the page-based (new) database becomes the primary one (i.e. the node fails if the page-based database is not running), and MIP-8 takes effect
- at the start of Phase C, the node stops maintaining the slot-based (old) database
Phase A was implemented via v0.15.2. A supermajority of both testnet and mainnet nodes are on this now.
Phase B is being implemented in v0.16.0 for testnet, gated by a specific timestamp. A supermajority of testnet nodes are on this now, with the timestamp set for 2026-08-12 at 14:30 UTC. After this point in time, MIP-8 will be in effect (lower gas costs for multiple state accesses touching the same page) on testnet.
This post describes the migration: