# CLI Cheatsheet

<figure><img src="https://pbs.twimg.com/profile_images/1404775608798699522/ohhSUimj_400x400.jpg" alt="" width="188"><figcaption></figcaption></figure>

### Key Management

Add new key

```
bandd keys add wallet
```

Recover existing key

```
bandd keys add wallet --recover
```

List All key

```
bandd keys list
```

Delete key

```
bandd keys delete wallet
```

Export Key (save to wallet.backup)

```
bandd keys export wallet
```

Import key

```
bandd keys import wallet wallet.backup
```

Query Wallet Balance

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

### Validator Management

Create Validator

```sh
bandd tx staking create-validator \
  --amount "1000000uband" \
  --pubkey $(bandd tendermint show-validator) \
  --moniker "MONIKER" \
  --identity "KEYBASE_ID" \
  --details "YOUR DETAILS" \
  --website "YOUR WEBSITE" \
  --chain-id laozi-mainnet \
  --commission-rate "0.05" \
  --commission-max-rate "0.20" \
  --commission-max-change-rate "0.01" \
  --min-self-delegation "1" \
  -fees "500uband" \
  --gas "auto" \
  --gas-adjustment "1.5" \
  --from wallet \
  -y

```

Edit Validator

```sh
bandd tx staking edit-validator \
--new-moniker="MONIKER" \
--identity="YOUR_KEYBASE_ID" \
--details="YOUR_DETAILS" \
--website="YOUR_WEBSITE_URL" \
--chain-id laozi-mainnet \
--commission-rate=0.05 \
-fees "500uband" \
--gas="auto" \
--gas-adjustment="1.5" \
--from wallet \
-y
```

Unjail Validator

```sh
bandd tx slashing unjail --from wallet --chain-id laozi-mainnet -fees "500uband" \ --gas-adjustment 1.5 --gas "auto" -y 
```

Signing Info

```sh
bandd query slashing signing-info $(bandd tendermint show-validator) 
```

List all active validators

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

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

View validators details

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

### Token Management

Withdraw rewards from all validators

```sh
bandd tx distribution withdraw-all-rewards --from wallet --chain-id laozi-mainnet -fees "500uband" \ --gas-adjustment 1.5 --gas "auto" -y 
```

Withdraw comission and rewards from your validator

```sh
bandd tx distribution withdraw-rewards $(bandd keys show wallet --bech val -a) --commission --from wallet --chain-id laozi-mainnet -fees "500uband" \ --gas-adjustment 1.5 --gas "auto" -y 
```

Delegate to your validator

```sh
bandd tx staking delegate $(bandd keys show wallet --bech val -a) 1000000uband --from wallet --chain-id laozi-mainnet -fees "500uband" \ --gas-adjustment 1.5 --gas "auto" -y 
```

Delegate to other

```sh
c4ed tx staking delegate TO_VALOPER_ADDRESS 1000000uband --from wallet --chain-id laozi-mainnet -fees "500uband" \ --gas-adjustment 1.5 --gas "auto" -y 
```

Redelegate your stake to other validators

```sh
bandd tx staking redelegate $(bandd keys show wallet --bech val -a) TO_VALOPER_ADDRESS 1000000uband --from wallet --chain-id laozi-mainnet -fees "500uband" \ --gas-adjustment 1.5 --gas "auto" -y 
```

Unbond stake

```sh
bandd tx staking unbond $(bandd keys show wallet --bech val -a) 1000000uband --from wallet --chain-id laozi-mainnet -fees "500uband" \ --gas-adjustment 1.5 --gas "auto" -y 
```

Send tokens

```sh
bandd tx bank send wallet TO_WALLET_ADDRESS 1000000uband --from wallet --chain-id laozi-mainnet -fees "500uband" \ --gas-adjustment 1.5 --gas "auto" -y 
```

### Governance

List all proposals

<pre class="language-sh"><code class="lang-sh"><strong>bandd query gov proposals
</strong></code></pre>

Vote **YES / NO / ABSTAIN / NO\_WITH\_VETO**

```sh
bandd tx gov vote 1 yes --from wallet --chain-id laozi-mainnet -fees "500uband" \ --gas-adjustment 1.5 --gas "auto" -y 
```

Create new text proposal

```sh
bandd tx gov submit-proposal \
--title="Title" \
--description="Description" \
--deposit=100000000uband \
--type="Text" \
--from=wallet \
--gas-prices 0uband\ 
--gas-adjustment 1.5 \
--gas "auto" \
-y 
```

### Utility

Set Indexer **NULL / KV**

```sh
sed -i 's|^indexer *=.*|indexer = "null"|' $HOME/.band/config/config.toml
```

Set Custom Port

```sh
CUSTOM_PORT=13
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/.band/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\"%; s%^address = \"0.0.0.0:8545\"%address = \"0.0.0.0:${CUSTOM_PORT}545\"%; s%^ws-address = \"0.0.0.0:8546\"%ws-address = \"0.0.0.0:${CUSTOM_PORT}546\"%" $HOME/.band/config/app.toml
```

Get Validator info

```sh
bandd status 2>&1 | jq .ValidatorInfo
```

Get denom info

```sh
bandd q bank denom-metadata -oj | jq
```

Get sync status

```sh
bandd status 2>&1 | jq .SyncInfo.catching_up
```

Get latest height

```sh
bandd status 2>&1 | jq .SyncInfo.latest_block_height
```

Reset Node

```sh
bandd tendermint unsafe-reset-all --home $HOME/.band --keep-addr-book
```

Delete Node

```sh
sudo systemctl stop bandd && sudo systemctl disable bandd && sudo rm /etc/systemd/system/bandd.service && sudo systemctl daemon-reload && rm -rf $HOME/.band && sudo rm -rf $(which bandd) 
```

### Services Management

```sh
# Reload Service
sudo systemctl daemon-reload

# Enable Service
sudo systemctl enable bandd

# Disable Service
sudo systemctl disable bandd

# Start Service
sudo systemctl start bandd

# Stop Service
sudo systemctl stop bandd

# Restart Service
sudo systemctl restart bandd

# Check Service Status
sudo systemctl status bandd

# Check Service Logs
sudo journalctl -u bandd -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://docs.indonode.net/mainnet/band/cheat.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.
