Useful commands
Useful set of commands for node operators. From key management to chain governance.
Last updated
Useful set of commands for node operators. From key management to chain governance.
Last updated
Chain ID: {{ chain_id }} | Latest Version Tag: 3.0.0-rc0
{{ daemon }} keys add wallet
{{ daemon }} keys add wallet --recover
{{ daemon }} keys list
{{ daemon }} keys delete wallet
{{ daemon }} keys export wallet
{{ daemon }} keys import wallet wallet.backup
{{ daemon }} q bank balances $({{ daemon }} keys show wallet -a)
{{ daemon }} tx staking create-validator \
--amount=1000000uqsr \
--pubkey=$({{ daemon }} tendermint show-validator) \
--moniker="YOUR_MONIKER_NAME" \
--identity="YOUR_KEYBASE_ID" \
--details="YOUR_DETAILS" \
--website="YOUR_WEBSITE_URL"
--chain-id={{ chain_id }} \
--commission-rate=0.05 \
--commission-max-rate=0.20 \
--commission-max-change-rate=0.01 \
--min-self-delegation=1 \
--from=wallet \
--gas-adjustment=1.4 \
--gas=auto \
-y
{{ daemon }} tx staking edit-validator \
--moniker="YOUR_MONIKER_NAME" \
--identity="YOUR_KEYBASE_ID" \
--details="YOUR_DETAILS" \
--website="YOUR_WEBSITE_URL"
--chain-id={{ chain_id }} \
--commission-rate=0.05 \
--from=wallet \
--gas-adjustment=1.4 \
--gas=auto \
-y
{{ daemon }} tx slashing unjail --from wallet --chain-id {{ chain_id }} --gas-adjustment 1.4 --gas auto -y
{{ daemon }} query slashing signing-info $({{ daemon }} tendermint show-validator)
{{ daemon }} 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
{{ daemon }} 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
{{ daemon }} q staking validator $({{ daemon }} keys show wallet --bech val
{{ daemon }} tx distribution withdraw-all-rewards --from wallet --chain-id {{ chain_id }} --gas-adjustment 1.4 --gas auto -y
{{ daemon }} tx distribution withdraw-rewards $({{ daemon }} keys show wallet --bech val -a) --commission --from wallet --chain-id {{ chain_id }} --gas-adjustment 1.4 --gas auto --y
{{ daemon }} tx staking delegate $({{ daemon }} keys show wallet --bech val -a) 1000000uqsr --from wallet --chain-id {{ chain_id }} --gas-adjustment 1.4 --gas auto -y
{{ daemon }} tx staking delegate <TO_VALOPER_ADDRESS> 1000000{{ folder }} --from wallet --chain-id {{ chain_id }} --gas-adjustment 1.4 --gas auto -y
{{ daemon }} tx staking redelegate $({{ daemon }} keys show wallet --bech val <TO_VALOPER_ADDRESS> 1000000uqsr --from wallet --chain-id {{ chain_id }} --gas-adjustment 1.4 --gas auto -y
{{ daemon }} tx staking unbond $({{ daemon }} keys show wallet --bech val -a) 1000000uqsr --from wallet --chain-id {{ chain_id }} --gas-adjustment 1.4 --gas auto -y
{{ daemon }} tx bank send wallet <TO_WALLET_ADDRESS> 1000000uqsr --from wallet --chain-id {{ chain_id }}
{{ daemon }} query gov proposals
{{ daemon }} query gov proposal 1
{{ daemon }} tx gov vote 1 yes --from wallet --chain-id {{ chain_id }} --gas-adjustment 1.4 --gas auto -y
{{ daemon }} tx gov vote 1 no --from wallet --chain-id {{ chain_id }} --gas-adjustment 1.4 --gas auto -y
{{ daemon }} tx gov vote 1 abstain --from wallet --chain-id {{ chain_id }} --gas-adjustment 1.4 --gas auto -y
{{ daemon }} tx gov vote 1 nowithveto --from wallet --chain-id {{ chain_id }} --gas-adjustment 1.4 --gas auto -y
CUSTOM_PORT={{ custom_port_prefix }}
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}60\"%" $HOME/{{ folder }}/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/{{ folder }}/config/app.toml
Disable indexer
sed -i -e 's|^indexer *=.*|indexer = "null"|' $HOME/{{ folder }}/config/config.toml
Enable indexer
sed -i -e 's|^indexer *=.*|indexer = "kv"|' $HOME/{{ folder }}/config/config.toml
sed -i \
-e 's|^pruning *=.*|pruning = "custom"|' \
-e 's|^pruning-keep-recent *=.*|pruning-keep-recent = "100"|' \
-e 's|^pruning-keep-every *=.*|pruning-keep-every = "0"|' \
-e 's|^pruning-interval *=.*|pruning-interval = "19"|' \
$HOME/{{ folder }}/config/app.toml
{{ daemon }} status 2>&1 | jq .ValidatorInfo
{{ daemon }} status 2>&1 | jq .SyncInfo
echo $({{ daemon }} tendermint show-node-id)'@'$(curl -s ifconfig.me)':'$(cat $HOME/{{ folder }}/config/config.toml | sed -n '/Address to listen for incoming connection/{n;p;}' | sed 's/.*://; s/".*//')
[[ $({{ daemon }} q staking validator $({{ daemon }} keys show wallet --bech val -a) -oj | jq -r .consensus_pubkey.key) = $({{ daemon }} 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"
curl -sS http://localhost:26657/net_info | jq -r '.result.peers[] | "\(.node_info.id)@\(.remote_ip):\(.node_info.listen_addr)"' | awk -F ':' '{print $1":"$(NF)}'
sed -i -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0{{ folder }}\"/" $HOME/{{ folder }}/config/app.toml
sed -i -e "s/prometheus = false/prometheus = true/" $HOME/{{ folder }}/config/config.toml
{{ daemon }} tendermint unsafe-reset-all --home $HOME/{{ folder }} --keep-addr-book
Please, before proceeding with the next step! All chain data will be lost! Make sure you have backed up your priv_validator_key.json!
cd $HOME
sudo systemctl stop {{ daemon }}
sudo systemctl disable {{ daemon }}
sudo rm /etc/systemd/system/{{ daemon }}.service
sudo systemctl daemon-reload
rm -f $(which {{ daemon }})
rm -rf $HOME/{{ folder }}
rm -rf $HOME/{{ network }}
sudo systemctl daemon-reload
sudo systemctl enable {{ daemon }}
sudo systemctl disable {{ daemon }}
sudo systemctl start {{ daemon }}
sudo systemctl stop {{ daemon }}
sudo systemctl restart {{ daemon }}
sudo systemctl status {{ daemon }}
sudo journalctl -u {{ daemon }} -f --no-hostname -o cat