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


---

# 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://docs.cryptochemistry.io/mainnets/mars/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.
