# CLI Cheatsheet

<figure><img src="https://pbs.twimg.com/profile_images/1524402382809231365/AeJ-i5f1_400x400.jpg" alt="" width="188"><figcaption></figcaption></figure>

### Key Management

Add new key

```
entangled keys add wallet
```

Recover existing key

```
entangled keys add wallet --recover
```

List All key

```
entangled keys list
```

Delete key

```
entangled keys delete wallet
```

Export Key (save to wallet.backup)

```
entangled keys export wallet
```

Import key

```
entangled keys import wallet wallet.backup
```

Query Wallet Balance

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

### Validator Management

Create Validator

```sh
entangled tx staking create-validator \
  --amount "1000000000000000000aNGL" \
  --pubkey $(entangled tendermint show-validator) \
  --moniker "MONIKER" \
  --identity "KEYBASE_ID" \
  --details "YOUR DETAILS" \
  --website "YOUR WEBSITE" \
  --chain-id entangle_33133-1 \
  --commission-rate "0.05" \
  --commission-max-rate "0.20" \
  --commission-max-change-rate "0.01" \
  --min-self-delegation "1" \
  --gas-prices "10aNGL" \
  --gas "500000" \
  --gas-adjustment "1.5" \
  --from wallet \
  -y

```

Edit Validator

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

Unjail Validator

```sh
entangled tx slashing unjail --from wallet --chain-id entangle_33133-1 --gas-prices=10aNGL --gas-adjustment 1.5 --gas "500000" -y 
```

Signing Info

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

List all active validators

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

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

### Token Management

Withdraw rewards from all validators

```sh
entangled tx distribution withdraw-all-rewards --from wallet --chain-id entangle_33133-1 --gas-prices=10aNGL --gas-adjustment 1.5 --gas "500000" -y 
```

Withdraw comission and rewards from your validator

```sh
entangled tx distribution withdraw-rewards $(entangled keys show wallet --bech val -a) --commission --from wallet --chain-id entangle_33133-1 --gas-prices=10aNGL --gas-adjustment 1.5 --gas "500000" -y 
```

Delegate to your validator

```sh
entangled tx staking delegate $(entangled keys show wallet --bech val -a) 1000000aNGL --from wallet --chain-id entangle_33133-1 --gas-prices=10aNGL --gas-adjustment 1.5 --gas "500000" -y 
```

Delegate to other

```sh
c4ed tx staking delegate TO_VALOPER_ADDRESS 1000000aNGL --from wallet --chain-id entangle_33133-1 --gas-prices=10aNGL --gas-adjustment 1.5 --gas "500000" -y 
```

Redelegate your stake to other validators

```sh
entangled tx staking redelegate $(entangled keys show wallet --bech val -a) TO_VALOPER_ADDRESS 1000000aNGL --from wallet --chain-id entangle_33133-1 --gas-prices=10aNGL --gas-adjustment 1.5 --gas "500000" -y 
```

Unbond stake

```sh
entangled tx staking unbond $(entangled keys show wallet --bech val -a) 1000000aNGL --from wallet --chain-id entangle_33133-1 --gas-prices=10aNGL --gas-adjustment 1.5 --gas "500000" -y 
```

Send tokens

```sh
entangled tx bank send wallet TO_WALLET_ADDRESS 1000000aNGL --from wallet --chain-id entangle_33133-1 --gas-prices=10aNGL --gas-adjustment 1.5 --gas "500000" -y 
```

### Governance

List all proposals

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

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

```sh
entangled tx gov vote 1 yes --from wallet --chain-id entangle_33133-1 --gas-prices=10aNGL --gas-adjustment 1.5 --gas "500000" -y 
```

Create new text proposal

```sh
entangled tx gov submit-proposal \
--title="Title" \
--description="Description" \
--deposit=100000000aNGL \
--type="Text" \
--from=wallet \
--gas-prices 10aNGL\ 
--gas-adjustment 1.5 \
--gas "500000" \
-y 
```

### Utility

Set Indexer **NULL / KV**

```sh
sed -i 's|^indexer *=.*|indexer = "null"|' $HOME/.entangled /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/.entangled/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/.entangled/config/app.toml
```

Get Validator info

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

Get denom info

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

Get sync status

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

Get latest height

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

Reset Node

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

Delete Node

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

### Services Management

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

# Enable Service
sudo systemctl enable entangled

# Disable Service
sudo systemctl disable entangled

# Start Service
sudo systemctl start entangled

# Stop Service
sudo systemctl stop entangled

# Restart Service
sudo systemctl restart entangled

# Check Service Status
sudo systemctl status entangled

# Check Service Logs
sudo journalctl -u entangled -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/testnet/entangle/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.
