NG
Monad

Monad

Setup Guide

Official documentation is available here.

Requires a bare-metal server with Ubuntu 24.04+, Linux kernel >= 6.8.0.60 (avoid 6.8.0.136–6.8.0.139), HyperThreading/SMT disabled in BIOS, and a dedicated NVMe drive for the TrieDB. See hardware requirements.

All commands below are run as the root user.

Before the first start, follow the Hard Reset guide to import a recent snapshot — syncing from genesis is not practical.

Installation

Update the system and install dependencies:

Add the package repository and install the testnet build of monad:

Create the monad service user and config directories:

Partition your dedicated NVMe drive for the TrieDB (verify with lsblk first — this wipes the drive) and format it:

Open the consensus P2P port in the firewall:

Download the testnet configuration for a full node:

Set a keystore password and generate your node's keys — back up /opt/monad/backup/ to an external location, it contains your node identity:

Edit /home/monad/monad-bft/config/node.toml:

  • beneficiary — leave the burn address 0x0000000000000000000000000000000000000000 for a full node
  • node_name — set something unique, e.g. full_<PROVIDER>-1
  • confirm enable_client = true under [fullnode_raptorcast] and expand_to_group = true under [statesync]
  • leave [blocksync_override] peers empty

Sign your node's name record (needed for peer discovery):

Copy the printed self_ip:self_tcp_port, self_record_seq_num and self_name_record_sig into the [peer_discovery] section of node.toml.

Fix permissions and enable the services:

Import a snapshot first (see Hard Reset note above), then start the node:

Additional

View logs:

Restart node:

Check metrics (via the bundled OTEL collector):

Stop node:

Remove node:

Stuck? Ask!

By continuing to use our website, you consent to our use of cookies in accordance with our cookie policy