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