# Important Commands

<figure><img src="/files/B89bAIQhSsGlc5xX5bU2" alt=""><figcaption></figcaption></figure>

### 🔑 Key management

#### Add new key

```bash
# create validator wallet
kyved keys add wallet
```

#### Recover existing key

```bash
kyved keys add wallet --recover
```

#### List all keys

```bash
kyved keys list
```

#### Delete key

```bash
kyved keys delete wallet
```

#### Export key to the file

```bash
kyved keys export wallet
```

#### Import key from the file

```bash
kyved keys import wallet wallet.backup
```

#### Query wallet balance

```bash
kyved q bank balances $(kyved keys show wallet -a)
```

## 👷🏽‍♀ Validator management

#### Create new validator

```bash
kyved tx staking create-validator \
--moniker "YOUR_MONIKER_NAME" \
--identity="YOUR_KEYBASE_ID" \
--website="YOUR_WEBSITE_URL" \
--details="YOUR_DETAILS" \
--amount 1000000tkyve \
--fees 300tkyve \
--pubkey=$(kyved tendermint show-validator) \
--chain-id=kaon-1 \
--commission-max-change-rate=0.01 \
--commission-max-rate=0.20 \
--commission-rate=0.10 \
--min-self-delegation=1 \
--from=wallet \
--yes
```

#### Edit existing validator

```bash
kyved tx staking edit-validator \
--moniker="YOUR_MONIKER_NAME" \
--identity="YOUR_KEYBASE_ID" \
--details="YOUR_DETAILS" \
--website="YOUR_WEBSITE_URL"
--chain-id=kaon-1 \
--commission-rate=0.05 \
--from=wallet \
--gas-adjustment=1.4 \
--gas=auto \
--fees=1000tkyve \
-y
```

#### Unjail validator

```bash
kyved tx slashing unjail --from wallet --chain-id kaon-1 --gas auto --gas-adjustment 1.4 --fees 1000tkyve -y
```

#### Jail reason

```bash
kyved query slashing signing-info $(kyved tendermint show-validator)
```

#### List all active validators

```bash
kyved q staking validators -oj --limit=3000 | jq '.validators[] | select(.status=="BOND_STATUS_BONDED")' | jq -r '(.tokens|tonumber/pow(10; 6)|floor|tostring) + " \t " + .description.moniker' | sort -gr | nl
```

#### List all inactive validators

```bash
kyved q staking validators -oj --limit=3000 | jq '.validators[] | select(.status=="BOND_STATUS_UNBONDED")' | jq -r '(.tokens|tonumber/pow(10; 6)|floor|tostring) + " \t " + .description.moniker' | sort -gr | nl
```

#### View validator details

```bash
kyved q staking validator $(kyved keys show wallet --bech val -a)
```

## 🪙 Token management

#### Withdraw rewards from all validators

```bash
kyved tx distribution withdraw-all-rewards --from wallet --chain-id kaon-1 --gas-adjustment 1.4 --gas auto --fees 1000tkyve -y
```

#### Withdraw commission and rewards from your validator

```bash
kyved tx distribution withdraw-rewards $(kyved keys show wallet --bech val -a) --commission --from wallet --chain-id kaon-1 --gas-adjustment 1.4 --gas auto --fees 1000tkyve -y
```

#### Delegate tokens to yourself

```bash
kyved tx staking delegate $(kyved keys show wallet --bech val -a) 1000000tkyve --from wallet --chain-id kaon-1 --gas-adjustment 1.4 --gas auto --fees 1000tkyve -y
```

#### Delegate tokens to validator

```bash
kyved tx staking delegate <TO_VALOPER_ADDRESS> 1000000tkyve --from wallet --chain-id kaon-1 --gas-adjustment 1.4 --gas auto --fees 1000tkyve -y
```

Redelegate tokens to another validator

```bash
kyved tx staking redelegate $(kyved keys show wallet --bech val -a) <TO_VALOPER_ADDRESS> 1000000tkyve --from wallet --chain-id kaon-1 --gas-adjustment 1.4 --gas auto --fees 1000tkyve -y
```

Unbond tokens from your validator

```bash
kyved tx staking unbond $(kyved keys show wallet --bech val -a) 1000000tkyve --from wallet --chain-id kaon-1 --gas-adjustment 1.4 --gas auto --fees 1000tkyve -y
```

Send tokens to the wallet

```bash
kyved tx bank send wallet <TO_WALLET_ADDRESS> 1000000tkyve --from wallet --chain-id kaon-1
```

## 📥 Governance

Create New Text Proposal

```bash
kyved tx gov submit-proposal \
--title="Title" \
--description="Description" \
--deposit=1000000tkyve \
--type="Text" \
--from=wallet \
--gas-prices=0.1tykve \
--gas-adjustment=1.4 \
--gas=auto \
-y 
```

#### List all proposals

```bash
kyved query gov proposals
```

#### View proposal by id

```bash
kyved query gov proposal 1
```

#### Vote 'Yes'

```bash
kyved tx gov vote 1 yes --from wallet --chain-id kaon-1 --gas-adjustment 1.4 --gas auto --fees 1000tkyve -y
```

#### Vote 'No'

```bash
kyved tx gov vote 1 no --from wallet --chain-id kaon-1 --gas-adjustment 1.4 --gas auto --fees 1000tkyve -y
```

#### Vote 'Abstain'

```bash
kyved tx gov vote 1 abstain --from wallet --chain-id kaon-1 --gas-adjustment 1.4 --gas auto --fees 1000tkyve -y
```

#### Vote 'NoWithVeto'

```bash
kyved tx gov vote 1 nowithveto --from wallet --chain-id kaon-1 --gas-adjustment 1.4 --gas auto --fees 1000tkyve -y
```

## ⚡️ Utility

#### Update ports

```bash
CUSTOM_PORT=10
sed -i.bak -e "s%^proxy_app = \"tcp://127.0.0.1:26658\"%proxy_app = \"tcp://127.0.0.1:${CUSTOM_PORT}658\"%; s%^laddr = \"tcp://127.0.0.1:26657\"%laddr = \"tcp://127.0.0.1:${CUSTOM_PORT}657\"%; s%^pprof_laddr = \"localhost:6060\"%pprof_laddr = \"localhost:${CUSTOM_PORT}060\"%; s%^laddr = \"tcp://0.0.0.0:26656\"%laddr = \"tcp://0.0.0.0:${CUSTOM_PORT}656\"%; s%^prometheus_listen_addr = \":26660\"%prometheus_listen_addr = \":${CUSTOM_PORT}660\"%" $HOME/.kyved/config/config.toml
sed -i.bak -e "s%^address = \"tcp://0.0.0.0:1317\"%address = \"tcp://0.0.0.0:${CUSTOM_PORT}317\"%; s%^address = \":8080\"%address = \":${CUSTOM_PORT}080\"%; s%^address = \"0.0.0.0:9090\"%address = \"0.0.0.0:${CUSTOM_PORT}090\"%; s%^address = \"0.0.0.0:9091\"%address = \"0.0.0.0:${CUSTOM_PORT}091\"%" $HOME/.kyved/config/app.toml
```

#### Update Indexer

```bash
#Disable indexer
sed -i 's|^indexer *=.*|indexer = "null"|' $HOME/.kyved/config/config.toml
```

Enable indexer

```bash
#Enable indexer
sed -i 's|^indexer *=.*|indexer = "kv"|' $HOME/.kyved/config/config.toml
```

#### Update pruning

```bash
sed -i.bak -e 's|^pruning *=.*|pruning = "custom"|; s|^pruning-keep-recent *=.*|pruning-keep-recent = "100"|; s|^pruning-keep-every *=.*|pruning-keep-every = "0"|; s|^pruning-interval *=.*|pruning-interval = "10"|' $HOME/.kyved/config/app.toml
```

## 🚧 Maintenance

#### Get validator info

```bash
kyved status 2>&1 | jq .ValidatorInfo
```

#### Get sync info

```bash
kyved status 2>&1 | jq .SyncInfo
```

#### Get node peer

```bash
echo $(kyved tendermint show-node-id)'@'$(curl -s ifconfig.me)':'$(cat $HOME/.kyved/config/config.toml | sed -n '/Address to listen for incoming connection/{n;p;}' | sed 's/.*://; s/".*//')
```

#### Check if validator key is correct

```bash
[[ $(kyved q staking validator $(kyved keys show wallet --bech val -a) -oj | jq -r .consensus_pubkey.key) = $(kyved status | jq -r .ValidatorInfo.PubKey.value) ]] && echo -e "\n\e[1m\e[32mTrue\e[0m\n" || echo -e "\n\e[1m\e[31mFalse\e[0m\n"
```

#### Get live peers

```bash
curl -sS http://localhost:20657/net_info | jq -r '.result.peers[] | "\(.node_info.id)@\(.remote_ip):\(.node_info.listen_addr)"' | awk -F ':' '{print $1":"$(NF)}'
```

#### Set minimum gas price

```bash
sed -i -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0utia\"/" $HOME/.kyved/config/app.toml
```

#### Enable prometheus

```bash
sed -i -e "s/prometheus = false/prometheus = true/" $HOME/.kyved/config/config.toml
```

#### Reset chain data

```bash
kyved tendermint unsafe-reset-all --home $HOME/.kyved --keep-addr-book
```

#### Remove node

{% hint style="danger" %}
Please, before proceeding with the next step! Make sure you have backed up your **priv\_validator\_key.json**! Because All chain data will be lost!
{% endhint %}

```bash
cd $HOME
sudo systemctl stop kyved
sudo systemctl disable kyved
sudo rm /etc/systemd/system/kyved.service
sudo systemctl daemon-reload
rm -rf $(which kyved) 
rm -rf $HOME/.kyved
rm -rf $HOME/kyved
```

## ⚙️ Service Management

#### Reload service configuration

```bash
sudo systemctl daemon-reload
```

#### Enable service

```bash
sudo systemctl enable kyved
```

#### Disable service

```bash
sudo systemctl disable kyved
```

#### Start service

```bash
sudo systemctl start kyved
```

#### Stop service

```bash
sudo systemctl stop kyved
```

#### Restart service

```bash
sudo systemctl restart kyved
```

#### Check service status

```bash
sudo systemctl status kyved
```

#### Check service logs

```bash
sudo journalctl -u kyved -f --no-hostname -o cat
```


---

# 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://scribcode.gitbook.io/home/testnet/kyve/important-commands.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.
