Tutorial Monad
Node setup Monad

Tutorial Monad

Panduan cepat untuk memulai validator Monad di Testnet dan Mainnet

January 26, 2026
Updated January 26, 2026
Monad

Monad Validator - Quick Start Guide

Panduan cepat untuk memulai validator Monad di Testnet dan Mainnet

🚀 Quick Installation

Testnet Setup (5 Langkah)

curl -fsSL https://apt.monad.xyz/monad.gpg | sudo gpg --dearmor -o /usr/share/keyrings/monad-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/monad-archive-keyring.gpg] https://apt.monad.xyz testnet main" | sudo tee /etc/apt/sources.list.d/monad.list
sudo apt update && sudo apt install -y monad

wget https://raw.githubusercontent.com/monad-labs/monad-configs/main/testnet/full-node/node.toml -O /root/node.toml

sudo mkdir -p /mnt/triedb /mnt/monadbft
sudo chown -R $USER:$USER /mnt/triedb /mnt/monadbft

sudo systemctl enable monad-bft monad-execution monad-rpc
sudo systemctl start monad-bft monad-execution monad-rpc

sudo systemctl status monad-bft monad-execution monad-rpc --no-pager

Mainnet Setup (5 Langkah)

curl -fsSL https://apt.monad.xyz/monad.gpg | sudo gpg --dearmor -o /usr/share/keyrings/monad-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/monad-archive-keyring.gpg] https://apt.monad.xyz stable main" | sudo tee /etc/apt/sources.list.d/monad.list
sudo apt update && sudo apt install -y monad

wget https://raw.githubusercontent.com/monad-labs/monad-configs/main/mainnet/full-node/node.toml -O /root/node.toml

sudo mkdir -p /mnt/triedb /mnt/monadbft
sudo chown -R $USER:$USER /mnt/triedb /mnt/monadbft

sudo systemctl enable monad-bft monad-execution monad-rpc
sudo systemctl start monad-bft monad-execution monad-rpc

sudo systemctl status monad-bft monad-execution monad-rpc --no-pager

📋 Checklist Hardware

Sebelum mulai, pastikan server Anda memenuhi:

  • Bare Metal Server (BUKAN cloud/VM)
  • CPU: 16 cores, 4.5 GHz+ (AMD Ryzen 9950x/7950x atau Intel equivalent)
  • RAM: 32 GB minimum
  • Storage: 2TB NVMe (TrieDB) + 500GB NVMe (MonadBFT)
  • SSD: Samsung 980/990 Pro atau equivalent
  • Bandwidth: 300 Mbit/s untuk validator, 100 Mbit/s untuk full node
  • OS: Ubuntu 20.04+ atau Debian-based Linux

🔄 Upgrade Full Node → Validator

Step 1: Install Staking CLI

git clone https://github.com/monad-labs/staking-sdk-cli.git
cd staking-sdk-cli
npm install && npm run build

Step 2: Register Validator

export PRIVATE_KEY="your_private_key_here"

npm run onboard

Step 3: Update Config ke Validator Mode

Testnet:

wget https://raw.githubusercontent.com/monad-labs/monad-configs/main/testnet/validator/node.toml -O /root/node.toml

Mainnet:

wget https://raw.githubusercontent.com/monad-labs/monad-configs/main/mainnet/validator/node.toml -O /root/node.toml

Step 4: Edit Beneficiary Address

nano /root/node.toml

Ubah baris ini:

beneficiary = "0x<INSERT_YOUR_ADDRESS_HERE>"

Dan pastikan port RPC:

[rpc]
listen_address = "127.0.0.1:13080"

Step 5: Restart Services

sudo systemctl restart monad-bft monad-execution monad-rpc

📊 Monitoring Commands

Check Sync Status

curl http://localhost:13080/ \
  -X POST \
  -H "Content-Type: application/json" \
  --data '{"method":"eth_blockNumber","params":[],"id":1,"jsonrpc":"2.0"}'

Check Services

sudo systemctl status monad-bft monad-execution monad-rpc

View Logs

sudo journalctl -u monad-bft -f
sudo journalctl -u monad-execution -f
sudo journalctl -u monad-rpc -f

sudo journalctl -u monad-bft -n 100 --no-pager

Check Disk Space

df -h /mnt/triedb
df -h /mnt/monadbft

Check Version

monad-rpc --version

🎯 Validator Requirements

Untuk menjadi active validator, Anda harus memenuhi:

Requirement Value Status
Minimum Self-Stake 100,000 MON Untuk registrasi
Total Stake 10,000,000 MON Untuk menjadi aktif
Validator Rank Top 200 Berdasarkan stake weight

Validator akan aktif di epoch berikutnya setelah semua kondisi terpenuhi.


🔧 Common Commands

Restart Services

sudo systemctl restart monad-bft monad-execution monad-rpc

Stop Services

sudo systemctl stop monad-bft monad-execution monad-rpc

Reload Config (tanpa restart)

monad-debug-node \
  --control-panel-ipc-path /home/monad/monad-bft/controlpanel.sock \
  reload-config

Upgrade Node

Mainnet:

sudo apt update
sudo apt install --reinstall monad=<version> -y --allow-downgrades --allow-change-held-packages
sudo systemctl restart monad-bft monad-execution monad-rpc

Testnet:

sudo apt update
sudo apt install --reinstall monad=<version>~rc.<number> -y --allow-downgrades --allow-change-held-packages
sudo systemctl restart monad-bft monad-execution monad-rpc

🛡️ Security Setup

Basic Firewall

sudo apt install -y ufw
sudo ufw allow 22/tcp
sudo ufw allow 26656/tcp
sudo ufw enable
sudo ufw status

Disable Root Login

sudo nano /etc/ssh/sshd_config
sudo systemctl restart sshd

⚠️ Troubleshooting

Node tidak sync?

curl http://localhost:13080/ \
  -X POST \
  -H "Content-Type: application/json" \
  --data '{"method":"net_peerCount","params":[],"id":1,"jsonrpc":"2.0"}'

sudo systemctl restart monad-bft monad-execution monad-rpc

Service crash?

sudo journalctl -u monad-bft -n 100 --no-pager
sudo journalctl -u monad-execution -n 100 --no-pager

free -h
df -h
top

Validator tidak aktif?

Pastikan:

  1. Node fully synced
  2. Total stake >= 10M MON
  3. Rank dalam top 200
  4. Self-stake >= 100K MON
cd staking-sdk-cli
npm run cli -- getValidatorInfo --address <your_address> --rpc http://localhost:13080

📚 Resources


🔑 Network Info

Testnet

Mainnet


💡 Tips

  1. Selalu backup private key di tempat aman (offline)
  2. Monitor disk space secara regular
  3. Setup alerting untuk downtime
  4. Join Discord untuk update terbaru
  5. Gunakan hardware wallet untuk keamanan maksimal
  6. Test di testnet sebelum mainnet
  7. Keep node updated dengan versi terbaru

Butuh bantuan? Join Monad Discord atau baca dokumentasi lengkap.