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:
- 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.
- Initialize the DB from the snapshot (this can take up to an hour on testnet and a few minutes on mainnet)
- Catch up to the tip of the chain via statesync / blocksync (typically 2-5 minutes assuming snapshot is a few hours old)
Category Labs is one snapshot provider. If there is an issue, please refer to Discord validator channels for other snapshot providers.
Prerequisite
- aria2 must be installed on your node
Instructions
-
SSH into the node as
monaduser. -
Run
reset-workspace.shto ensure data is deleted.bash /opt/monad/scripts/reset-workspace.sh -
Download
restore_from_snapshot.shfrom theCL_BUCKETand execute it.# CL testnetCL_BUCKET=https://pub-b0d0d7272c994851b4c8af22a766f571.r2.devcurl -sSL $CL_BUCKET/scripts/testnet/restore_from_snapshot.sh | bash# CL mainnetCL_BUCKET=https://pub-b0d0d7272c994851b4c8af22a766f571.r2.devcurl -sSL $CL_BUCKET/scripts/mainnet/restore_from_snapshot.sh | bashinfoAlternatively, you can use the MF snapshot if you are facing issues with the CL snapshot:
# MF testnetMF_BUCKET=https://bucket.monadinfra.comcurl -sSL $MF_BUCKET/scripts/testnet/restore-from-snapshot.sh | bash# MF mainnetMF_BUCKET=https://bucket.monadinfra.comcurl -sSL $MF_BUCKET/scripts/mainnet/restore-from-snapshot.sh | bash -
Fetch new
forkpoint.tomlandvalidators.toml.Note: For automatic remote config fetching (v0.12.1+), ensure
REMOTE_VALIDATORS_URLandREMOTE_FORKPOINT_URLare defined in your.envfile. See Full Node Installation for configuration details. If not configured, you may run the below commands.# testnetMF_BUCKET=https://bucket.monadinfra.comcurl -sSL $MF_BUCKET/scripts/testnet/download-forkpoint.sh | bashcurl -o ~/monad-bft/config/validators/validators.toml $MF_BUCKET/validators/testnet/validators.toml# mainnetMF_BUCKET=https://bucket.monadinfra.comcurl -sSL $MF_BUCKET/scripts/mainnet/download-forkpoint.sh | bashcurl -o ~/monad-bft/config/validators/validators.toml $MF_BUCKET/validators/mainnet/validators.toml -
Start all services
systemctl start monad-bft monad-execution monad-rpc -
Verify the systemd services are running:
systemctl list-units --type=service monad-bft.service monad-execution.service monad-rpc.serviceUNIT LOAD ACTIVE SUB DESCRIPTIONmonad-bft.service loaded active running "Service file for Monad BFT"monad-execution.service loaded active running "Service file for Monad Execution"monad-rpc.service loaded active running "Service file for Monad RPC"# Check logs for a specific process, e.g. bftjournalctl -u monad-bft