Key Management
Add new key
sourced keys add wallet
Recover existing key
sourced keys add wallet --recover
List All key
sourced keys list
Delete key
sourced keys delete wallet
Export Key (save to wallet.backup)
sourced keys export wallet
Import key
sourced keys import wallet wallet.backup
Query Wallet Balance
sourced q bank balances $(sourced keys show wallet -a)
Validator Management
Create Validator
sourced tx staking create-validator \
--amount "1000000usource" \
--pubkey $(sourced tendermint show-validator) \
--moniker "MONIKER" \
--identity "KEYBASE_ID" \
--details "YOUR DETAILS" \
--website "YOUR WEBSITE" \
--chain-id source-1 \
--commission-rate "0.05" \
--commission-max-rate "0.20" \
--commission-max-change-rate "0.01" \
--min-self-delegation "1" \
--gas-prices "0.025usource" \
--gas "auto" \
--gas-adjustment "1.5" \
--from wallet \
-y
Edit Validator
sourced tx staking edit-validator \
--new-moniker="MONIKER" \
--identity="YOUR_KEYBASE_ID" \
--details="YOUR_DETAILS" \
--website="YOUR_WEBSITE_URL" \
--chain-id source-1 \
--commission-rate=0.05 \
--gas-prices "0.025usource" \
--gas="auto" \
--gas-adjustment="1.5" \
--from wallet \
-y
Unjail Validator
sourced tx slashing unjail --from wallet --chain-id source-1 --gas-prices "0.025usource" --gas-adjustment 1.5 --gas "auto" -y
Signing Info
sourced query slashing signing-info $(sourced tendermint show-validator)
List all 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 | nl
List all 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 | nl
View validators details
sourced q staking validator $(sourced keys show wallet --bech val -a)
Token Management
Withdraw rewards from all validators
sourced tx distribution withdraw-all-rewards --from wallet --chain-id source-1 --gas-prices "0.025usource" --gas-adjustment 1.5 --gas "auto" -y
Withdraw comission and rewards from your validator
sourced tx distribution withdraw-rewards $(sourced keys show wallet --bech val -a) --commission --from wallet --chain-id source-1 --gas-prices "0.025usource" --gas-adjustment 1.5 --gas "auto" -y
Delegate to your validator
sourced tx staking delegate $(sourced keys show wallet --bech val -a) 1000000usource --from wallet --chain-id source-1 --gas-prices "0.025usource" --gas-adjustment 1.5 --gas "auto" -y
Delegate to other
c4ed tx staking delegate TO_VALOPER_ADDRESS 1000000usource --from wallet --chain-id source-1 --gas-prices "0.025usource" --gas-adjustment 1.5 --gas "auto" -y
Redelegate your stake to other validators
sourced tx staking redelegate $(sourced keys show wallet --bech val -a) TO_VALOPER_ADDRESS 1000000usource --from wallet --chain-id source-1 --gas-prices "0.025usource" --gas-adjustment 1.5 --gas "auto" -y
Unbond stake
sourced tx staking unbond $(sourced keys show wallet --bech val -a) 1000000usource --from wallet --chain-id source-1 --gas-prices "0.025usource" --gas-adjustment 1.5 --gas "auto" -y
Send tokens
sourced tx bank send wallet TO_WALLET_ADDRESS 1000000usource --from wallet --chain-id source-1 --gas-prices "0.025usource" --gas-adjustment 1.5 --gas "auto" -y
Governance
List all proposals
sourced query gov proposals
Vote YES / NO / ABSTAIN / NO_WITH_VETO
sourced tx gov vote 1 yes --from wallet --chain-id source-1 --gas-prices "0.025usource" --gas-adjustment 1.5 --gas "auto" -y
Create new text proposal
sourced tx gov submit-proposal \
--title="Title" \
--description="Description" \
--deposit=100000000usource \
--type="Text" \
--from=wallet \
--gas-prices 0usource\
--gas-adjustment 1.5 \
--gas "auto" \
-y
Utility
Set Indexer NULL / KV
sed -i 's|^indexer *=.*|indexer = "null"|' $HOME/.source/config/config.toml
Set Custom Port
CUSTOM_PORT=13
sed -i.bak -e "s%^proxy_app = \"tcp://127.0.0.1:26658\"%proxy_app = \"tcp://127.0.0.1:${CUSTOM_PORT}658\"%; s%^laddr = \"tcp://127.0.0.1:26657\"%laddr = \"tcp://127.0.0.1:${CUSTOM_PORT}657\"%; s%^pprof_laddr = \"localhost:6060\"%pprof_laddr = \"localhost:${CUSTOM_PORT}060\"%; s%^laddr = \"tcp://0.0.0.0:26656\"%laddr = \"tcp://0.0.0.0:${CUSTOM_PORT}656\"%; s%^prometheus_listen_addr = \":26660\"%prometheus_listen_addr = \":${CUSTOM_PORT}660\"%" $HOME/.source/config/config.toml
sed -i.bak -e "s%^address = \"tcp://0.0.0.0:1317\"%address = \"tcp://0.0.0.0:${CUSTOM_PORT}317\"%; s%^address = \":8080\"%address = \":${CUSTOM_PORT}080\"%; s%^address = \"0.0.0.0:9090\"%address = \"0.0.0.0:${CUSTOM_PORT}090\"%; s%^address = \"0.0.0.0:9091\"%address = \"0.0.0.0:${CUSTOM_PORT}091\"%; s%^address = \"0.0.0.0:8545\"%address = \"0.0.0.0:${CUSTOM_PORT}545\"%; s%^ws-address = \"0.0.0.0:8546\"%ws-address = \"0.0.0.0:${CUSTOM_PORT}546\"%" $HOME/.source/config/app.toml
Get Validator info
sourced status 2>&1 | jq .ValidatorInfo
Get denom info
sourced q bank denom-metadata -oj | jq
Get sync status
sourced status 2>&1 | jq .SyncInfo.catching_up
Get latest height
sourced status 2>&1 | jq .SyncInfo.latest_block_height
Reset Node
sourced tendermint unsafe-reset-all --home $HOME/.source --keep-addr-book
Delete Node
sudo systemctl stop sourced && sudo systemctl disable sourced && sudo rm /etc/systemd/system/sourced.service && sudo systemctl daemon-reload && rm -rf $HOME/.source && sudo rm -rf $(which sourced)
Services Management
# Reload Service
sudo systemctl daemon-reload
# Enable Service
sudo systemctl enable sourced
# Disable Service
sudo systemctl disable sourced
# Start Service
sudo systemctl start sourced
# Stop Service
sudo systemctl stop sourced
# Restart Service
sudo systemctl restart sourced
# Check Service Status
sudo systemctl status sourced
# Check Service Logs
sudo journalctl -u sourced -f --no-hostname -o cat
Last updated