> For the complete documentation index, see [llms.txt](https://docs.galactica.com/galactica-developer-documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.galactica.com/galactica-developer-documentation/validator-guide/become-validator.md).

# Become a Validator

This guide outlines the journey to becoming a validator, a crucial role that contributes to the network's security and governance.

## Who are Validators?

Validators are network participants who validate transactions and blocks, ensuring the integrity and security of the blockchain. They play a vital role in the consensus mechanism and, in return, receive rewards for their contributions.

## Install `galactica`

Start by preparing your environment according to the official documentation. Refer to the [Installation Guide](/galactica-developer-documentation/validator-guide/installation.md) for detailed steps.

## Hardware Recommended Specifications:

| Component            | Specification                                                                  |
| -------------------- | ------------------------------------------------------------------------------ |
| **CPU**              | Modern 4-core (or higher) processor, 2.5 GHz minimum clock speed               |
| **Memory (RAM)**     | 16 GB minimum, 32 GB or more recommended for high transaction volumes          |
| **Storage**          | SSD with at least 500 GB, NVMe SSDs preferred for faster data transfer rates   |
| **Network**          | Stable and fast internet connection with at least 100 Mbps up/down speeds      |
| **Operating System** | Recent version of Linux, e.g., Ubuntu 20.04 LTS, with regular security updates |

These specifications serve as a guideline. Adjustments may be necessary based on network conditions and individual use cases.

## Steps to Validatorship

1. **Initialize Your Node**: Initialize your node with a unique moniker.

   ```sh
   galacticad init [your-moniker] --chain-id [appropriate_chain_id]
   ```
2. **Configure Your Node**: Set up the node configuration to communicate with the blockchain.

   ```sh
   galacticad config node [RPC_node_URL]
   ```
3. **Generate a Private Key**: Create a new private key for your validator.

   ```sh
   galacticad keys add [your-key-name]
   ```
4. **Set Up Genesis and Seeds**: Download the genesis file and configure seed nodes.

   ```sh
   wget [genesis_file_url] -O ~/.galactica/config/genesis.json
   ```

   Configure your `config.toml` with seed nodes:

   ```sh
   # download the seeds.txt file:
   wget [seeds.txt_file_url] -O ~/.galactica/config/seeds.txt

   # set seeds in the config.toml file
   seeds=$(cat ~/.galactica/config/seeds.txt | tr '\n' ',' | sed 's/,$//')
   sed -i '' "s/seeds = \"\"/seeds = \"$seeds\"/" ~/.galactica/config/config.toml
   ```

   You can find the seed nodes in the genesis file or the [network-specific documentation](#network-configurations).
5. **Register as a Validator**: Submit a `create-validator` transaction.

   ```sh
   galacticad tx staking create-validator \
    --chain-id=[appropriate_chain_id] \
    --amount=[amount_agnet] \
    --pubkey=$(galacticad tendermint show-validator) \
    --moniker="[your-moniker]" \
    --details="your-details" \
    --identity="id-from-keybase" \
    --website="https://your-website" \
    --security-contact="your-email" \
    --commission-rate="0.05" \
    --commission-max-rate="0.1" \
    --commission-max-change-rate="0.02" \
    --min-self-delegation="1" \
    --gas="300000" \
    --gas-prices="100agnet" \
    --from=[your-key-name]
   ```

   Replace `[amount_agnet]` with the amount of tokens you wish to stake in `agnet`. For example `100 GNET equals 100 * 10^18 agnet = 100000000000000000000agnet`. To produce blocks on the testnet, your node's stake+delegation needs to raise to the [top 100, the validator set](https://explorer-pingpub-reticulum.galactica.com/galactica-reticulum/staking).
6. **Delegate Tokens**: Optionally, delegate tokens to your validator.

   ```sh
   galacticad tx staking delegate \
    $(galacticad keys show [your-key-name] --bech val -a) \
    [amount_agnet] \
    --gas="300000" \
    --gas-prices="100agnet" \
    --from=[your-key-name]
   ```
7. **Launch Your Validator Node**: Start your node to begin validating.

   ```sh
   galacticad start --chain-id [appropriate_chain_id]
   ```
8. **Change RPC Node URL**: If you wish to change the client's RPC node URL to your local node, run the following command:

   ```sh
    galacticad config node tcp://localhost:26657
   ```
9. **Check node status**: Check the status of your node by running the following command:

   ```sh
   galacticad status
   ```

## Network Configurations

For network-specific details like chain IDs and node URLs, please refer to the designated pages:

* [🧪 TestNet: Reticulum](/galactica-developer-documentation/testnet-reticulum.md)
* [🧪 DevNet: Andromeda](/galactica-developer-documentation/devnet-andromeda.md)

This guide provides a general overview. Dive into the world of Galactica Network and contribute to its growth and security as a validator.
