> For the complete documentation index, see [llms.txt](https://stavr-team.gitbook.io/nodes-guides/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://stavr-team.gitbook.io/nodes-guides/mainnets/firmachain/commands.md).

# Commands

## 📚Useful commands📚

## ⚙️Service

**Info**

```python
firmachaind status 2>&1 | jq .NodeInfo
firmachaind status 2>&1 | jq .SyncInfo
firmachaind status 2>&1 | jq .ValidatorInfo
```

**Check node logs**

```python
sudo journalctl -fu firmachaind -o cat
```

**Check service status**

```python
sudo systemctl status firmachaind 
```

**Restart service**

```python
sudo systemctl restart firmachaind  
```

**Stop service**

```python
sudo systemctl stop firmachaind 
```

**Start service**

```python
sudo systemctl start firmachaind 
```

**reload/disable/enable**

```python
sudo systemctl daemon-reload
sudo systemctl disable firmachaind 
sudo systemctl enable firmachaind 
```

**Your Peer**

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

**Check all keys**

```python
firmachaind keys list
```

**Check Balance**

```python
firmachaind query bank balances addressjkl1yjgn7z09ua9vms259j
```

**Delete Key**

```python
firmachaind keys delete Wallet_Name
```

**Export Key**

```python
firmachaind keys export wallet
```

**Import Key**

```python
firmachaind keys import wallet wallet.backup
```

## 🚀Validator Management

**Edit Validator**

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

**Your Valoper-Address**

```python
firmachaind keys show Wallet_Name --bech val
```

**Your Valcons-Address**

```python
firmachaind tendermint show-address
```

**Your Validator-Info**

```python
firmachaind query staking validator valoperaddress......
```

**Jail Info**

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

**Unjail**

```python
firmachaind tx slashing unjail --from Wallet_name --chain-id colosseum-1 --gas 350000 -y
```

**Active Validators List**

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

**Withdraw all rewards from all validators**

```python
firmachaind tx distribution withdraw-all-rewards --from Wallet_Name --chain-id colosseum-1 --gas 350000 -y
```

**Withdraw and commission from your Validator**

```python
firmachaind tx distribution withdraw-rewards valoper1amx.......g85v07t9ka2tfuhamhldgf8e --from Wallet_Name --gas 350000 --chain-id=colosseum-1 --commission -y
```

**Delegate tokens to your validator**

```python
firmachaind  tx staking delegate Your_valpoer........ "100000000"ufct --from Wallet_Name --gas 350000 --chain-id=colosseum-1 -y
```

**Delegate tokens to different validator**

```python
firmachaind tx staking delegate valpoer........ "100000000"ufct --from Wallet_Name --gas 350000 --chain-id=colosseum-1 -y
```

**Redelegate tokens to another validator**

```python
firmachaind tx staking redelegate Your_valpoer........ valpoer........ "100000000"ufct --from Wallet_Name --gas 350000  --chain-id=colosseum-1 -y
```

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

```python
firmachaind tx staking unbond Your_valpoer........ "100000000"ufct --from Wallet_Name --gas 350000 --chain-id=colosseum-1 -y
firmachaind tx staking unbond valpoer........ "100000000"ufct --from Wallet_Name --gas 350000 --chain-id=colosseum-1 -y
```

**Transfer tokens from wallet to wallet**

```python
firmachaind tx bank send Your_address............ address........... "1000000000000000000"ufct --gas 350000 --chain-id=colosseum-1 -y
```

## 📝Governance

**View all proposals**

```python
firmachaind query gov proposals
```

**View specific proposal**

```python
firmachaind query gov proposal 1
```

**Vote yes**

```python
firmachaind tx gov vote 1 yes --from Wallet_Name --gas 350000  --chain-id=colosseum-1 -y
```

**Vote no**

```python
firmachaind tx gov vote 1 no --from Wallet_Name --gas 350000  --chain-id=colosseum-1 -y
```

**Vote abstain**

```python
firmachaind tx gov vote 1 abstain --from Wallet_Name --gas 350000  --chain-id=colosseum-1 -y
```

**Vote no\_with\_veto**

```python
firmachaind tx gov vote 1 no_with_veto --from Wallet_Name --gas 350000  --chain-id=colosseum-1 -y
```

## 📡IBC transfer

* for exapmle - Firmachain -> Osmosis

```python
firmachaind tx ibc-transfer transfer transfer channel-2 Your_OSMOaddress............ "100000"ufct --from Your_Firmachan_Wallet_Name ---gas 350000 --fees "7000"ufct --chain-id=colosseum-1 -y
```

[^1]:


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://stavr-team.gitbook.io/nodes-guides/mainnets/firmachain/commands.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
