Usefull commands for Union Protocol
🔑 Key management
👛
Change wallet in the commands to your own wallet name.
Add new key
uniond keys add wallet
Recover existing key
uniond keys add wallet --recover
List all keys
uniond keys list
Delete key
uniond keys delete wallet
Export key to the file
uniond keys export wallet
Import key from the file
uniond keys import wallet wallet.backup
Query wallet balance
uniond q bank balances $( uniond keys show wallet -a)
🧙 Validator management
🙋♀️
Make sure to change values for moniker, identity, details website to your own values.
Edit existing validator
Edit the validator.json. Then execute the command.
--moniker "YOUR_MONIKER_NAME" \
--identity "YOUR_KEYBASE_ID" \
--details "YOUR_DETAILS" \
--website "YOUR_WEBSITE_URL" \
--chain-id union-testnet-8 \
--commission-rate 0.05 \
--from wallet
uniond tx staking edit-validator /path/to/validator.json --gas-adjustment 1.5 --gas auto
--gas-prices 0umuno -y
Unjail validator
uniond tx slashing unjail --from wallet --chain-id union-testnet-8 --gas-adjustment 1.5 --gas auto
--gas-prices 0umuno -y
Jail reason
uniond query slashing signing-info $( uniond tendermint show-validator)
List all active validators
uniond 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
uniond 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
uniond q staking validator $( uniond keys show wallet --bech val -a)
🪙 Token management
Withdraw rewards from all validators
uniond tx distribution withdraw-all-rewards --from wallet --chain-id union-testnet-8 --gas-adjustment 1.5 --gas auto --gas-prices 0umuno -y
Withdraw commission and rewards from your validator
uniond tx distribution withdraw-rewards $( uniond keys show wallet --bech val -a) --commission --from wallet --chain-id union-testnet-8 --gas-adjustment 1.5 --gas auto --gas-prices 0umuno -y
Delegate tokens to yourself
uniond tx staking delegate $( uniond keys show wallet --bech val -a) 1000000000000umuno --from wallet --chain-id union-testnet-8 --gas-adjustment 1.5 --gas auto --gas-prices 0umuno -y
Delegate tokens to validator
uniond tx staking delegate <TO_VALOPER_ADDRESS> 1000000000000umuno --from wallet --chain-id union-testnet-8 --gas-adjustment 1.5 --gas auto --gas-prices 0umuno -y
Redelegate tokens to another validator
uniond tx staking redelegate $( uniond keys show wallet --bech val -a) <TO_VALOPER_ADDRESS> 1000000$uunion --from wallet --chain-id union-testnet-8 --gas-adjustment 1.5 --gas auto --gas-prices 0umuno -y
Unbond tokens from your validator
uniond tx staking unbond $( uniond keys show wallet --bech val -a) 1000000$uunion --from wallet --chain-id union-testnet-8 --gas-adjustment 1.5 --gas auto --gas-prices 0umuno -y
Send tokens to the wallet
uniond tx bank send wallet <TO_WALLET_ADDRESS> 1000000$uunion --from wallet --chain-id union-testnet-8 --gas-adjustment 1.5 --gas auto --gas-prices 0umuno -y
🏛️ Governance
List all proposals
uniond query gov proposals
View proposal by id
uniond query gov proposal 1
Vote 'Yes'
uniond tx gov vote 1 yes --from wallet --chain-id union-testnet-8 --gas-adjustment 1.5 --gas auto --gas-prices 0umuno -y
Vote 'No'
uniond tx gov vote 1 no --from wallet --chain-id union-testnet-8 --gas-adjustment 1.5 --gas auto --gas-prices 0umuno -y
Vote 'Abstain'
uniond tx gov vote 1 abstain --from wallet --chain-id union-testnet-8 --gas-adjustment 1.5 --gas auto --gas-prices 0umuno -y
Vote 'NoWithVeto'
uniond tx gov vote 1 NoWithVeto --from wallet --chain-id union-testnet-8 --gas-adjustment 1.5 --gas auto --gas-prices 0umuno -y
⚡️ Utility
Update Indexer
Disable indexer
sed -i -e 's|^indexer *=.*|indexer = "null"|' $HOME/.union/config/config.toml
Enable indexer
sed -i -e 's|^indexer *=.*|indexer = "kv"|' $HOME/.union/config/config.toml
Update pruning
sed -i \
-e 's|^pruning *=.*|pruning = "custom"|' \
-e 's|^pruning-keep-recent *=.*|pruning-keep-recent = "2000"|' \
-e 's|^pruning-keep-every *=.*|pruning-keep-every = "0"|' \
-e 's|^pruning-interval *=.*|pruning-interval = "100"|' \
$HOME/.union/config/app.toml
🔧 Maintenance
Get validator info
uniond status 2>&1 | jq .ValidatorInfo
Get sync info
uniond status 2>&1 | jq .SyncInfo
Enable prometheus
sed -i -e "s/prometheus = false/prometheus = true/" $HOME/.union/config/config.toml
Reset chain data
uniond tendermint unsafe-reset-all --keep-addr-book --home $HOME/.union --keep-addr-book
Remove node
☢️
Make sure you have backed up your priv_validator_key.json!
cd $HOME
sudo systemctl stop uniond
sudo systemctl disable uniond
sudo rm /etc/systemd/system/uniond.service
sudo systemctl daemon-reload
rm -f $(which uniond)
rm -rf $HOME/.union
rm -rf $HOME/unionchain
⚙️ Service Management
Reload service configuration
sudo systemctl daemon-reload
Enable service
sudo systemctl enable uniond
Disable service
sudo systemctl disable uniond
Start service
sudo systemctl start uniond
Stop service
sudo systemctl stop uniond
Restart service
sudo systemctl restart uniond
Check service status
sudo systemctl status uniond
Check service logs
sudo journalctl -u uniond -f --no-hostname -o cat