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

# Hard Reset Instructions

Hard reset wipes the local state and downloads the most recent chain snapshot. After the snapshot
is applied, the node catches up using [statesync](/monad-arch/consensus/statesync) and
[blocksync](/monad-arch/consensus/blocksync).

Hard reset is the most powerful means of resetting a node. Steps are:

1. Download a recent snapshot of the network state.
2. Initialize the DB from the snapshot (this can take up to an hour on testnet and a few minutes on mainnet)
3. Catch up to the tip of the chain via statesync / blocksync (typically \< 5 minutes assuming
   snapshot is a few hours old)

<Warning title="Snapshot Restore">
  **Monad Foundation** and **Category Labs** are snapshot providers.
  If there is an issue, please refer to Discord validator channels for more snapshot providers.
</Warning>

## Prerequisite

* `aria2` must be installed on the node

## Instructions

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

2. Stop the monad services and reset the workspace to delete all runtime data.
   ```bash theme={null}
   bash /opt/monad/scripts/reset-workspace.sh
   ```

3. Download and import TrieDB database snapshot.

   <Tabs>
     <Tab title="Mainnet">
       <Info>
         On mainnet, database snapshot restoration **takes from 1 to 5 minutes**.
         As the blockchain grows over time, snapshot restoration takes longer.
       </Info>

       Using Monad Foundation provider:

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

       Using Category Labs provider:

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

     <Tab title="Testnet">
       <Info>
         On testnet, database snapshot restoration **takes under 5 minutes**.
         As the blockchain grows over time, snapshot restoration takes longer.
       </Info>

       Using Monad Foundation provider:

       ```bash theme={null}
       MF_BUCKET=https://bucket.monadinfra.com
       curl -sSL $MF_BUCKET/scripts/testnet/restore-from-snapshot.sh | bash
       ```

       Using Category Labs provider:

       ```
       CL_BUCKET=https://pub-b0d0d7272c994851b4c8af22a766f571.r2.dev
       curl -sSL $CL_BUCKET/scripts/testnet/restore_from_snapshot.sh | bash
       ```
     </Tab>
   </Tabs>

4. Fetch latest `forkpoint.toml` and `validators.toml` runtime files.

   <Info title="Automatic Fetch">
     This step is optional if automatic remote config fetching is configured (v0.12.1+).
     Ensure `REMOTE_VALIDATORS_URL` and `REMOTE_FORKPOINT_URL` are defined in `/home/monad/.env` file.
     See [Full Node Installation](/node-ops/full-node-installation#remote-configuration-fetching-v0121) for configuration details.
     If not configured, you may run the below commands.
   </Info>

   <Tabs>
     <Tab title="Mainnet">
       ```bash theme={null}
       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
       ```
     </Tab>

     <Tab title="Testnet">
       ```bash theme={null}
       MF_BUCKET=https://bucket.monadinfra.com
       VALIDATORS_FILE=/home/monad/monad-bft/config/validators/validators.toml

       curl -sSL $MF_BUCKET/scripts/testnet/download-forkpoint.sh | bash
       curl $MF_BUCKET/validators/testnet/validators.toml -o $VALIDATORS_FILE
       chown monad:monad $VALIDATORS_FILE
       ```
     </Tab>
   </Tabs>

5. Start all services
   ```bash theme={null}
   systemctl start monad-bft monad-execution monad-rpc
   ```
