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