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