Skip to content

MictoNode/monad-val-manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

7 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Monad Validator Manager

Latest Release License Rust

Professional CLI and TUI tool for Monad blockchain validator node management

Features β€’ Installation β€’ Quick Start β€’ Staking Commands β€’ Configuration β€’ Support


Features

  • TUI Dashboard - 5 screens (Dashboard, Staking, Transfer, Doctor, Help) with Monad purple theme, real-time block counter, and live metrics
  • Doctor Diagnostics - 16 automated checks with actionable error detection and fix recommendations
  • Staking Operations - Complete staking management: delegate, undelegate, withdraw (2-epoch delay), claim rewards, compound rewards
  • Validator Management - Add new validators (100k MON minimum), change commission rates (0-100%)
  • Query Operations - Query validators, delegators, epochs, validator-sets, proposers, delegations, gas estimates
  • Hardware Wallet Support - Ledger device integration via alloy-signer-ledger (built-in, untested - please share feedback)
  • Multi-network Support - Switch between mainnet (chain ID 143) and testnet (chain ID 10143)
  • Transfer - Native MON token transfers with dry-run mode for safe testing

Installation

Requirements

  • Ubuntu 24.04 LTS (or compatible Linux distribution)
  • Running Monad node with RPC endpoint at localhost:8080

Option 1: Download Pre-built Binary (Recommended)

Download the latest release for your platform from the Releases page:

Linux

# 1. Download the binary
wget https://github.com/MictoNode/monad-val-manager/releases/latest/download/monad-val-manager

# 2. Make it executable
chmod +x monad-val-manager

# 3. Move to a directory in your PATH (optional)
sudo mv monad-val-manager /usr/local/bin/

# 4. Verify installation
monad-val-manager --version

Verify Download Integrity

Each release includes SHA256 checksums. Verify your download:

# Check the SHA256 hash
sha256sum monad-val-manager

# Compare with the hash shown on the Releases page

Option 2: Build from Source

Click to expand build instructions

Prerequisites

  • Rust 1.93+ - Install via rustup
# Install Rust (if not already installed)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env

Build Steps

# Clone the repository
git clone https://github.com/MictoNode/monad-val-manager.git
cd monad-val-manager

# Build in release mode (optimized binary)
cargo build --release

# The binary will be at:
# ./target/release/monad-val-manager

# Optional: Install system-wide
cargo install --path .

Ledger support is enabled by default. The tool will automatically detect Ledger devices when connected.


Quick Start

⚠️ First time user? Test on testnet first. Select testnet when running monad-val-manager init. Mainnet transactions cannot be reversed.

1. Initialize Configuration

# Initialize configuration (REQUIRED - creates config and .env)
monad-val-manager init

# Follow the prompts:
# - Select network (mainnet/testnet)
# - Enter your private key (hidden input)
# - Confirm RPC endpoint

What init creates:

  • ~/.config/monad-val-manager/config.toml - Configuration file
  • ~/.config/monad-val-manager/.env - Private key

2. Verify Installation

# Check version
monad-val-manager --version

# Run diagnostics
monad-val-manager doctor

3. Start Using the Tool

# Launch the TUI dashboard (interactive monitoring)
monad-val-manager

# Check node status
monad-val-manager status

# View all available commands
monad-val-manager --help

Configuration Location

After initialization, your config is stored at:

Your config is stored at ~/.config/monad-val-manager/config.toml

No manual configuration is needed to get started - just run the tool!


Documentation

Document Description
CLI Reference Complete CLI command bank (all commands with parameters & examples)
Command Reference Quick command reference
Validator Onboarding Step-by-step validator registration guide

Staking Commands

πŸ“– Complete CLI Reference: See docs/cli-reference.md for the complete CLI command bank with all parameters, examples, and usage patterns.

πŸ”§ Validator Onboarding: See docs/validator-onboarding.md for step-by-step validator registration guide.

Quick Examples

# Delegate MON to a validator
monad-val-manager stake delegate --validator-id 1 --amount 1000

# Claim rewards
monad-val-manager stake claim-rewards --validator-id 1

# Query validator info
monad-val-manager stake query validator --id 1

# View all commands
monad-val-manager --help

TUI Dashboard

The interactive dashboard provides real-time monitoring with Monad brand theme.

Dashboard Screen

Dashboard

Real-time node status, block counter, consensus info, and system metrics.

Staking Screen

Staking

All staking operations in one place: delegate, undelegate, withdraw, claim rewards, and compound.

Ready to Withdraw

Withdraw dialog shows "Ready to Withdraw" indicator (red box) when the 2-epoch delay has passed and funds are available for withdrawal.

Transfer Screen

Transfer

Native MON token transfers with recipient address and amount input.

Dialog Examples

Dialog

Clean dialog interfaces for user input with Monad brand styling.

Doctor Screen

Doctor

16 diagnostic checks with status indicators and recommendations.

Help Screen

Help

Complete keybinding reference and shortcuts.

Screens Summary: Dashboard (node status) β€’ Staking (operations) β€’ Transfer (MON) β€’ Doctor (diagnostics) β€’ Help (shortcuts)


Terminal Compatibility

Recommended Terminals

Terminal Compatibility Notes
Termius βœ… Full compatibility Backspace and paste work correctly
MobaXterm ⚠️ Requires configuration Set Terminal β†’ Keyboard β†’ "Backspace key sends" to DEL (^?), then restart
Windows Terminal βœ… Compatible Works well on Windows
iTerm2 βœ… Compatible Works well on macOS
Terminal.app βœ… Compatible Default macOS terminal
GNOME Terminal βœ… Compatible Default on many Linux distros

Note: For other SSH clients with backspace issues, change the backspace setting to send DEL (^?) instead of ^H, or use Termius.


Configuration

Security

⚠️ Warning: Your .env file contains your private key. Never:

  • Commit it to git (verify it's in .gitignore)
  • Share it with anyone
  • Display it in logs or error messages

Production: We recommend using a Ledger hardware wallet for enhanced security.

Auto-Generated Configuration

The configuration file is automatically created on first run with sensible defaults. You only need to edit it for:

  • Changing RPC endpoint (if not using localhost:8080)
  • Setting custom private key location

Default Configuration

[network]
type = "mainnet"  # or "testnet"
chain_id = 143    # mainnet=143, testnet=10143

[rpc]
http_url = "http://localhost:8080"
ws_url = "ws://localhost:8080"
timeout = 30
max_retries = 3

Environment Variables

Create a .env file in your project directory or home directory:

# Private key for signing transactions
PRIVATE_KEY=your_private_key_here

# RPC URL (optional, overrides config)
RPC_URL=http://localhost:8080

View Current Configuration

monad-val-manager config-show

Recreate Configuration

monad-val-manager init

Doctor Diagnostics

Run diagnostic checks to identify common issues:

# Run all diagnostics
monad-val-manager doctor

The tool performs 16 automated checks including node connectivity, RPC availability, sync status, system resources, and configuration validity.

See docs/cli-reference.md for detailed documentation.


Hardware Wallet Support

Ledger hardware wallet support is built-in via alloy-signer-ledger.

Note: This feature has not been tested yet. If you test it with a Ledger device, please open an issue and share your experience.


Troubleshooting

"Connection refused" error

  • Ensure your Monad node is running
  • Check the RPC endpoint in your config (config-show)
  • Verify the node is listening on localhost:8080

Private key not found

  • Ensure .env file exists with PRIVATE_KEY variable
  • Or set PRIVATE_KEY environment variable
  • Key should be 64 hex characters (without 0x prefix)

Run diagnostics

# Check for common issues
monad-val-manager doctor

Support


Acknowledgments

This project is inspired by and maintains contract parity with the official Monad Staking SDK CLI. The Python SDK serves as the reference implementation for all staking operations and transaction encoding.


License

Licensed under either of Apache License, Version 2.0 or MIT license at your option.


Made with ❀️ for Monad validators

About

CLI & TUI tool for managing Monad validator nodes - staking, rewards, diagnostics and more. Built by the community, for the community.

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages