Skip to main content
This page contains upgrade instructions for testnet and mainnet. Always verify which network the instructions apply to.

Upgrade notes

No breaking changes to node.toml config for v0.16.2.

MONAD_TEN is already active

MONAD_TEN (MIP-8, page-encoded storage) activated on mainnet at timestamp 1788359400 (2026-09-02 14:30 UTC) with v0.16.1. v0.16.2 carries the same activation.
Never downgrade from a fork-carrying build. A node running a release older than v0.16.1 will continue applying MONAD_NINE rules after the activation timestamp and will diverge from the network.

Page-encoded timeline still required

As with v0.16.1, a mainnet or testnet node must present either a page-encoded primary (Phase C) or an active secondary timeline (Phase A/B dual-db), or it will abort at startup with:
If you are upgrading from v0.16.1 this is already satisfied. If you are coming from v0.16.0 or earlier, complete the Phase A migration first.

Building from source

v0.16.2 requires the system package libsecp256k1-dev at build time. The published Docker images already include it. This only affects operators building outside those images.

1. SSH into the node as root user

2. Stop services

3. Upgrade monad package

If you encounter issues with the GPG signature (e.g. signatures were invalid), please renew the keys with the command below.
The apt-mark hold monad command prevents the monad package from being upgraded automatically by apt-get upgrade. Without it, unattended system upgrades can install a newer version of monad that has not been approved for your network, causing version mismatch issues.

4. Start services and verify

All services should show Active: active (running). Confirm the node rejoins and advances blocks.

5. Verify the correct version is running

Expected output: