Key Management

Add new key

sged keys add wallet

Recover existing key

sged keys add wallet --recover

List All key

sged keys list

Delete key

sged keys delete wallet

Export Key (save to wallet.backup)

sged keys export wallet

Import key

sged keys import wallet wallet.backup

Query Wallet Balance

sged q bank balances $(sged keys show wallet -a)

Validator Management

Create Validator

sged tx staking create-validator \
  --amount "1000000usge" \
  --pubkey $(sged tendermint show-validator) \
  --moniker "MONIKER" \
  --identity "KEYBASE_ID" \
  --details "YOUR DETAILS" \
  --website "YOUR WEBSITE" \
  --chain-id sgenet-1 \
  --commission-rate "0.05" \
  --commission-max-rate "0.20" \
  --commission-max-change-rate "0.01" \
  --min-self-delegation "1" \
  --gas-prices "0.025usge" \
  --gas "auto" \
  --gas-adjustment "1.5" \
  --from wallet \
  -y

Edit Validator

sged tx staking edit-validator \
--new-moniker="MONIKER" \
--identity="YOUR_KEYBASE_ID" \
--details="YOUR_DETAILS" \
--website="YOUR_WEBSITE_URL" \
--chain-id sgenet-1 \
--commission-rate=0.05 \
--gas-prices "0.025usge" \
--gas="auto" \
--gas-adjustment="1.5" \
--from wallet \
-y

Unjail Validator

sged tx slashing unjail --from wallet --chain-id sgenet-1 --gas-prices "0.025usge" --gas-adjustment 1.5 --gas "auto" -y 

Signing Info

sged query slashing signing-info $(sged tendermint show-validator) 

List all active validators

sged 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

sged 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

sged q staking validator $(sged keys show wallet --bech val -a) 

Token Management

Withdraw rewards from all validators

sged tx distribution withdraw-all-rewards --from wallet --chain-id sgenet-1 --gas-prices "0.025usge" --gas-adjustment 1.5 --gas "auto" -y 

Withdraw comission and rewards from your validator

sged tx distribution withdraw-rewards $(sged keys show wallet --bech val -a) --commission --from wallet --chain-id sgenet-1 --gas-prices "0.025usge" --gas-adjustment 1.5 --gas "auto" -y 

Delegate to your validator

sged tx staking delegate $(sged keys show wallet --bech val -a) 1000000usge --from wallet --chain-id sgenet-1 --gas-prices "0.025usge" --gas-adjustment 1.5 --gas "auto" -y 

Delegate to other

c4ed tx staking delegate TO_VALOPER_ADDRESS 1000000usge --from wallet --chain-id sgenet-1 --gas-prices "0.025usge" --gas-adjustment 1.5 --gas "auto" -y 

Redelegate your stake to other validators

sged tx staking redelegate $(sged keys show wallet --bech val -a) TO_VALOPER_ADDRESS 1000000usge --from wallet --chain-id sgenet-1 --gas-prices "0.025usge" --gas-adjustment 1.5 --gas "auto" -y 

Unbond stake

sged tx staking unbond $(sged keys show wallet --bech val -a) 1000000usge --from wallet --chain-id sgenet-1 --gas-prices "0.025usge" --gas-adjustment 1.5 --gas "auto" -y 

Send tokens

sged tx bank send wallet TO_WALLET_ADDRESS 1000000usge --from wallet --chain-id sgenet-1 --gas-prices "0.025usge" --gas-adjustment 1.5 --gas "auto" -y 

Governance

List all proposals

sged query gov proposals

Vote YES / NO / ABSTAIN / NO_WITH_VETO

sged tx gov vote 1 yes --from wallet --chain-id sgenet-1 --gas-prices "0.025usge" --gas-adjustment 1.5 --gas "auto" -y 

Create new text proposal

sged tx gov submit-proposal \
--title="Title" \
--description="Description" \
--deposit=100000000usge \
--type="Text" \
--from=wallet \
--gas-prices 0usge\ 
--gas-adjustment 1.5 \
--gas "auto" \
-y 

Utility

Set Indexer NULL / KV

sed -i 's|^indexer *=.*|indexer = "null"|' $HOME/.sge/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/.sge/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/.sge/config/app.toml

Get Validator info

sged status 2>&1 | jq .ValidatorInfo

Get denom info

sged q bank denom-metadata -oj | jq

Get sync status

sged status 2>&1 | jq .SyncInfo.catching_up

Get latest height

sged status 2>&1 | jq .SyncInfo.latest_block_height

Reset Node

sged tendermint unsafe-reset-all --home $HOME/.sge --keep-addr-book

Delete Node

sudo systemctl stop sged && sudo systemctl disable sged && sudo rm /etc/systemd/system/sged.service && sudo systemctl daemon-reload && rm -rf $HOME/.sge && sudo rm -rf $(which sged) 

Services Management

# Reload Service
sudo systemctl daemon-reload

# Enable Service
sudo systemctl enable sged

# Disable Service
sudo systemctl disable sged

# Start Service
sudo systemctl start sged

# Stop Service
sudo systemctl stop sged

# Restart Service
sudo systemctl restart sged

# Check Service Status
sudo systemctl status sged

# Check Service Logs
sudo journalctl -u sged -f --no-hostname -o cat

Last updated