Page cover image

Cheat Sheet

Wallet operations

Create wallet

⚠️ store seed phrase, important during recovering

wardend keys add <YOUR_WALLET_NAME>

Recover wallet

⚠️ store seed phrase, important during recovering

wardend keys add <YOUR_WALLET_NAME> --recover

List of all wallets

wardend keys list

Delete wallet

wardend keys delete <YOUR_WALLET_NAME>

Export wallet

⚠️ save to wallet.backup

wardend keys export <YOUR_WALLET_NAME>

Import wallet

wardend keys import <WALLET_NAME> wallet.backup

Check wallet balance

wardend q bank balances $(wardend keys show <YOUR_WALLET_NAME> -a)

Validator operations

Create validator

wardend tx staking create-validator \
--amount=1000000uward \
--pubkey=$(wardend tendermint show-validator) \
--moniker="<Your moniker>" \
--identity=<Your identity> \
--details="<Your details>" \
--chain-id=buenavista-1 \
--commission-rate=0.05 \
--commission-max-rate=0.20 \
--commission-max-change-rate=0.1 \
--min-self-delegation=1 \
--from=<YOUR_WALLET> \
--gas-prices=0.0025uward \
--gas-adjustment=1.5 \
--gas=auto \
-y

Edit validator

wardend tx staking edit-validator \
--new-moniker="<Your moniker>" \
--identity=<your identity> \
--details="<Your details>" \
--commission-rate=0.1 \
--from=<YOUR_WALLET> \
--gas-prices=0.0025uward \
--gas-adjustment=1.5 \
--gas=auto \
-y

Unjail your validator

wardend tx slashing unjail --from <YOUR_WALLET> --gas-prices 0.0025uward --gas-adjustment 1.5 --gas auto -y

Check blocks info processed by your validator

wardend query slashing signing-info $(wardend tendermint show-validator)

List of active validators

wardend 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 of inactive validators

wardend q staking validators -oj --limit=3000 | jq '.validators[] | select(.status=="BOND_STATUS_UNBONDED") or .status=="BOND_STATUS_UNBONDING")' | jq -r '(.tokens|tonumber/pow(10; 6)|floor|tostring) + " \t " + .description.moniker' | sort -gr | nl

Info about your validator

wardend q staking validator $(wardend keys show <YOUR_WALLET_NAME> --bech val -a)

Transactions

Get your rewards from all validators

wardend tx distribution withdraw-all-rewards --from <YOUR_WALLET> --gas-prices 0.0025uward --gas-adjustment 1.5 --gas auto -y

Get rewards and commissions from your validator

wardend tx distribution withdraw-rewards $(wardend keys show <YOUR_WALLET_NAME> --bech val -a) --commission --from <YOUR_WALLET> --gas-prices 0.0025uward --gas-adjustment 1.5 --gas auto -y

Delegate tokens to your validator

wardend tx staking delegate $(wardend keys show <YOUR_WALLET_NAME> --bech val -a) 1000000uward --from <YOUR_WALLET> --gas-prices 0.0025uward --gas-adjustment 1.5 --gas auto -y

Delegate tokens to validator

wardend tx staking delegate <VALOPER_ADDRESS> 1000000uward --from <YOUR_WALLET> --gas-prices 0.0025uward --gas-adjustment 1.5 --gas auto -y

Redelegate tokens to another validator

wardend tx staking redelegate <SRC_VALOPER_ADDRESS> <TARGET_VALOPER_ADDRESS> 1000000uward --from <WALLET> --gas-prices 0.0025uward --gas-adjustment 1.5 --gas auto -y

Unbound tokens from validator

⚠️ it’s can take a while, ~21 days, depends on network’s parameters

wardend tx staking unbond <VALOPER_ADDRESS> 1000000uward --from <YOUR_WALLET> --gas-prices 0.0025uward --gas-adjustment 1.5 --gas auto -y

Send tokens to another wallet

wardend tx bank send <YOUR_WALLET_ADDRESS> <TARGET_WALLET_ADDRESS> 1000000uward --from <YOUR_WALLET_ADDRESS> --gas-prices 0.0025uward --gas-adjustment 1.5 --gas auto -y

Check info about transaction by hash TX_HASH

wardend query tx <TX_HASH>

Governance

Submit text proposal

wardend tx gov submit-proposal \
--title="<Your Title>" \
--description="<Your Description>" \
--deposit=1000000uward \
--type="Text" \
--from=<WALLET_ADDRESS> \
--gas-prices=0.0025uward \
--gas-adjustment=1.5 \
--gas=auto \
-y

List of all proposals

wardend query gov proposals

Check proposal info by proposal id

wardend query gov proposal <proposal_id>

Deposit proposal by proposal id

wardend tx gov deposit 1 1000000uward --from <YOUR_WALLET> --gas-prices 0.0025uward --gas-adjustment 1.5 --gas auto -y

Vote as, YES

wardend tx gov vote 1 yes --from <YOUR_WALLET> --gas-prices 0.0025uward --gas-adjustment 1.5 --gas auto -y

Vote as, NO

wardend tx gov vote 1 no --from <YOUR_WALLET> --gas-prices 0.0025uward --gas-adjustment 1.5 --gas auto -y

Vote as, NO_WITH_VETO

wardend tx gov vote 1 no_with_veto --from <YOUR_WALLET> --gas-prices 0.0025uward --gas-adjustment 1.5 --gas auto -y

Vote as, ABSTAIN

wardend tx gov vote 1 abstain --from <YOUR_WALLET> --gas-prices 0.0025uward --gas-adjustment 1.5 --gas auto -y

Utils

Change ports to custom

sed -i.bak -e "s%^proxy_app = \"tcp://127.0.0.1:26658\"%proxy_app = \"tcp://127.0.0.1:36658\"%; s%^laddr = \"tcp://127.0.0.1:26657\"%laddr = \"tcp://127.0.0.1:36657\"%; s%^pprof_laddr = \"localhost:6060\"%pprof_laddr = \"localhost:7060\"%; s%^laddr = \"tcp://0.0.0.0:26656\"%laddr = \"tcp://0.0.0.0:36656\"%; s%^prometheus_listen_addr = \":26660\"%prometheus_listen_addr = \":36660\"%" $HOME/.warden/config/config.toml && \
sed -i.bak -e "s%^address = \"0.0.0.0:9090\"%address = \"0.0.0.0:10090\"%; s%^address = \"0.0.0.0:9091\"%address = \"0.0.0.0:10091\"%; s%^address = \"tcp://0.0.0.0:1317\"%address = \"tcp://0.0.0.0:2317\"%" $HOME/.warden/config/app.toml && \
sed -i.bak -e "s%^node = \"tcp://localhost:26657\"%node = \"tcp://localhost:36657\"%" $HOME/.warden/config/client.toml

Turn on indexing

sed -i 's|^indexer *=.*|indexer = "kv"|' $HOME/.warden/config/config.toml

Turn off indexing

sed -i 's|^indexer *=.*|indexer = "null"|' $HOME/.warden/config/config.toml

Setup custom prunning

APP_TOML="~/.warden/config/app.toml"
sed -i 's|^pruning *=.*|pruning = "custom"|' $APP_TOML
sed -i 's|^pruning-keep-recent *=.*|pruning-keep-recent = "100"|' $APP_TOML
sed -i 's|^pruning-keep-every *=.*|pruning-keep-every = "0"|' $APP_TOML
sed -i 's|^pruning-interval *=.*|pruning-interval = "10"|' $APP_TOML

Check your peer

echo $(wardend tendermint show-node-id)@$(curl http://ifconfig.me/)$(grep -A 3 "\[p2p\]" ~/.warden/config/config.toml | egrep -o ":[0-9]+")

Check your RPC

echo -e "\033[0;32m$(grep -A 3 "\[rpc\]" ~/.warden/config/config.toml | egrep -o ":[0-9]+")\033[0m"

Check information about validator

wardend status 2>&1 | jq .ValidatorInfo

Check synchronisation status (false - synced, true - not synced)

wardend status 2>&1 | jq .SyncInfo.catching_up

Check the latest block

wardend status 2>&1 | jq .SyncInfo.latest_block_height

Reset network

wardend tendermint unsafe-reset-all --home $HOME/.warden --keep-addr-book

Delete node

sudo systemctl stop wardend && \
sudo systemctl disable wardend && \
sudo rm /etc/systemd/system/wardend.service && \
sudo systemctl daemon-reload && \
rm -rf $HOME/.warden && \
rm -rf $HOME/wardenprotocol

Check IP address of the server

wget -qO- eth0.me

Check network parameters

wardend q staking params
wardend q slashing params

Check validator private key is correct

[[ $(wardend q staking validator $(wardend keys show <YOUR_WALLET> --bech val -a) -oj | jq -r .consensus_pubkey.key) = $(wardend 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"

Search all output transactions by address

wardend q txs --events transfer.sender=<ADDRESS> 2>&1 | jq | grep txhash

Search all input transactions by address

wardend q txs --events transfer.recipient=<ADDRESS> 2>&1 | jq | grep txhash

Service management

Reload services

sudo systemctl daemon-reload

Enable service

sudo systemctl enable wardend

Disable service

sudo systemctl disable wardend

Start service

sudo systemctl start wardend

Stop service

sudo systemctl stop wardend

Restart service

sudo systemctl restart wardend

Check service status

sudo systemctl status wardend

Check service logs

sudo journalctl -u wardend -f -o cat

Last updated