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 .validator_info
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=1000 | 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=1000 | 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 .sync_info
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.tomlsed -i -e 's|^pruning-keep-recent *=.*|pruning-keep-recent = "100"|' $HOME/.entangled/config/app.tomlsed -i -e 's|^pruning-interval *=.*|pruning-interval = "19"|' $HOME/.entangled/config/app.toml
Filter peers and max peers
sed -i -e 's|^filter_peers *=.*|filter_peers = "true"|' $HOME/.entangled/config/config.tomlsed -i -e 's|^max_num_inbound_peers *=.*|max_num_inbound_peers = "50"|' $HOME/.entangled/config/config.tomlsed -i -e 's|^max_num_outbound_peers *=.*|max_num_outbound_peers = "20"|' $HOME/.entangled/config/config.toml
Update ports
CUSTOM_PORT=156sed -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.tomlsed -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 entangledsudo systemctl disable entangledsudo rm -rf /etc/systemd/system/entangled.servicesudo systemctl daemon-reloadsudo rm -f $(which entangled)sudo rm -rf $HOME/.entangledsudo 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