# CLI Cheatsheet

<figure><img src="https://pbs.twimg.com/profile_images/1693591385469837313/6dYwFnXW_400x400.jpg" alt="" width="188"><figcaption></figcaption></figure>

### Key Management

Add new key

```
sged keys add wallet
```

Recover existing key

```
sged keys add wallet --recover
```

List All key

```
sged keys list
```

Delete key

```
sged keys delete wallet
```

Export Key (save to wallet.backup)

```
sged keys export wallet
```

Import key

```
sged keys import wallet wallet.backup
```

Query Wallet Balance

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

### Validator Management

Create Validator

```sh
sged tx staking create-validator \
  --amount "1000000usge" \
  --pubkey $(sged tendermint show-validator) \
  --moniker "MONIKER" \
  --identity "KEYBASE_ID" \
  --details "YOUR DETAILS" \
  --website "YOUR WEBSITE" \
  --chain-id sgenet-1 \
  --commission-rate "0.05" \
  --commission-max-rate "0.20" \
  --commission-max-change-rate "0.01" \
  --min-self-delegation "1" \
  --gas-prices "0.025usge" \
  --gas "auto" \
  --gas-adjustment "1.5" \
  --from wallet \
  -y

```

Edit Validator

```sh
sged tx staking edit-validator \
--new-moniker="MONIKER" \
--identity="YOUR_KEYBASE_ID" \
--details="YOUR_DETAILS" \
--website="YOUR_WEBSITE_URL" \
--chain-id sgenet-1 \
--commission-rate=0.05 \
--gas-prices "0.025usge" \
--gas="auto" \
--gas-adjustment="1.5" \
--from wallet \
-y
```

Unjail Validator

```sh
sged tx slashing unjail --from wallet --chain-id sgenet-1 --gas-prices "0.025usge" --gas-adjustment 1.5 --gas "auto" -y 
```

Signing Info

```sh
sged query slashing signing-info $(sged tendermint show-validator) 
```

List all active validators

```sh
sged 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 
```

List all inactive validators

```sh
sged q staking validators -oj --limit=3000 | jq '.validators[] | select(.status=="BOND_STATUS_UNBONDED") or .status=="BOND_STATUS_UNBONDING")' | jq -r '(.tokens|tonumber/pow(10; 6)|floor|tostring) + " \t " + .description.moniker' | sort -gr | nl 
```

View validators details

```
sged q staking validator $(sged keys show wallet --bech val -a) 
```

### Token Management

Withdraw rewards from all validators

```sh
sged tx distribution withdraw-all-rewards --from wallet --chain-id sgenet-1 --gas-prices "0.025usge" --gas-adjustment 1.5 --gas "auto" -y 
```

Withdraw comission and rewards from your validator

```sh
sged tx distribution withdraw-rewards $(sged keys show wallet --bech val -a) --commission --from wallet --chain-id sgenet-1 --gas-prices "0.025usge" --gas-adjustment 1.5 --gas "auto" -y 
```

Delegate to your validator

```sh
sged tx staking delegate $(sged keys show wallet --bech val -a) 1000000usge --from wallet --chain-id sgenet-1 --gas-prices "0.025usge" --gas-adjustment 1.5 --gas "auto" -y 
```

Delegate to other

```sh
c4ed tx staking delegate TO_VALOPER_ADDRESS 1000000usge --from wallet --chain-id sgenet-1 --gas-prices "0.025usge" --gas-adjustment 1.5 --gas "auto" -y 
```

Redelegate your stake to other validators

```sh
sged tx staking redelegate $(sged keys show wallet --bech val -a) TO_VALOPER_ADDRESS 1000000usge --from wallet --chain-id sgenet-1 --gas-prices "0.025usge" --gas-adjustment 1.5 --gas "auto" -y 
```

Unbond stake

```sh
sged tx staking unbond $(sged keys show wallet --bech val -a) 1000000usge --from wallet --chain-id sgenet-1 --gas-prices "0.025usge" --gas-adjustment 1.5 --gas "auto" -y 
```

Send tokens

```sh
sged tx bank send wallet TO_WALLET_ADDRESS 1000000usge --from wallet --chain-id sgenet-1 --gas-prices "0.025usge" --gas-adjustment 1.5 --gas "auto" -y 
```

### Governance

List all proposals

<pre class="language-sh"><code class="lang-sh"><strong>sged query gov proposals
</strong></code></pre>

Vote **YES / NO / ABSTAIN / NO\_WITH\_VETO**

```sh
sged tx gov vote 1 yes --from wallet --chain-id sgenet-1 --gas-prices "0.025usge" --gas-adjustment 1.5 --gas "auto" -y 
```

Create new text proposal

```sh
sged tx gov submit-proposal \
--title="Title" \
--description="Description" \
--deposit=100000000usge \
--type="Text" \
--from=wallet \
--gas-prices 0usge\ 
--gas-adjustment 1.5 \
--gas "auto" \
-y 
```

### Utility

Set Indexer **NULL / KV**

```sh
sed -i 's|^indexer *=.*|indexer = "null"|' $HOME/.sge/config/config.toml
```

Set Custom Port

```sh
CUSTOM_PORT=13
sed -i.bak -e "s%^proxy_app = \"tcp://127.0.0.1:26658\"%proxy_app = \"tcp://127.0.0.1:${CUSTOM_PORT}658\"%; s%^laddr = \"tcp://127.0.0.1:26657\"%laddr = \"tcp://127.0.0.1:${CUSTOM_PORT}657\"%; s%^pprof_laddr = \"localhost:6060\"%pprof_laddr = \"localhost:${CUSTOM_PORT}060\"%; s%^laddr = \"tcp://0.0.0.0:26656\"%laddr = \"tcp://0.0.0.0:${CUSTOM_PORT}656\"%; s%^prometheus_listen_addr = \":26660\"%prometheus_listen_addr = \":${CUSTOM_PORT}660\"%" $HOME/.sge/config/config.toml
sed -i.bak -e "s%^address = \"tcp://0.0.0.0:1317\"%address = \"tcp://0.0.0.0:${CUSTOM_PORT}317\"%; s%^address = \":8080\"%address = \":${CUSTOM_PORT}080\"%; s%^address = \"0.0.0.0:9090\"%address = \"0.0.0.0:${CUSTOM_PORT}090\"%; s%^address = \"0.0.0.0:9091\"%address = \"0.0.0.0:${CUSTOM_PORT}091\"%; s%^address = \"0.0.0.0:8545\"%address = \"0.0.0.0:${CUSTOM_PORT}545\"%; s%^ws-address = \"0.0.0.0:8546\"%ws-address = \"0.0.0.0:${CUSTOM_PORT}546\"%" $HOME/.sge/config/app.toml
```

Get Validator info

```sh
sged status 2>&1 | jq .ValidatorInfo
```

Get denom info

```sh
sged q bank denom-metadata -oj | jq
```

Get sync status

```sh
sged status 2>&1 | jq .SyncInfo.catching_up
```

Get latest height

```sh
sged status 2>&1 | jq .SyncInfo.latest_block_height
```

Reset Node

```sh
sged tendermint unsafe-reset-all --home $HOME/.sge --keep-addr-book
```

Delete Node

```sh
sudo systemctl stop sged && sudo systemctl disable sged && sudo rm /etc/systemd/system/sged.service && sudo systemctl daemon-reload && rm -rf $HOME/.sge && sudo rm -rf $(which sged) 
```

### Services Management

```sh
# Reload Service
sudo systemctl daemon-reload

# Enable Service
sudo systemctl enable sged

# Disable Service
sudo systemctl disable sged

# Start Service
sudo systemctl start sged

# Stop Service
sudo systemctl stop sged

# Restart Service
sudo systemctl restart sged

# Check Service Status
sudo systemctl status sged

# Check Service Logs
sudo journalctl -u sged -f --no-hostname -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.indonode.net/mainnet/sge/cheat.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.
