v0.12.5 - testnet re-genesis
These instructions are only applicable to testnet. This can be ignored for mainnet.
Part 1: To Halt
Node operators must stop all monad services before re-genesis.
1. SSH into the node as root user
2. Stop all monad services
systemctl stop monad-bft monad-execution monad-rpc3. Verify services are stopped
systemctl status monad-bft monad-execution monad-rpc --no-pager -lExpected output: All services should show Active: inactive (dead)
Part 2: Re-genesis
Do not proceed until Monad Foundation provides notice that re-genesis is ready.
1. Hard reset
Perform a hard reset to wipe local state and prepare for the new genesis.
bash /opt/monad/scripts/reset-workspace.sh2. Upgrade monad package
sudo apt update && sudo apt install --reinstall monad=0.12.5 -y --allow-downgrades --allow-change-held-packages3. Fetch configuration files
If you have automated remote config fetching configured (v0.12.1+), the new forkpoint.toml and validators.toml files will be automatically fetched on startup.
Ensure REMOTE_VALIDATORS_URL and REMOTE_FORKPOINT_URL are defined in /home/monad/.env. See Soft Reset Instructions for more details on automated configuration fetching.
If not using automated fetching, run the commands below.
MF_BUCKET=https://bucket.monadinfra.comVALIDATORS_FILE=/home/monad/monad-bft/config/validators/validators.toml
curl -sSL $MF_BUCKET/scripts/testnet/download-forkpoint.sh | bashcurl $MF_BUCKET/validators/testnet/validators.toml -o $VALIDATORS_FILEchown -R monad:monad /home/monad/monad-bft/config/4. (Optional) Archivers: Reset archive sources
If you are running an archive node, you must either:
- Wipe your existing archiver sources - Clear all existing archived data to start fresh with the new genesis, or
- Point to a new bucket/source - Configure your archiver to use a new destination for the re-genesis chain
Failure to do so may result in conflicting data from the previous chain.
5. Start services and verify
systemctl start monad-bft monad-execution monad-rpcsystemctl status monad-bft monad-execution monad-rpc --no-pager -lExpected output: All services should show Active: active (running)
6. Verify the correct version is running
monad-rpc --versionExpected output:
monad-rpc {"commit":"a1fe1fbef7ff5d51e1eeb42809457cd68f7525dd","tag":"v0.12.5","branch":"","modified":true}All nodes are expected to initially join the network as public full nodes before transitioning to validators. Monad Foundation will coordinate validator registration and delegation.
Patch notes
Please refer to the public changelog for v0.12.5.