# 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
```


---

# 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://stavr-team.gitbook.io/nodes-guides/mainnets/bitsong/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.
