Useful Command
Useful set of commands for node operators. From key management to chain governance.
Key Management
Add new key
elysd keys add walletRecover existing key
elysd keys add wallet --recoverList All key
elysd keys listDelete key
elysd keys delete walletExport Key (save to wallet.backup)
elysd keys export walletImport key
elysd keys import wallet wallet.backupQuery Wallet Balance
elysd q bank balances $(elysd keys show wallet -a)Validator Management
Create Validator
elysd tx staking create-validator \
--amount "1000000uelys" \
--pubkey $(elysd tendermint show-validator) \
--moniker "My Node Name" \
--identity "My Keybase ID" \
--details "My Node Details" \
--website "YOUR WEBSITE" \
--chain-id elys-1 \
--commission-rate "0.05" \
--commission-max-rate "0.2" \
--commission-max-change-rate "0.01" \
--min-self-delegation "1" \
--gas-prices 0.0003uelys \
--gas "auto" \
--gas-adjustment "1.5" \
--from wallet \
-yEdit Validator
elysd tx staking edit-validator \
--new-moniker "My Node Name" \
--identity "My Keybase ID" \
--details "My Node Details" \
--website "YOUR WEBSITE" \
--chain-id elys-1 \
--commission-rate "0.05" \
--gas-prices 0.0003uelys \
--gas "auto" \
--gas-adjustment "1.5" \
--from wallet \
-yUnjail Validator
elysd tx slashing unjail \
--chain-id elys-1 \
--gas-prices 0.0003uelys \
--gas-adjustment 1.5 \
--gas "auto" \
--from wallet \
-y Signing Info
elysd query slashing signing-info $(elysd tendermint show-validator) List all inactive validators
elysd q staking validators -oj --limit=3000 | jq '.validators[] | select(.status=="BOND_STATUS_BONDED")' | jq -r '(.tokens|tonumber/pow(10; 6)|floor|tostring) + " " + .description.moniker' | sort -gr | nl List all active validators
elysd 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) + " " + .description.moniker' | sort -gr | nl View validators details
elysd q staking validator $(elysd keys show wallet --bech val -a)
Token Management
Withdraw rewards from all validators
elysd tx distribution withdraw-all-rewards --from wallet --chain-id elys-1 --gas-prices 0.0003uelys --gas-adjustment 1.5 --gas "auto" -y Withdraw comission and rewards from your validator
elysd tx distribution withdraw-rewards $(elysd keys show wallet --bech val -a) --commission --from wallet --chain-id elys-1 --gas-prices 0.0003uelys --gas-adjustment 1.5 --gas "auto" -y Delegate to your validator
elysd tx staking delegate $(elysd keys show wallet --bech val -a) 1000000uelys --from wallet --chain-id elys-1 --gas-prices 0.0003uelys --gas-adjustment 1.5 --gas "auto" -y Delegate to other
elysd tx staking delegate TO_VALOPER_ADDRESS 1000000uelys --from wallet --chain-id elys-1 --gas-prices 0.0003uelys --gas-adjustment 1.5 --gas "auto" -y Redelegate your stake to other validators
elysd tx staking redelegate $(elysd keys show wallet --bech val -a) TO_VALOPER_ADDRESS 1000000uelys --from wallet --chain-id elys-1 --gas-prices 0.0003uelys --gas-adjustment 1.5 --gas "auto" -y Unbond stake
elysd tx staking unbond $(elysd keys show wallet --bech val -a) 1000000uelys --from wallet --chain-id elys-1 --gas-prices 0.0003uelys --gas-adjustment 1.5 --gas "auto" -y Send tokens
elysd tx bank send wallet TO_WALLET_ADDREESS 1000000uelys --from wallet --chain-id elys-1 --gas-prices 0.0003uelys --gas-adjustment 1.5 --gas "auto" -y Governance
Create new text proposal
elysd tx gov submit-proposal \
--title "New Prosposals" \
--description "Detailed Proposal Information" \
--deposit "1000000uelys" \
--type "Text" \
--from wallet \
--gas-prices 0.0003uelys \
--gas-adjustment 1.5 \
--gas "auto" \
-y List all proposals
elysd query gov proposalsVote
elysd tx gov vote PROPOSAL_NUMBER yes \
--from wallet \
--chain-id elys-1 \
--gas-prices 0.0003uelys \
--gas-adjustment 1.5 \
--gas "auto" \
-y Utility
Set Indexer to NULL
sed -i 's|^indexer *=.*|indexer = "null"|' $HOME/.elys/config/config.tomlSet Custom Port
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/.elys/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/.elys/config/app.tomlGet Validator info
elysd status 2>&1 | jq .ValidatorInfoGet denom info
elysd q bank denom-metadata -oj | jqGet sync status
elysd status 2>&1 | jq .SyncInfo.catching_upGet latest height
elysd status 2>&1 | jq .SyncInfo.latest_block_heightReset Node
elysd tendermint unsafe-reset-all --home $HOME/.elys --keep-addr-bookDelete Node
cd $HOME && sudo systemctl stop elysd && sudo systemctl disable elysd && sudo rm /etc/systemd/system/elysd.service && sudo systemctl daemon-reload && sudo rm -rf $(which elysd) && sudo rm -rf $HOME/.elys && sudo rm -rf $(which elysd) Services Management
Reload Service
sudo systemctl daemon-reloadEnable Service
sudo systemctl enable elysdDisable Service
sudo systemctl disable elysdStart Service
sudo systemctl start elysdStop Service
sudo systemctl stop elysdRestart Service
sudo systemctl restart elysdCheck Service Status
sudo systemctl status elysdCheck Service Logs
sudo journalctl -u elysd -f --no-hostname -o catLast updated