Skip to main content

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 and blocksync.

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

  1. Download a recent snapshot of the network state. As of Nov 2025, this is about 60 GB on testnet but is very small on mainnet.
  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 2-5 minutes assuming snapshot is a few hours old)
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.

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 /opt/monad/scripts/reset-workspace.sh
  3. Download and import TrieDB database snapshot.

    info

    On mainnet, database snapshot restoration takes from 1 to 5 minutes.
    As the blockchain grows over time, snapshot restoration takes longer.

    Using Monad Foundation provider:

    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
  4. Fetch latest forkpoint.toml and validators.toml runtime files.

    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 for configuration details. If not configured, you may run the below commands.

    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 services

    systemctl start monad-bft monad-execution monad-rpc