> For the complete documentation index, see [llms.txt](https://services.stakeangle.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://services.stakeangle.com/mainnets/monad/hard-reset-guide.md).

# Hard Reset Guide

A **hard reset** wipes all local node data and restores the most recent network snapshot.\
This is the fastest and most reliable way to recover a degraded, stuck, or outdated node.

After a hard reset:

1. A fresh snapshot is downloaded.
2. The TrieDB database is rebuilt (1–5 minutes on mainnet).
3. The node catches up using statesync and blocksync (2–5 minutes for a recent snapshot).

### 1. Prerequisites

Ensure `aria2` is installed:

```bash
apt install -y aria2
```

***

### 2. Stop Services & Reset Workspace

SSH into the server as **root** and run:

```bash
bash /opt/monad/scripts/reset-workspace.sh
```

This clears:

* Ledger data
* Forkpoint history
* Validator sets
* TrieDB state
* Runtime artifacts

***

### 3. Download & Import the Latest TrieDB Snapshot

Choose **one provider** (Monad Foundation or Category Labs).

#### **Monad Foundation snapshot:**

```bash
MF_BUCKET=https://bucket.monadinfra.com
curl -sSL $MF_BUCKET/scripts/mainnet/restore-from-snapshot.sh | bash
```

#### **Category Labs snapshot:**

```bash
CL_BUCKET=https://pub-b0d0d7272c994851b4c8af22a766f571.r2.dev
curl -sSL $CL_BUCKET/scripts/mainnet/restore_from_snapshot.sh | bash
```

***

### 4. Fetch Latest Forkpoint & Validators Files

*(Skip if your node already uses automatic remote config fetching via REMOTE\_VALIDATORS\_URL and REMOTE\_FORKPOINT\_URL.)*

#### Manual fetch:

```bash
MF_BUCKET=https://bucket.monadinfra.com
VALIDATORS_FILE=/home/monad/monad-bft/config/validators/validators.toml

curl -sSL $MF_BUCKET/scripts/mainnet/download-forkpoint.sh | bash
curl $MF_BUCKET/validators/mainnet/validators.toml -o $VALIDATORS_FILE
chown monad:monad $VALIDATORS_FILE
```

***

### 5. Start All Monad Services

```bash
systemctl start monad-bft monad-execution monad-rpc
```

Check logs to confirm syncing:

```bash
journalctl -u monad-bft -f
journalctl -u monad-execution -f
```

When statesync completes, the node will automatically switch to blocksync and reach chain tip.
