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: juno-1 | Latest Version Tag: v25.0.0
junod keys add wallet
junod keys add wallet --recover
junod keys list
junod keys delete wallet
junod keys export wallet
junod keys import wallet wallet.backup
junod q bank balances $(junod keys show wallet -a)
junod tx staking create-validator \
--amount=1000000ujuno \
--pubkey=$(junod tendermint show-validator) \
--moniker="YOUR_MONIKER_NAME" \
--identity="YOUR_KEYBASE_ID" \
--details="YOUR_DETAILS" \
--website="YOUR_WEBSITE_URL"
--chain-id=juno-1 \
--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
junod tx staking edit-validator \
--moniker="YOUR_MONIKER_NAME" \
--identity="YOUR_KEYBASE_ID" \
--details="YOUR_DETAILS" \
--website="YOUR_WEBSITE_URL"
--chain-id=juno-1 \
--commission-rate=0.05 \
--from=wallet \
--gas-adjustment=1.4 \
--gas=auto \
-y
junod tx slashing unjail --from wallet --chain-id juno-1 --gas-adjustment 1.4 --gas auto -y
junod query slashing signing-info $(junod tendermint show-validator)
junod 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
junod 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
junod q staking validator $(junod keys show wallet --bech val
junod tx distribution withdraw-all-rewards --from wallet --chain-id juno-1 --gas-adjustment 1.4 --gas auto -y
junod tx distribution withdraw-rewards $(junod keys show wallet --bech val -a) --commission --from wallet --chain-id juno-1 --gas-adjustment 1.4 --gas auto --y
junod tx staking delegate $(junod keys show wallet --bech val -a) 1000000ujuno --from wallet --chain-id juno-1 --gas-adjustment 1.4 --gas auto -y
junod tx staking delegate <TO_VALOPER_ADDRESS> 1000000.juno --from wallet --chain-id juno-1 --gas-adjustment 1.4 --gas auto -y
junod tx staking redelegate $(junod keys show wallet --bech val <TO_VALOPER_ADDRESS> 1000000ujuno --from wallet --chain-id juno-1 --gas-adjustment 1.4 --gas auto -y
junod tx staking unbond $(junod keys show wallet --bech val -a) 1000000ujuno --from wallet --chain-id juno-1 --gas-adjustment 1.4 --gas auto -y
junod tx bank send wallet <TO_WALLET_ADDRESS> 1000000ujuno --from wallet --chain-id juno-1
junod query gov proposals
junod query gov proposal 1
junod tx gov vote 1 yes --from wallet --chain-id juno-1 --gas-adjustment 1.4 --gas auto -y
junod tx gov vote 1 no --from wallet --chain-id juno-1 --gas-adjustment 1.4 --gas auto -y
junod tx gov vote 1 abstain --from wallet --chain-id juno-1 --gas-adjustment 1.4 --gas auto -y
junod tx gov vote 1 nowithveto --from wallet --chain-id juno-1 --gas-adjustment 1.4 --gas auto -y
CUSTOM_PORT=126
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/.juno/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/.juno/config/app.toml
Disable indexer
sed -i -e 's|^indexer *=.*|indexer = "null"|' $HOME/.juno/config/config.toml
Enable indexer
sed -i -e 's|^indexer *=.*|indexer = "kv"|' $HOME/.juno/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/.juno/config/app.toml
junod status 2>&1 | jq .ValidatorInfo
junod status 2>&1 | jq .SyncInfo
echo $(junod tendermint show-node-id)'@'$(curl -s ifconfig.me)':'$(cat $HOME/.juno/config/config.toml | sed -n '/Address to listen for incoming connection/{n;p;}' | sed 's/.*://; s/".*//')
[[ $(junod q staking validator $(junod keys show wallet --bech val -a) -oj | jq -r .consensus_pubkey.key) = $(junod 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.juno\"/" $HOME/.juno/config/app.toml
sed -i -e "s/prometheus = false/prometheus = true/" $HOME/.juno/config/config.toml
junod tendermint unsafe-reset-all --home $HOME/.juno --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 junod
sudo systemctl disable junod
sudo rm /etc/systemd/system/junod.service
sudo systemctl daemon-reload
rm -f $(which junod)
rm -rf $HOME/.juno
rm -rf $HOME/juno
sudo systemctl daemon-reload
sudo systemctl enable junod
sudo systemctl disable junod
sudo systemctl start junod
sudo systemctl stop junod
sudo systemctl restart junod
sudo systemctl status junod
sudo journalctl -u junod -f --no-hostname -o cat