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