Cheat Sheet
Wallet operations
Create wallet
⚠️ store seed phrase, important during recovering
lavad keys add <YOUR_WALLET_NAME>Recover wallet
⚠️ store seed phrase, important during recovering
lavad keys add <YOUR_WALLET_NAME> --recoverList of all wallets
lavad keys listDelete wallet
lavad keys delete <YOUR_WALLET_NAME>Export wallet
⚠️ save to wallet.backup
lavad keys export <YOUR_WALLET_NAME>Import wallet
lavad keys import <WALLET_NAME> wallet.backupCheck wallet balance
lavad q bank balances $(lavad keys show <YOUR_WALLET_NAME> -a)Validator operations
Create validator
lavad tx staking create-validator \
--amount=1000000ulava \
--pubkey=$(lavad tendermint show-validator) \
--moniker="<Your moniker>" \
--identity=<Your identity> \
--details="<Your details>" \
--chain-id=lava-testnet-2 \
--commission-rate=0.05 \
--commission-max-rate=0.20 \
--commission-max-change-rate=0.1 \
--min-self-delegation=1 \
--from=<YOUR_WALLET> \
--gas-prices=0ulava \
--gas-adjustment=1.4 \
--gas=auto \
-yEdit validator
lavad tx staking edit-validator \
--new-moniker="<Your moniker>" \
--identity=<your identity> \
--details="<Your details>" \
--commission-rate=0.1 \
--from=<YOUR_WALLET> \
--gas-prices=0ulava \
--gas-adjustment=1.4 \
--gas=auto \
-yUnjail your validator
lavad tx slashing unjail --from <YOUR_WALLET> --gas-prices 0ulava --gas-adjustment 1.4 --gas auto -yCheck blocks info processed by your validator
lavad query slashing signing-info $(lavad tendermint show-validator)List of active validators
lavad 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 | nlList of inactive validators
lavad 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 | nlInfo about your validator
lavad q staking validator $(lavad keys show <YOUR_WALLET_NAME> --bech val -a)Transactions
Get your rewards from all validators
lavad tx distribution withdraw-all-rewards --from <YOUR_WALLET> --gas-prices 0ulava --gas-adjustment 1.4 --gas auto -yGet rewards and commissions from your validator
lavad tx distribution withdraw-rewards $(lavad keys show <YOUR_WALLET_NAME> --bech val -a) --commission --from <YOUR_WALLET> --gas-prices 0ulava --gas-adjustment 1.4 --gas auto -yDelegate tokens to your validator
lavad tx staking delegate $(lavad keys show <YOUR_WALLET_NAME> --bech val -a) 1000000ulava --from <YOUR_WALLET> --gas-prices 0ulava --gas-adjustment 1.4 --gas auto -yDelegate tokens to validator
lavad tx staking delegate <VALOPER_ADDRESS> 1000000ulava --from <YOUR_WALLET> --gas-prices 0ulava --gas-adjustment 1.4 --gas auto -yRedelegate tokens to another validator
lavad tx staking redelegate <SRC_VALOPER_ADDRESS> <TARGET_VALOPER_ADDRESS> 1000000ulava --from <WALLET> --gas-prices 0ulava --gas-adjustment 1.4 --gas auto -yUnbound tokens from validator
⚠️ it’s can take a while, ~21 days, depends on network’s parameters
lavad tx staking unbond <VALOPER_ADDRESS> 1000000ulava --from <YOUR_WALLET> --gas-prices 0ulava --gas-adjustment 1.4 --gas auto -ySend tokens to another wallet
lavad tx bank send <YOUR_WALLET_ADDRESS> <TARGET_WALLET_ADDRESS> 1000000ulava --from <YOUR_WALLET_ADDRESS> --gas-prices 0ulava --gas-adjustment 1.4 --gas auto -yCheck info about transaction by hash TX_HASH
lavad query tx <TX_HASH>Governance
Submit text proposal
lavad tx gov submit-proposal \
--title="<Your Title>" \
--description="<Your Description>" \
--deposit=1000000ulava \
--type="Text" \
--from=<WALLET_ADDRESS> \
--gas-prices=0ulava \
--gas-adjustment=1.4 \
--gas=auto \
-yList of all proposals
lavad query gov proposalsCheck proposal info by proposal id
lavad query gov proposal <proposal_id>Deposit proposal by proposal id
lavad tx gov deposit 1 1000000ulava --from <YOUR_WALLET> --gas-prices 0ulava --gas-adjustment 1.4 --gas auto -yVote as, YES
lavad tx gov vote 1 yes --from <YOUR_WALLET> --gas-prices 0ulava --gas-adjustment 1.4 --gas auto -yVote as, NO
lavad tx gov vote 1 no --from <YOUR_WALLET> --gas-prices 0ulava --gas-adjustment 1.4 --gas auto -yVote as, NO_WITH_VETO
lavad tx gov vote 1 no_with_veto --from <YOUR_WALLET> --gas-prices 0ulava --gas-adjustment 1.4 --gas auto -yVote as, ABSTAIN
lavad tx gov vote 1 abstain --from <YOUR_WALLET> --gas-prices 0ulava --gas-adjustment 1.4 --gas auto -yUtils
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/.lava/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/.lava/config/app.toml && \
sed -i.bak -e "s%^node = \"tcp://localhost:26657\"%node = \"tcp://localhost:36657\"%" $HOME/.lava/config/client.tomlTurn on indexing
sed -i 's|^indexer *=.*|indexer = "kv"|' $HOME/.lava/config/config.tomlTurn off indexing
sed -i 's|^indexer *=.*|indexer = "null"|' $HOME/.lava/config/config.tomlSetup custom prunning
APP_TOML="~/.lava/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_TOMLCheck your peer
echo $(lavad tendermint show-node-id)@$(curl http://ifconfig.me/)$(grep -A 3 "\[p2p\]" ~/.lava/config/config.toml | egrep -o ":[0-9]+")Check your RPC
echo -e "\033[0;32m$(grep -A 3 "\[rpc\]" ~/.lava/config/config.toml | egrep -o ":[0-9]+")\033[0m"Check information about validator
lavad status 2>&1 | jq .ValidatorInfoCheck synchronisation status (false - synced, true - not synced)
lavad status 2>&1 | jq .SyncInfo.catching_upCheck the latest block
lavad status 2>&1 | jq .SyncInfo.latest_block_heightReset network
lavad tendermint unsafe-reset-all --home $HOME/.lava --keep-addr-bookDelete node
sudo systemctl stop lavad && \
sudo systemctl disable lavad && \
sudo rm /etc/systemd/system/lavad.service && \
sudo systemctl daemon-reload && \
rm -rf $HOME/.lava && \
rm -rf $HOME/lavaCheck IP address of the server
wget -qO- eth0.meCheck network parameters
lavad q staking params
lavad q slashing paramsCheck validator private key is correct
[[ $(lavad q staking validator $(lavad keys show <YOUR_WALLET> --bech val -a) -oj | jq -r .consensus_pubkey.key) = $(lavad 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
lavad q txs --events transfer.sender=<ADDRESS> 2>&1 | jq | grep txhashSearch all input transactions by address
lavad q txs --events transfer.recipient=<ADDRESS> 2>&1 | jq | grep txhashService management
Reload services
sudo systemctl daemon-reloadEnable service
sudo systemctl enable lavadDisable service
sudo systemctl disable lavadStart service
sudo systemctl start lavadStop service
sudo systemctl stop lavadRestart service
sudo systemctl restart lavadCheck service status
sudo systemctl status lavadCheck service logs
sudo journalctl -u lavad -f -o catLast updated
