Useful commands
π Key managementβ
Add new keyβ
axelard keys add wallet
Recover existing keyβ
axelard keys add wallet --recover
List all keysβ
axelard keys list
Delete keyβ
axelard keys delete wallet
Export key to the fileβ
axelard keys export wallet
Import key from the fileβ
axelard keys import wallet wallet.backup
Query wallet balanceβ
axelard q bank balances $(axelard keys show wallet -a)
π· Validator managementβ
info
Please make sure you have adjusted moniker, identity, details and website to match your values.
Create new validatorβ
axelard tx staking create-validator \
--amount 1000000uaxl \
--pubkey $(axelard tendermint show-validator) \
--moniker "owlstake" \
--identity "6B73E2068E0C0C4C" \
--details "We are a Professional Validator of PoS Cryptocurrencies who helps investors and token holders gain profits from their assets by consistently increasing their yields via non-custodial staking. Join us, stake, and earn." \
--website "https://owlstake.com" \
--chain-id axelar-dojo-1 \
--commission-rate 0.05 \
--commission-max-rate 0.20 \
--commission-max-change-rate 0.1 \
--min-self-delegation 1 \
--from wallet \
--gas-adjustment 1.4 \
--gas auto \
--gas-prices 0.007uaxl \
-y
Edit existing validatorβ
axelard tx staking edit-validator \
--new-moniker "YOUR_MONIKER_NAME" \
--identity "YOUR_KEYBASE_ID" \
--details "YOUR_DETAILS" \
--website "YOUR_WEBSITE_URL" \
--chain-id axelar-dojo-1 \
--commission-rate 0.05 \
--from wallet \
--gas-adjustment 1.4 \
--gas auto \
--gas-prices 0.007uaxl \
-y
Unjail validatorβ
axelard tx slashing unjail --from wallet --chain-id axelar-dojo-1 --gas-adjustment 1.4 --gas auto --gas-prices 0.007uaxl -y
Jail reasonβ
axelard query slashing signing-info $(axelard tendermint show-validator)
List all active validatorsβ
axelard 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
List all inactive validatorsβ
axelard 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
View validator detailsβ
axelard q staking validator $(axelard keys show wallet --bech val -a)
π² Token managementβ
Withdraw rewards from all validatorsβ
axelard tx distribution withdraw-all-rewards --from wallet --chain-id axelar-dojo-1 --gas-adjustment 1.4 --gas auto --gas-prices 0.007uaxl -y
Withdraw commission and rewards from your validatorβ
axelard tx distribution withdraw-rewards $(axelard keys show wallet --bech val -a) --commission --from wallet --chain-id axelar-dojo-1 --gas-adjustment 1.4 --gas auto --gas-prices 0.007uaxl -y
Delegate tokens to yourselfβ
axelard tx staking delegate $(axelard keys show wallet --bech val -a) 1000000uaxl --from wallet --chain-id axelar-dojo-1 --gas-adjustment 1.4 --gas auto --gas-prices 0.007uaxl -y
Delegate tokens to validatorβ
axelard tx staking delegate <TO_VALOPER_ADDRESS> 1000000uaxl --from wallet --chain-id axelar-dojo-1 --gas-adjustment 1.4 --gas auto --gas-prices 0.007uaxl -y
Redelegate tokens to another validatorβ
axelard tx staking redelegate $(axelard keys show wallet --bech val -a) <TO_VALOPER_ADDRESS> 1000000uaxl --from wallet --chain-id axelar-dojo-1 --gas-adjustment 1.4 --gas auto --gas-prices 0.007uaxl -y
Unbond tokens from your validatorβ
axelard tx staking unbond $(axelard keys show wallet --bech val -a) 1000000uaxl --from wallet --chain-id axelar-dojo-1 --gas-adjustment 1.4 --gas auto --gas-prices 0.007uaxl -y
Send tokens to the walletβ
axelard tx bank send wallet <TO_WALLET_ADDRESS> 1000000uaxl --from wallet --chain-id axelar-dojo-1 --gas-adjustment 1.4 --gas auto --gas-prices 0.007uaxl -y
π³ Governanceβ
List all proposalsβ
axelard query gov proposals
View proposal by idβ
axelard query gov proposal 1
Vote 'Yes'β
axelard tx gov vote 1 yes --from wallet --chain-id axelar-dojo-1 --gas-adjustment 1.4 --gas auto --gas-prices 0.007uaxl -y
Vote 'No'β
axelard tx gov vote 1 no --from wallet --chain-id axelar-dojo-1 --gas-adjustment 1.4 --gas auto --gas-prices 0.007uaxl -y
Vote 'Abstain'β
axelard tx gov vote 1 abstain --from wallet --chain-id axelar-dojo-1 --gas-adjustment 1.4 --gas auto --gas-prices 0.007uaxl -y
Vote 'NoWithVeto'β
axelard tx gov vote 1 NoWithVeto --from wallet --chain-id axelar-dojo-1 --gas-adjustment 1.4 --gas auto --gas-prices 0.007uaxl -y
β‘οΈ Utilityβ
Update portsβ
CUSTOM_PORT=129
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}66\"%" $HOME/.axelar/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/.axelar/config/app.toml
Update Indexerβ
Disable indexer
sed -i -e 's|^indexer *=.*|indexer = "null"|' $HOME/.axelar/config/config.toml
Enable indexer
sed -i -e 's|^indexer *=.*|indexer = "kv"|' $HOME/.axelar/config/config.toml
Update pruningβ
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/.axelar/config/app.toml
π¨ Maintenanceβ
Get validator infoβ
axelard status 2>&1 | jq .ValidatorInfo
Get sync infoβ
axelard status 2>&1 | jq .SyncInfo
Get node peerβ
echo $(axelard tendermint show-node-id)'@'$(curl -s ifconfig.me)':'$(cat $HOME/.axelar/config/config.toml | sed -n '/Address to listen for incoming connection/{n;p;}' | sed 's/.*://; s/".*//')
Check if validator key is correctβ
[[ $(axelard q staking validator $(axelard keys show wallet --bech val -a) -oj | jq -r .consensus_pubkey.key) = $(axelard 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"
Get live peersβ
curl -sS http://localhost:11757/net_info | jq -r '.result.peers[] | "\(.node_info.id)@\(.remote_ip):\(.node_info.listen_addr)"' | awk -F ':' '{print $1":"$(NF)}'
Set minimum gas priceβ
sed -i -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0.007uaxl\"/" $HOME/.axelar/config/app.toml
Enable prometheusβ
sed -i -e "s/prometheus = false/prometheus = true/" $HOME/.axelar/config/config.toml
Reset chain dataβ
axelard tendermint unsafe-reset-all --keep-addr-book --home $HOME/.axelar --keep-addr-book
Remove nodeβ
danger
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 axelard
sudo systemctl disable axelard
sudo rm /etc/systemd/system/axelard.service
sudo systemctl daemon-reload
rm -f $(which axelard)
rm -rf $HOME/.axelar
rm -rf $HOME/axelar-core
βοΈ Service Managementβ
Reload service configurationβ
sudo systemctl daemon-reload
Enable serviceβ
sudo systemctl enable axelard
Disable serviceβ
sudo systemctl disable axelard
Start serviceβ
sudo systemctl start axelard
Stop serviceβ
sudo systemctl stop axelard
Restart serviceβ
sudo systemctl restart axelard
Check service statusβ
sudo systemctl status axelard
Check service logsβ
sudo journalctl -u axelard -f --no-hostname -o cat