> ## 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.16.4 Upgrade Instructions

<Warning>
  These instructions are applicable to both **mainnet** and **testnet**. Deployment dates will be communicated via official channels.
</Warning>

## Upgrade notes

No breaking changes to `node.toml` config. This is a rolling upgrade on top of v0.16.3.

## 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.16.4 -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. 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
```

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

## 5. Verify the correct version is running

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

Expected output:

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