# Installation

## H**ardware Requirements**

<table><thead><tr><th>Node Type</th><th width="155">CPU</th><th width="160">RAM</th><th>Storage</th></tr></thead><tbody><tr><td>Validator</td><td>4</td><td>16GB</td><td>1TB* (SSD or NVME)</td></tr><tr><td>Full Node</td><td>2</td><td>8GB</td><td>1TB</td></tr></tbody></table>

## Server preparation

1. **Update your system packages:**

```
sudo apt update && sudo apt upgrade -y
```

2. **Install essential dependencies**:

```
sudo apt-get install -y make git-core libssl-dev pkg-config libclang-12-dev build-essential protobuf-compiler
```

3. **Install Go** 1.23.1 (required for building Stargaze):

```
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
```

4. **Install Rust:**

```
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
source $HOME/.cargo/env
```

5. **Install CometBFT:**

```
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
```

***

6. **Set custom configs server**

```
export NAMADA_NETWORK_CONFIGS_SERVER="https://github.com/anoma/namada-mainnet-genesis/releases/download/mainnet-genesis"
```

## Download and Install Namada Binaries

1. **Clone the Namada repository and download the binary:**

```
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
```

{% hint style="info" %}
💡 `mkdir -p` ensures the `.namada` directory is created only if it doesn't already exist.
{% endhint %}

2. **Verify the installation:**

```
namada --version
```

> Expected output:
>
> * Namada v1.1.5

***

## Join-network

{% tabs %}
{% tab title="Join-network as Full Nodes or Post-Genesis Validator:" %}

```
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
```

{% endtab %}

{% tab title="Join-network as Pre-Genesis Validator" %}

```
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
```

{% endtab %}
{% endtabs %}

***

## Setup Peers

```
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

1. **Create and configure the systemd service** to run Stargaze as a service:

```
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
```

2. **Reload and start the Stargaze service**:

```
sudo systemctl daemon-reload
sudo systemctl enable namadad
sudo systemctl restart namadad && sudo journalctl -u namadad -f
```

***

## Check Node Sync Status

```
curl http://127.0.0.1:26657/status | jq
```

Look for this line in the output:

```
"catching_up": false
```

This means your node is fully synced.

***

## Manage YourWwallet

* **Create a New Wallet**

Creates a new transparent or shielded secret key and saves it under the provided alias.

```
namadaw gen --alias <WALLET_NAME>
```

* **Restore an Existing Wallet**

Restores a transparent or shielded key from a mnemonic phrase or a hardware device.

```
namadaw derive --alias <WALLET_NAME>
```

* **Find Your Wallet Address**

```
namadaw find --alias <WALLET_NAME>
```

Look for the **implicit address** starting with `tnam...` — you’ll need it.

* **Check Wallet Balance**

Displays the current balance of your wallet.

```
namadac balance --owner <WALLET_NAME> --token nam
```

* **List Wallet Keys**

Lists all known keys and addresses in your local wallet.

```
namadaw list
```

* **Delete Wallet**

```
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`
*

1. **Step 1: Initialize the Validator**

Run the following command to become a validator:

```
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">

```

2. **Step 2: Get Your Validator Address**

Find your <kbd>established</kbd>validator address

```
namadaw list
```

3. **Step 3: Restart the Node**

Restart your node and follow the logs:

```
sudo systemctl restart namadad
sudo journalctl -u namadad -f
```

4. **Step 4: Wait for 2 Epochs**

Check the current epoch:

```
namada client epoch
```

Once 2 epochs have passed, proceed to bond your stake.

5. **Step 5: Bond Stake to Your Validator**

```
namadac bond \
  --validator <your-validator-address> \
  --source <your-wallet-name> \
  --amount 1000 \
  --memo <"Your memo or short description">
```

6. **Step 6: Check Validator Status**

After 3 epochs, verify that your validator is in the consensus set:

```
namadac validator-state --validator <your-validator-address>
```

You can also check your bond status:

```
namada client bonds --owner <your-wallet-name>
```

#### Optional: Add More Stake

To increase your stake later:

```
namadac bond \
  --source <your-wallet-name> \
  --validator <your-validator-address> \
  --amount 1000
```

#### Query Useful Info

* Validator info:

```
namada client validator-state --validator <your-validator-address>
```

* All bonded stakes:

```
namadac bonded-stake
```

#### Unbond & Withdraw Tokens

* Unbond tokens:

```
namadac unbond \
  --source <your-wallet-name> \
  --validator <your-validator-address> \
  --amount 1000
```

* Check unbond status (wait 6 epochs):

```
namadac bonds --owner <your-wallet-name>
```

* Withdraw unbonded tokens:

```
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
* Claim rewards regularly
* Update your metadata as needed
* Engage in governance voting

### Delete node <a href="#delete" id="delete"></a>

```
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
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://service.block-pro.net/mainnet/namada-docs/installation.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
