# Commands

## 📚Useful commands📚

## ⚙️Service

**Info**

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

**Check node logs**

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

**Check service status**

```bash
sudo systemctl status bcnad 
```

**Restart service**

```bash
sudo systemctl restart bcnad 
```

**Stop service**

```bash
sudo systemctl stop bcnad 
```

**Start service**

```bash
sudo systemctl start bcnad 
```

**reload/disable/enable**

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

**Your Peer**

```bash
echo $(bcnad tendermint show-node-id)'@'$(wget -qO- eth0.me)':'$(cat $HOME/.bcna/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
bcnad keys add Wallet_Name
      OR
bcnad keys add Wallet_Name --recover
```

**Check all keys**

```python
bcnad keys list
```

**Check Balance**

```bash
bcnad query bank balances bcna...addressjkl1yjgn7z09ua9vms259j
```

**Delete Key**

```python
bcnad keys delete Wallet_Name
```

**Export Key**

```bash
bcnad keys export wallet
```

**Import Key**

```bash
bcnad keys import wallet wallet.backup
```

## 🚀Validator Management

**Edit Validator**

```python
bcnad tx staking edit-validator \
--new-moniker "Your_Moniker" \
--identity "Keybase_ID" \
--details "Your_Description" \
--website "Your_Website" \
--security-contact "Your_Email" \
--chain-id bitcanna-1 \
--commission-rate 0.05 \
--from Wallet_Name \
--gas 350000 \
--fees 700ubcna-y
```

**Your Valoper-Address**

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

**Your Valcons-Address**

```bash
bcnad tendermint show-address
```

**Your Validator-Info**

```bash
bcnad query staking validator bcnavaloperaddress......
```

**Jail Info**

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

**Unjail**

```python
bcnad tx slashing unjail --from Wallet_name --chain-id bitcanna-1 --gas 350000 --fees 70000ubcna -y
```

**Active Validators List**

```bash
bcnad 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
bcnad 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
[[ $(bcnad q staking validator $VALOPER -oj | jq -r .consensus_pubkey.key) = $(bcnad status | jq -r .ValidatorInfo.PubKey.value) ]] && echo -e "\nYou win\n" || echo -e "\nYou lose\n"
```

**Withdraw all rewards from all validators**

```python
bcnad tx distribution withdraw-all-rewards --from Wallet_Name --chain-id bitcanna-1 --gas 350000 --fees 700ubcna  -y
```

**Withdraw and commission from your Validator**

```bash
bcnad tx distribution withdraw-rewards bcnavaloper1amxp0k0hg4edrxg85v07t9ka2tfuhamhldgf8e --from Wallet_Name --gas 350000 --fees 7000ubcna --chain-id=bitcanna-1 --commission -y
```

**Delegate tokens to your validator**

```python
bcnad tx staking delegate Your_bcnavalpoer........ "100000000"ubcna --from Wallet_Name --gas 350000 --fees 70000ubcna --chain-id=bitcanna-1 -y
```

**Delegate tokens to different validator**

```python
bcnad tx staking delegate bcnavalpoer........ "100000000"ubcna --from Wallet_Name --gas 350000 --fees 7000ubcna --chain-id=bitcanna-1 -y
```

**Redelegate tokens to another validator**

```python
bcnad tx staking redelegate Your_bcnavalpoer........ bcnavalpoer........ "100000000"ubcna--from Wallet_Name --gas 350000 --fees 7000ubcna  --chain-id=bitcanna-1 -y
```

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

```python
bcnad tx staking unbond Your_bcnavalpoer........ "100000000"ubcna --from Wallet_Name --gas 350000 --fees 700ubcna --chain-id=bitcanna-1 -y
bcnad tx staking unbond bcnavalpoer........ "100000000"ubcna --from Wallet_Name --gas 350000 --fees 700ubcna --chain-id=bitcanna-1 -y
```

**Transfer tokens from wallet to wallet**

```python
bcnad tx bank send Your_bcnaaddress............ bcnaaddress........... "1000000000000000000"ubcna--gas 350000 --fees 700ubcna--chain-id=bitcanna-1 -y
```

## 📝Governance

**View all proposals**

```bash
bcnad query gov proposals
```

**View specific proposal**

```bash
bcnad query gov proposal 1
```

**Vote yes**

```python
bcnad tx gov vote 1 yes --from Wallet_Name --gas 350000 --fees 700ubcna --chain-id=bitcanna-1 -y
```

**Vote no**

```python
bcnad tx gov vote 1 no --from Wallet_Name --gas 350000 --fees 700ubcna --chain-id=bitcanna-1 -y
```

**Vote abstain**

```python
bcnad tx gov vote 1 abstain --from Wallet_Name --gas 350000 --fees 7000ubcna --chain-id=bitcanna-1 -y
```

**Vote no\_with\_veto**

```python
bcnad tx gov vote 1 no_with_veto --from Wallet_Name --gas 350000 --fees 7000ubcna --chain-id=bitcanna-1 -y
```

## 📡IBC transfer

* for exapmle - BCNA-> Osmosis

```python
bcnad tx ibc-transfer transfer transfer channel-2 Your_OSMOaddress............ "100000"ubcna --from Your_Bitcanna_Wallet_Name ---gas 350000 --fees 700ubcna --chain-id=bitcanna-1 -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/bitcanna/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.
