Hardware Requirements
Server preparation
Update your system packages:
Copy sudo apt update && sudo apt upgrade -y
Install essential dependencies :
Copy sudo apt-get install -y make git-core libssl-dev pkg-config libclang-12-dev build-essential protobuf-compiler
Install Go 1.23.1 (required for building Stargaze):
Copy ver="1.23.1"
wget "https://golang.org/dl/go$ver.linux-amd64.tar.gz"
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf "go$ver.linux-amd64.tar.gz"
rm "go$ver.linux-amd64.tar.gz"
echo "export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin" >> $HOME/.bash_profile
source $HOME/.bash_profile
go version
Copy curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
source $HOME/.cargo/env
Copy cd $HOME
rm -rf cometbft
git clone https://github.com/cometbft/cometbft.git
cd cometbft
git checkout v0.37.15
make build
sudo cp $HOME/cometbft/build/cometbft /usr/local/bin/
cometbft version
Set custom configs server
Copy export NAMADA_NETWORK_CONFIGS_SERVER="https://github.com/anoma/namada-mainnet-genesis/releases/download/mainnet-genesis"
Download and Install Namada Binaries
Clone the Namada repository and download the binary:
Copy cd $HOME
git clone https://github.com/anoma/namada
cd namada
wget https://github.com/anoma/namada/releases/download/v1.1.5/namada-v1.1.5-Linux-x86_64.tar.gz
tar -xvf namada-v1.1.5-Linux-x86_64.tar.gz
rm namada-v1.1.5-Linux-x86_64.tar.gz
sudo mv namada-v1.1.5-Linux-x86_64/namad* /usr/local/bin/
mkdir -p $HOME/.namada
Expected output:
Join-network
Join-network as Full Nodes or Post-Genesis Validator: Join-network as Pre-Genesis Validator
Copy namadac utils join-network --chain-id namada.5f5de2dd1b88cba30586420
sed -i 's#persistent_peers = ".*"#persistent_peers = "tcp://05309c2cce2d163027a47c662066907e89cd6b99@74.50.93.254:26656,tcp://2bf5cdd25975c239e8feb68153d69c5eec004fdb@64.118.250.82:46656"#' $HOME/.local/share/namada/namada.5f5de2dd1b88cba30586420/config.toml
Copy cd $HOME
cp -r ~/.namada/pre-genesis $HOME/.local/share/namada
namada client utils join-network --chain-id namada.5f5de2dd1b88cba30586420 --genesis-validator <ALIAS>
sed -i 's#persistent_peers = ".*"#persistent_peers = "tcp://05309c2cce2d163027a47c662066907e89cd6b99@74.50.93.254:26656,tcp://2bf5cdd25975c239e8feb68153d69c5eec004fdb@64.118.250.82:46656"#' $HOME/.local/share/namada/namada.5f5de2dd1b88cba30586420/config.toml
Setup Peers
Copy sed -i 's#persistent_peers = ".*"#persistent_peers = "tcp://05309c2cce2d163027a47c662066907e89cd6b99@74.50.93.254:26656,tcp://2bf5cdd25975c239e8feb68153d69c5eec004fdb@64.118.250.82:46656"#' $HOME/.local/share/namada/namada.5f5de2dd1b88cba30586420/config.toml
Create a Systemd Service File
Create and configure the systemd service to run Stargaze as a service:
Copy sudo tee /etc/systemd/system/namadad.service > /dev/null <<EOF
[Unit]
Description=namada
After=network-online.target
[Service]
User=$USER
WorkingDirectory=$BASE_DIR
Environment=CMT_LOG_LEVEL=p2p:none,pex:error
Environment=NAMADA_CMT_STDOUT=true
ExecStart=$(which namada) node ledger run
StandardOutput=syslog
StandardError=syslog
Restart=always
RestartSec=10
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF
Reload and start the Stargaze service :
Copy sudo systemctl daemon-reload
sudo systemctl enable namadad
sudo systemctl restart namadad && sudo journalctl -u namadad -f
Check Node Sync Status
Copy curl http://127.0.0.1:26657/status | jq
Look for this line in the output:
This means your node is fully synced.
Manage YourWwallet
Creates a new transparent or shielded secret key and saves it under the provided alias.
Copy namadaw gen --alias <WALLET_NAME>
Restore an Existing Wallet
Restores a transparent or shielded key from a mnemonic phrase or a hardware device.
Copy namadaw derive --alias <WALLET_NAME>
Copy namadaw find --alias <WALLET_NAME>
Look for the implicit address starting with tnam...
— you’ll need it.
Displays the current balance of your wallet.
Copy namadac balance --owner <WALLET_NAME> --token nam
Lists all known keys and addresses in your local wallet.
Copy namadaw remove --alias <WALLET_NAME> --do-it
This will completely remove the wallet and all its data.
Become a Validator on Namada
This guide walks you through the process of turning your full node into a validator on the Namada network. Make sure your full node is already synced before proceeding.
Prerequisites:
A fully synced Namada full node
Your wallet (established account) already created
Enough tokens in your wallet for self-bonding
CLI tools installed: namadac
, namadaw
, namadad
Step 1: Initialize the Validator
Run the following command to become a validator:
Copy namadac init-validator \
--commission-rate 0.07 \
--max-commission-rate-change 1 \
--signing-keys <your-wallet-name> \
--alias <your-validator-alias> \
--email <your-email@example.com> \
--website <https://your-website.com> \
--discord-handle <your-discord#0000> \
--account-keys <your-alias> \
--memo <"Your memo or short description">
Step 2: Get Your Validator Address
Find your established validator address
Restart your node and follow the logs:
Copy sudo systemctl restart namadad
sudo journalctl -u namadad -f
Step 4: Wait for 2 Epochs
Check the current epoch:
Once 2 epochs have passed, proceed to bond your stake.
Step 5: Bond Stake to Your Validator
Copy namadac bond \
--validator <your-validator-address> \
--source <your-wallet-name> \
--amount 1000 \
--memo <"Your memo or short description">
Step 6: Check Validator Status
After 3 epochs, verify that your validator is in the consensus set:
Copy namadac validator-state --validator <your-validator-address>
You can also check your bond status:
Copy namada client bonds --owner <your-wallet-name>
Optional: Add More Stake
To increase your stake later:
Copy namadac bond \
--source <your-wallet-name> \
--validator <your-validator-address> \
--amount 1000
Query Useful Info
Copy namada client validator-state --validator <your-validator-address>
Unbond & Withdraw Tokens
Copy namadac unbond \
--source <your-wallet-name> \
--validator <your-validator-address> \
--amount 1000
Check unbond status (wait 6 epochs):
Copy namadac bonds --owner <your-wallet-name>
Withdraw unbonded tokens:
Copy namadac withdraw \
--source <your-wallet-name> \
--validator <your-validator-address>
You're Done!
You are now a validator on Namada. Don't forget to:
Monitor your validator performance
Update your metadata as needed
Engage in governance voting
Delete node
Copy sudo systemctl stop namadad
sudo systemctl disable namadad
sudo rm -rf /etc/systemd/system/namadad.service
sudo systemctl daemon-reload
sudo rm $(which namada)
sudo rm -rf $HOME/.local/share/namada/namada.5f5de2dd1b88cba30586420