# Commands

## 📚Useful commands📚

## ⚙️Service

**Info**

```python
celestia-appd status 2>&1 | jq .NodeInfo
celestia-appd status 2>&1 | jq .SyncInfo
celestia-appd status 2>&1 | jq .ValidatorInfo
```

**Check node logs**

```python
sudo journalctl -fu celestia-appd -o cat
```

**Check service status**

```python
sudo systemctl status celestia-appd 
```

**Restart service**

```python
sudo systemctl restart celestia-appd 
```

**Stop service**

```python
sudo systemctl stop celestia-appd 
```

**Start service**

```python
sudo systemctl start celestia-appd 
```

**reload/disable/enable**

```python
sudo systemctl daemon-reload
sudo systemctl disable celestia-appd 
sudo systemctl enable celestia-appd 
```

**Your Peer**

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

## 🥅Working with keys

**New Key or Recover Key**

```python
celestia-appd keys add Wallet_Name
      OR
celestia-appd keys add Wallet_Name --recover
```

**Check all keys**

```python
celestia-appd keys list
```

**Check Balance**

```python
celestia-appd query bank balances addressjkl1yjgn7z09ua9vms259j
```

**Delete Key**

```python
celestia-appd keys delete Wallet_Name
```

**Export Key**

```python
celestia-appd keys export wallet
```

**Import Key**

```python
celestia-appd keys import wallet wallet.backup
```

## 🚀Validator Management

**Edit Validator**

```python
celestia-appd tx staking edit-validator \
--new-moniker "Your_Moniker" \
--identity "Keybase_ID" \
--details "Your_Description" \
--website "Your_Website" \
--security-contact "Your_Email" \
--chain-id mocha-4 \
--commission-rate 0.05 \
--from Wallet_Name \
--gas auto --gas-adjustment 1.5 --gas-prices 0.005utia -y
```

**Your Valoper-Address**

```python
celestia-appd keys show Wallet_Name --bech val
```

**Your Valcons-Address**

```python
celestia-appd tendermint show-address
```

**Your Validator-Info**

```python
celestia-appd query staking validator valoperaddress......
```

**Jail Info**

```python
celestia-appd query slashing signing-info $(celestia-appd tendermint show-validator)
```

**Unjail**

```python
celestia-appd tx slashing unjail --from Wallet_name --chain-id mocha-4 --gas 350000 -y
```

**Active Validators List**

```python
celestia-appd 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**

```python
celestia-appd 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 -** [<mark style="color:red;">**Bad**</mark>](#user-content-fn-1)[^1]**)**

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

**Withdraw all rewards from all validators**

```python
celestia-appd tx distribution withdraw-all-rewards --from Wallet_Name --chain-id mocha-4 --gas 350000 -y
```

**Withdraw and commission from your Validator**

```python
celestia-appd tx distribution withdraw-rewards valoper1amx.......g85v07t9ka2tfuhamhldgf8e --from Wallet_Name --gas 350000 --chain-id=mocha-4 --commission -y
```

**Delegate tokens to your validator**

```python
celestia-appd tx staking delegate Your_valpoer........ "100000000"utia --from Wallet_Name --gas 350000 --chain-id=mocha-4 -y
```

**Delegate tokens to different validator**

```python
celestia-appd tx staking delegate valpoer........ "100000000"utia --from Wallet_Name --gas 350000 --chain-id=mocha-4 -y
```

**Redelegate tokens to another validator**

```python
celestia-appd tx staking redelegate Your_valpoer........ valpoer........ "100000000"utia --from Wallet_Name --gas 350000  --chain-id=mocha-4 -y
```

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

```python
celestia-appd tx staking unbond Your_valpoer........ "100000000"utia --from Wallet_Name --gas 350000 --chain-id=mocha-4 -y
celestia-appd tx staking unbond valpoer........ "100000000"utia --from Wallet_Name --gas 350000 --chain-id=mocha-4 -y
```

**Transfer tokens from wallet to wallet**

```python
celestia-appd tx bank send Your_address............ address........... "1000000000000000000"utia --gas 350000 --chain-id=mocha-4 -y
```

## 📝Governance

**View all proposals**

```python
celestia-appd query gov proposals
```

**View specific proposal**

```python
celestia-appd query gov proposal 1
```

**Vote yes**

```python
celestia-appd tx gov vote 1 yes --from Wallet_Name --gas 350000  --chain-id=mocha-4 -y
```

**Vote no**

```python
celestia-appd tx gov vote 1 no --from Wallet_Name --gas 350000  --chain-id=mocha-4 -y
```

**Vote abstain**

```python
celestia-appd tx gov vote 1 abstain --from Wallet_Name --gas 350000  --chain-id=mocha-4 -y
```

**Vote no\_with\_veto**

```python
celestia-appd tx gov vote 1 no_with_veto --from Wallet_Name --gas 350000  --chain-id=mocha-4 -y
```

## 📡IBC transfer

* for exapmle - Celestia -> Osmosis

```python
celestia-appd tx ibc-transfer transfer transfer channel-2 Your_OSMOaddress............ "100000"utia --from Celestia_Wallet_Name ---gas 350000 --chain-id=mocha-4 -y
```

[^1]:


---

# 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/testnets/celestia/validator-node/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.
