# Become a Validator

### To become a validator follow this steps

Before setting up your validator node, make sure you've already gone through the [Full Node Setup](https://github.com/Konstellation/konstellation#to-join-mainnet-follow-this-steps)

**What is a Validator?**

[Validators](https://docs.cosmos.network/v0.44/modules/staking/01_state.html#validator) are responsible for committing new blocks to the blockchain through voting. A validator's stake is slashed if they become unavailable or sign blocks at the same height. Please read about [Sentry Node Architecture](https://hub.cosmos.network/main/validators/security.html#sentry-nodes-ddos-protection) to protect your node from DDOS attacks and to ensure high-availability.

**Create Your Validator**

Your `darcvalconspub` can be used to create a new validator by staking tokens. You can find your validator pubkey by running:

```
build/knstld tendermint show-validator
```

To create your validator, just use the following command:

Check if your key(address) has enough balance:

```
build/knstld query bank balances <key address>
```

For test nodes, `chain-id` is `darchub`.\
You need transction fee `2udarc` to make your transaction for creating validator.\
Don't use more `udarc` than you have!

```
build/knstld tx staking create-validator \
  --amount=1000000udarc \
  --pubkey=$(build/knstld tendermint show-validator) \
  --moniker=<choose a moniker> \
  --chain-id=<chain_id> \
  --commission-rate="0.10" \
  --commission-max-rate="0.20" \
  --commission-max-change-rate="0.01" \
  --min-self-delegation="1" \
  --from=<key_name> \
  --fees=2udarc
```

* NOTE: If you have troubles with '\\' symbol, run the command in a single line like `build/knstld tx staking create-validator --amount=1000000udarc --pubkey=$(build/knstld tendermint show-validator) ...`

When specifying commission parameters, the `commission-max-change-rate` is used to measure % *point* change over the `commission-rate`. E.g. 1% to 2% is a 100% rate increase, but only 1 percentage point.

`Min-self-delegation` is a strictly positive integer that represents the minimum amount of self-delegated voting power your validator must always have. A `min-self-delegation` of 1 means your validator will never have a self-delegation lower than `1000000udarc`

You can check that you are in the validator set by using a third party explorer or using cli tool

```
build/knstld query staking validators --chain-id=<chain_id>
```

* Note: You can edit the params after, by running command `build/knstld tx staking edit-validator ... —from <key_name> --chain-id=<chain_id> --fees=2udarc` with the necessary options
