Skip to content

CLI Cheatsheet

Key management

Add new key

entangled keys add wallet

Recover existing key

entangled keys add wallet --recover

Get bech32 to hex wallet

echo "0x$(entangled debug addr $(entangled keys show wallet -a) | grep hex | awk '{print $3}')"

List all keys

entangled keys list

Delete key

entangled keys delete wallet

Export key to the file

entangled keys export wallet

Import key from the file

entangled keys import wallet wallet.backup

Wallet balance

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

Token management

Withdraw rewards from all validators

entangled tx distribution withdraw-all-rewards --from wallet --chain-id entangle_33033-1 --gas-adjustment 1.4 --gas 500000 --gas-prices 10aNGL -y

Withdraw rewards and commissions from your validator

entangled tx distribution withdraw-rewards $(entangled keys show wallet --bech val -a) --commission --from wallet --chain-id entangle_33033-1 --gas-adjustment 1.4 --gas 500000 --gas-prices 10aNGL -y

Delegate tokens to yourself

entangled tx staking delegate $(entangled keys show wallet --bech val -a) 1000000000000000000aNGL --from wallet --chain-id entangle_33033-1 --gas-adjustment 1.4 --gas 500000 --gas-prices 10aNGL -y

Delegate tokens to validator

entangled tx staking delegate <TO_VALOPER_ADDRESS> 1000000000000000000aNGL --from wallet --chain-id entangle_33033-1 --gas-adjustment 1.4 --gas 500000 --gas-prices 10aNGL -y

Redelegate tokens to another validator

entangled tx staking redelegate $(entangled keys show wallet --bech val -a) <TO_VALOPER_ADDRESS> 1000000000000000000aNGL --from wallet --chain-id entangle_33033-1 --gas-adjustment 1.4 --gas 500000 --gas-prices 10aNGL -y

Unbond tokens from your validator

entangled tx staking unbond $(entangled keys show wallet --bech val -a) 1000000000000000000aNGL --from wallet --chain-id entangle_33033-1 --gas-adjustment 1.4 --gas 500000 --gas-prices 10aNGL -y

Send tokens to the wallet

entangled tx bank send wallet <TO_WALLET_ADDRESS> 1000000000000000000aNGL --from wallet --chain-id entangle_33033-1 --gas-adjustment 1.4 --gas 500000 --gas-prices 10aNGL -y

Validator management

Validator info

entangled status 2>&1 | jq .ValidatorInfo

Validator details

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

Check if validator key is correct

[[ $(entangled q staking validator $(entangled keys show wallet --bech val -a) -oj | jq -r .consensus_pubkey.key) = $(entangled status | jq -r .ValidatorInfo.PubKey.value) ]] && echo -e "\n\e[1m\e[32mTrue\e[0m\n" || echo -e "\n\e[1m\e[31mFalse\e[0m\n"

List all active validators

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

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

Edit existing validator

entangled tx staking edit-validator \
--new-moniker "YOUR_MONIKER_NAME" \
--identity "YOUR_KEYBASE_ID" \
--details "YOUR_DETAILS" \
--website "YOUR_WEBSITE_URL" \
--security-contact "YOUR_EMAIL_ADDRESS" \
--chain-id entangle_33033-1 \
--commission-rate 0.05 \
--from wallet \
--gas-adjustment 1.4 \
--gas 500000 \
--gas-prices 10aNGL \
-y

Jail reason

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

Unjail validator

entangled tx slashing unjail --from wallet --chain-id entangle_33033-1 --gas-adjustment 1.4 --gas 500000 --gas-prices 10aNGL -y

Governance

Create a new offer

entangled tx gov submit-proposal \
--title "" \
--description "" \
--deposit 10000000000000000000aNGL \
--type Text
--from wallet \
--gas-adjustment 1.4 \
--gas 500000 \
--gas-prices 10aNGL \
-y

List all proposals

entangled query gov proposals

View proposal by ID

entangled query gov proposal 1

Vote “YES”

entangled tx gov vote 1 yes --from wallet --chain-id entangle_33033-1 --gas-adjustment 1.4 --gas 500000 --gas-prices 10aNGL -y

Vote “NO”

entangled tx gov vote 1 no --from wallet --chain-id entangle_33033-1 --gas-adjustment 1.4 --gas 500000 --gas-prices 10aNGL -y

Vote “ABSTAIN”

entangled tx gov vote 1 abstain --from wallet --chain-id entangle_33033-1 --gas-adjustment 1.4 --gas 500000 --gas-prices 10aNGL -y

Vote “NOWITHVETO”

entangled tx gov vote 1 NoWithVeto --from wallet --chain-id entangle_33033-1 --gas-adjustment 1.4 --gas 500000 --gas-prices 10aNGL -y

Maintenance

Get sync info

entangled status 2>&1 | jq .SyncInfo

Get node peer

echo $(entangled tendermint show-node-id)'@'$(wget -qO- eth0.me)':'$(cat $HOME/.entangled/config/config.toml | sed -n '/Address to listen for incoming connection/{n;p;}' | sed 's/.*://; s/".*//')

Get live peers

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

Enable Prometheus

sed -i -e "s/prometheus = false/prometheus = true/" $HOME/.entangled/config/config.toml

Set minimum gas price

sed -i -e "s|^minimum-gas-prices *=.*|minimum-gas-prices = \"10aNGL\"|" $HOME/.entangled/config/app.toml

Disable indexer

sed -i -e 's|^indexer *=.*|indexer = "null"|' $HOME/.entangled/config/config.toml

Enable indexer

sed -i -e 's|^indexer *=.*|indexer = "kv"|' $HOME/.entangled/config/config.toml

Update pruning

sed -i -e 's|^pruning *=.*|pruning = "custom"|' $HOME/.entangled/config/app.toml
sed -i -e 's|^pruning-keep-recent *=.*|pruning-keep-recent = "100"|' $HOME/.entangled/config/app.toml
sed -i -e 's|^pruning-keep-every *=.*|pruning-keep-every = "0"|' $HOME/.entangled/config/app.toml
sed -i -e 's|^pruning-interval *=.*|pruning-interval = "10"|' $HOME/.entangled/config/app.toml

Filter peers and max peers

sed -i -e 's|^filter_peers *=.*|filter_peers = "true"|' $HOME/.entangled/config/config.toml
sed -i -e 's|^max_num_inbound_peers *=.*|max_num_inbound_peers = "50"|' $HOME/.entangled/config/config.toml
sed -i -e 's|^max_num_outbound_peers *=.*|max_num_outbound_peers = "20"|' $HOME/.entangled/config/config.toml

Update ports

CUSTOM_PORT=156
sed -i -e "s%^proxy_app = \"tcp://127.0.0.1:26658\"%proxy_app = \"tcp://127.0.0.1:${CUSTOM_PORT}58\"%; s%^laddr = \"tcp://127.0.0.1:26657\"%laddr = \"tcp://127.0.0.1:${CUSTOM_PORT}57\"%; s%^pprof_laddr = \"localhost:6060\"%pprof_laddr = \"localhost:${CUSTOM_PORT}60\"%; s%^laddr = \"tcp://0.0.0.0:26656\"%laddr = \"tcp://0.0.0.0:${CUSTOM_PORT}56\"%; s%^prometheus_listen_addr = \":26660\"%prometheus_listen_addr = \":${CUSTOM_PORT}66\"%" $HOME/.entangled/config/config.toml
sed -i -e "s%^address = \"tcp://0.0.0.0:1317\"%address = \"tcp://0.0.0.0:${CUSTOM_PORT}17\"%; s%^address = \":8080\"%address = \":${CUSTOM_PORT}80\"%; s%^address = \"0.0.0.0:9090\"%address = \"0.0.0.0:${CUSTOM_PORT}90\"%; s%^address = \"0.0.0.0:9091\"%address = \"0.0.0.0:${CUSTOM_PORT}91\"%" $HOME/.entangled/config/app.toml

Reset chain data

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

Delete node

sudo systemctl stop entangled
sudo systemctl disable entangled
sudo rm -rf /etc/systemd/system/entangled.service
sudo systemctl daemon-reload
sudo rm -f $(which entangled)
sudo rm -rf $HOME/.entangled
sudo rm -rf $HOME/entangle-blockchain

Service Management

Status service

sudo systemctl status entangled

Start service

sudo systemctl start entangled

Stop service

sudo systemctl stop entangled

Restart service

sudo systemctl restart entangled

Logs service

sudo journalctl -u entangled -f --no-hostname -o cat

Reload service

sudo systemctl daemon-reload

Enable service

sudo systemctl enable entangled

Disable service

sudo systemctl disable entangled