> ## Documentation Index
> Fetch the complete documentation index at: https://docs.monad.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# v0.15.1 Upgrade Instructions

<Warning>
  These instructions are only applicable to **mainnet**. Testnet operators should remain on v0.15.0 until further notice.
</Warning>

## Upgrade notes

v0.15.1 is a **consensus-only patch** on top of v0.15.0. It sets the mainnet activation round for the vote pace change and block reward update (MIP-12) at **Round 89,758,000** (\~Thu Jul 23, 10:30 AM EDT).

<Warning>
  **All mainnet nodes must be upgraded to v0.15.1 before Round 89,758,000.** Nodes not on v0.15.1 at that round will not recognize the new block reward and will fall out of consensus.
</Warning>

<Warning>
  **DB migration required (existing nodes only):** If upgrading from v0.14.5 or earlier, a one-time database metadata migration is required before starting services. See [Step 4](#4-run-db-migration-existing-nodes-only) for the exact command. Nodes already running v0.15.0 can skip Step 4.
</Warning>

## 1. SSH into the node as `root` user

## 2. Stop services

```bash theme={null}
sudo systemctl stop monad-bft monad-execution monad-rpc
```

## 3. Upgrade monad package

<Warning>
  If you encounter issues with the GPG signature (e.g. signatures were invalid), please renew the keys with the command below.
</Warning>

```bash theme={null}
curl -fsSL https://pkg.category.xyz/keys/public-key.asc \
  | gpg --dearmor --yes -o /etc/apt/keyrings/category-labs.gpg
```

```bash theme={null}
sudo apt update && sudo apt install --reinstall monad=0.15.1 -y --allow-downgrades --allow-change-held-packages
sudo apt-mark hold monad
```

<Warning>
  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.
</Warning>

## 4. Run DB migration (existing nodes only)

<Warning>
  This step is required for nodes upgrading from v0.14.5 or earlier. Nodes already running v0.15.0 can skip this step.

  If this step is skipped on an existing database, services will abort on startup with a log message indicating the upgrade is needed — no data corruption occurs. Run the migration and start again.
</Warning>

```bash theme={null}
monad-mpt --storage /dev/triedb --upgrade
```

Expected output: the migration completes in under 1 second with no errors.

## 5. Start services and verify

```bash theme={null}
sudo systemctl start monad-bft monad-execution monad-rpc
sudo systemctl status monad-bft monad-execution monad-rpc --no-pager -l
```

Expected output: All services should show `Active: active (running)`

## 6. Verify the correct version is running

```bash theme={null}
monad-rpc -V
```

Expected output:

```json theme={null}
monad-rpc {"commit":"fb3328c2e...","tag":"v0.15.1","branch":"","modified":true}
```
