# Commands

## 📚Useful commands📚

## ⚙️Service

**Info**

```bash
bitsongd status 2>&1 | jq .NodeInfo
bitsongd status 2>&1 | jq .SyncInfo
bitsongd status 2>&1 | jq .ValidatorInfo
```

**Check node logs**

```bash
sudo journalctl -fu bitsongd -o cat
```

**Check service status**

```bash
sudo systemctl status bitsongd 
```

**Restart service**

```bash
sudo systemctl restart bitsongd 
```

**Stop service**

```bash
sudo systemctl stop bitsongd 
```

**Start service**

```bash
sudo systemctl start bitsongd 
```

**reload/disable/enable**

```bash
sudo systemctl daemon-reload
sudo systemctl disable bitsongd 
sudo systemctl enable bitsongd 
```

**Your Peer**

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

## 🥅Working with keys

**New Key or Recover Key**

```bash
bitsongd keys add Wallet_Name
      OR
bitsongd keys add Wallet_Name --recover
```

**Check all keys**

```python
bitsongd keys list
```

**Check Balance**

```bash
bitsongd query bank balances bitsong...addressjkl1yjgn7z09ua9vms259j
```

**Delete Key**

```python
bitsongd keys delete Wallet_Name
```

**Export Key**

```bash
bitsongd keys export wallet
```

**Import Key**

```bash
bitsongd keys import wallet wallet.backup
```

## 🚀Validator Management

**Edit Validator**

```python
bitsongd tx staking edit-validator \
--new-moniker "Your_Moniker" \
--identity "Keybase_ID" \
--details "Your_Description" \
--website "Your_Website" \
--security-contact "Your_Email" \
--chain-id bitsong-2b \
--commission-rate 0.05 \
--from Wallet_Name \
--gas 350000 \
--fees 7000ubtsg -y
```

**Your Valoper-Address**

```bash
bitsongd keys show Wallet_Name --bech val
```

**Your Valcons-Address**

```bash
bitsongd tendermint show-address
```

**Your Validator-Info**

```bash
bitsongd query staking validator bitsongvaloperaddress......
```

**Jail Info**

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

**Unjail**

```python
bitsongd tx slashing unjail --from Wallet_name --chain-id bitsong-2b --gas 350000 --fees 1000000"ubtsg" -y
```

**Active Validators List**

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

**Inactive Validators List**

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

**Check that your key matches the validator (Win -&#x20;**<mark style="color:green;">**Good**</mark>**. Lose -&#x20;**<mark style="color:red;">**Bad**</mark>**)**

```bash
VALOPER=Enter_Your_valoper_Here
[[ $(bitsongd q staking validator $VALOPER -oj | jq -r .consensus_pubkey.key) = $(bitsongd status | jq -r .ValidatorInfo.PubKey.value) ]] && echo -e "\nYou win\n" || echo -e "\nYou lose\n"
```

**Withdraw all rewards from all validators**

```python
bitsongd tx distribution withdraw-all-rewards --from Wallet_Name --chain-id bitsong-2b --gas 350000 --fees 1000000"ubtsg" -y
```

**Withdraw and commission from your Validator**

```bash
bitsongd tx distribution withdraw-rewards bitsongvaloper1amxp0k0hg4edrxg85v07t9ka2tfuhamhldgf8e --from Wallet_Name --gas 350000 --fees 1000000"ubtsg" --chain-id=bitsong-2b --commission -y
```

**Delegate tokens to your validator**

```python
bitsongd tx staking delegate Your_bitsongvalpoer........ 1000000"ubtsg" --from Wallet_Name --gas 350000 --fees 1000000"ubtsg" --chain-id=bitsong-2b -y
```

**Delegate tokens to different validator**

```python
bitsongd tx staking delegate bitsongvalpoer........ 1000000"ubtsg" --from Wallet_Name --gas 350000 --fees 1000000"ubtsg" --chain-id=bitsong-2b -y
```

**Redelegate tokens to another validator**

```python
bitsongd tx staking redelegate Your_bitsongvalpoer........ bitsongvalpoer........ 1000000"ubtsg" --from Wallet_Name --gas 350000 --fees 1000000"ubtsg"  --chain-id=bitsong-2b -y
```

**Unbond tokens from your validator or different validator**

```python
bitsongd tx staking unbond Your_bitsongvalpoer........ 1000000"ubtsg"  --from Wallet_Name --gas 350000 --fees 1000000"ubtsg"  --chain-id=bitsong-2b -y
bitsongd tx staking unbond bitsongvalpoer........ 1000000"ubtsg"  --from Wallet_Name --gas 350000 --fees 1000000"ubtsg"  --chain-id=bitsong-2b -y
```

**Transfer tokens from wallet to wallet**

<pre class="language-python"><code class="lang-python"><strong>bitsongd tx bank send Your_bitsongaddress............ bitsongaddress........... 1000000"ubtsg" --gas 350000 --fees 1000000"ubtsg" --chain-id=bitsong-2b -y
</strong></code></pre>

## 📝Governance

**View all proposals**

```bash
bitsongd query gov proposals
```

**View specific proposal**

```bash
bitsongd query gov proposal 1
```

**Vote yes**

```python
bitsongd tx gov vote 1 yes --from Wallet_Name --gas 350000 --fees 1000000"ubtsg" --chain-id=bitsong-2b -y
```

**Vote no**

```python
bitsongd tx gov vote 1 no --from Wallet_Name --gas 350000 --fees 1000000"ubtsg" --chain-id=bitsong-2b -y
```

**Vote abstain**

```python
bitsongd tx gov vote 1 abstain --from Wallet_Name --gas 350000 --fees 1000000"ubtsg" --chain-id=bitsong-2b -y
```

**Vote no\_with\_veto**

```python
bitsongd tx gov vote 1 no_with_veto --from Wallet_Name --gas 350000 --fees 1000000"ubtsg" --chain-id=bitsong-2b -y
```

## 📡IBC transfer

* for exapmle - Bitsong-> Osmosis

```python
bitsongd tx ibc-transfer transfer transfer channel-2 Your_OSMOaddress............ 1000000"ubtsg" --from Your_Bitsong_Wallet_Name ---gas 350000 --fees 1000000"ubtsg" --chain-id=bitsong-2b -y
```
