# Useful CLI Commands

Get standard debug info from the `source` daemon:

```bash
sourced status
```

Check if your node is catching up:

```bash
# Query via the RPC (default port: 26657)
curl http://localhost:26657/status | jq .result.sync_info.catching_up
```

Get your node ID:

```bash
sourced tendermint show-node-id
```

{% hint style="info" %}
Your peer address will be the result of this plus host and port, i.e. `<id>@<host>:26656` if you are using the default port.
{% endhint %}

Check if you are jailed or tombstoned:

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

Set the default chain for commands to use:

```bash
sourced config chain-id source-1
```

Get your `valoper` address:

```bash
sourced keys show <your-key-name> -a --bech val
```

See keys on the current box:

```bash
sourced keys list
```

Import a key from a mnemonic:

```bash
sourced keys add <new-key-name> --recover
```

Export a private key (warning: don't do this unless you know what you're doing!)

```bash
sourced keys export <your-key-name> --unsafe --unarmored-hex
```

Withdraw rewards (including validator commission), where `sourcevaloper1...` is the validator address:

```bash
sourced tx distribution withdraw-rewards <sourcevaloper1...> --from <your-key>  --commission
```

Stake:

```bash
sourced tx staking delegate <sourcevaloper1...> <AMOUNT>usource --from <your-key>
```

Find out what the JSON for a command would be using `--generate-only`:

```bash
sourced tx bank send $(sourced keys show <your-key-name> -a) <recipient addr> <AMOUNT>usource --generate-only
```

Add Funds to Community Pool

```
sourced tx distribution fund-community-pool <AMOUNT>usource --from $(sourced keys show <your-key-name> -a) --chain-id source-1
```

Delegate to Gov proposal

```
sourced query gov deposit <proposal-id> <AMOUNT>usource --from <your-key> --chain-id source-1
```

Vote on Proposal

```
sourced tx gov vote <proposal-id> <Option,yes/no/etc> --from <your-key> --chain-id source-1
```

Query the results of a gov vote that has ended, from a remote RPC (NB - you have to specify a height before the vote ended):

```bash
 sourced q gov votes 1 --height <height-before-vote-ended> --node https://testnet.sourceprotocol.io:26657/
```

Query the validator set (and jailed status) via CLI:

```bash
sourced query staking validators --limit 1000 -o json | jq -r '.validators[] | [.operator_address, (.tokens|tonumber / pow(10; 6)), .description.moniker, .jail, .status] | @csv' | column -t -s"," | sort -k2 -n -r | nl
```

Query Staking Delegations

```
sourced query staking delegations-to <sourcevaloper1...> --chain-id source-1
```

Unjail Validator

```
sourced tx slashing unjail --from=source-user --chain-id=source-1
```

Get contract state:

```bash
sourced q wasm contract-state all <contract-address>
```


---

# 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.sourceprotocol.io/command-line-interface-cli/useful-cli-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.
