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

