> For the complete documentation index, see [llms.txt](https://docs.cryptochemistry.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.cryptochemistry.io/mainnets/mars/commands.md).

# Commands

## Key Management

**Add a new key**

```bash
marsd keys add wallet_name
```

**Recover an existing wallet**

```bash
marsd keys add wallet_name --recover
```

**List all keys**

```bash
marsd keys list
```

## Validator Management

**Create a new validator**

```bash
marsd tx staking create-validator \
--amount=1000000 \
--pubkey=$(marsd tendermint show-validator) \
--moniker="YOUR_MONIKER_NAME" \
--identity="YOUR_KEYBASE_ID" \
--details="YOUR_DETAILS" \
--website="YOUR_WEBSITE_URL"
--chain-id=mars-1 \
--commission-rate=0.05 \
--commission-max-rate=0.20 \
--commission-max-change-rate=0.01 \
--min-self-delegation=1 \
--from=wallet_name \
--gas-adjustment=1.4 \
--gas=auto \
--gas-prices=0.0umars
```

**Unjail a validator**

```bash
marsd tx slashing unjail --from wallet_name --chain-id mars-1 --gas-adjustment 0 --gas auto --gas-prices 0.0umars
```

**Query Jail Reason**

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

## Token Management

**Query wallet balance**

```bash
marsd q bank balances $(marsd keys show wallet -a)
```

**Withdraw all rewards from validator, excluding commission**

```bash
marsd tx distribution withdraw-all-rewards --from wallet_name --chain-id mars-1 --gas-adjustment 0 --gas auto --gas-prices 0.0umars
```

**Withdraw all rewards and commission from validator**

```bash
marsd tx distribution withdraw-rewards $(marsd keys show wallet --bech val -a) --commission --from wallet_name --chain-id mars-1 --gas-adjustment 0 --gas auto --gas-prices 0.0umars
```

**Delegate tokens to yourself**

```bash
marsd tx staking delegate $(marsd keys show wallet --bech val -a) 1000000umars --from wallet_name --chain-id mars-1 --gas-adjustment 0 --gas auto --gas-prices 0.0umars
```

## Governance

**List all proposals**

```bash
marsd query gov proposals
```

**View a specific proposal**

> **NOTE:** Replace 1 with the desired proposal id

```bash
marsd query gov proposal 1
```

**Vote on a proposal**

> **NOTE:** Replace "1" with the desired proposal id. Replace "yes" with one of the cli commands from the table below.

The valid vote options are:

| CLI Command | Name         | Description                                                                                 |
| ----------- | ------------ | ------------------------------------------------------------------------------------------- |
| yes         | Yes          | Vote to pass the proposal                                                                   |
| no          | No           | Vote to not pass the proposal                                                               |
| abstain     | Abstain      | Vote to abstain from the proposal                                                           |
| nowithveto  | No With Veto | Vote to fail the proposal and burn the deposit. Typically only used for spam/scam proposals |

```bash
marsd tx gov vote 1 yes --from wallet_name --chain-id mars-1 --gas-adjustment 0 --gas auto --gas-prices 0.0umars
```

## Config Changes

## Maintenance and status

**Get validator info**

```bash
marsd status 2>&1 | jq .ValidatorInfo
```

**Get syncing info**

```bash
marsd status 2>&1 | jq .SyncInfo
```

**Get live peers**

> **NOTE:** Replace the `CUSTOM_PORT` value as needed. 26657 is the default port, but can change based on the `config.toml` settings.

```bash
CUSTOM_PORT="26657" && \
curl -sS http://localhost:${CUSTOM_PORT}/net_info | jq -r '.result.peers[] | "\(.node_info.id)@\(.remote_ip):\(.node_info.listen_addr)"' | awk -F ':' '{print $1":"$(NF)}'
```

**Reset chain data**

```bash
marsd tendermint unsafe-reset-all --home $HOME/.mars --keep-addr-book || \
marsd unsafe-reset-all --home $HOME/.mars --keep-addr-book
```

## Linux Service Management

**Check daemon/cosmovisor logs**

> **NOTE:** Replace `cosmovisor` with the systemd service name if different

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