Key Management

Add new key

c4ed keys add wallet

Recover existing key

c4ed keys add wallet --recover

List All key

c4ed keys list

Delete key

c4ed keys delete wallet

Export Key (save to wallet.backup)

c4ed keys export wallet

Import key

c4ed keys import wallet wallet.backup

Query Wallet Balance

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

Validator Management

Create Validator

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

Edit Validator

c4ed tx staking edit-validator \
--new-moniker="MONIKER" \
--identity="YOUR_KEYBASE_ID" \
--details="YOUR_DETAILS" \
--website="YOUR_WEBSITE_URL" \
--chain-id babajaga-1 \
--commission-rate=0.05 \
--gas-prices="0.0025uc4e" \
--gas="auto" \
--gas-adjustment="1.5" \
--from wallet \
-y

Unjail Validator

c4ed tx slashing unjail --from wallet --chain-id babajaga-1 --gas-prices=0.0025uc4e --gas-adjustment 1.5 --gas auto -y 

Signing Info

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

List all active validators

c4ed 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

c4ed 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

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

Token Management

Withdraw rewards from all validators

c4ed tx distribution withdraw-all-rewards --from wallet --chain-id babajaga-1 --gas-prices=0.0025uc4e --gas-adjustment 1.5 --gas auto -y 

Withdraw comission and rewards from your validator

c4ed tx distribution withdraw-rewards $(c4ed keys show wallet --bech val -a) --commission --from wallet --chain-id babajaga-1 --gas-prices=0.0025uc4e --gas-adjustment 1.5 --gas auto -y 

Delegate to your validator

c4ed tx staking delegate $(c4ed keys show wallet --bech val -a) 1000000uc4e --from wallet --chain-id babajaga-1 --gas-prices=0.0025uc4e --gas-adjustment 1.5 --gas auto -y 

Delegate to other

c4ed tx staking delegate TO_VALOPER_ADDRESS 1000000uc4e --from wallet --chain-id babajaga-1 --gas-prices=0.0025uc4e --gas-adjustment 1.5 --gas auto -y 

Redelegate your stake to other validators

c4ed tx staking redelegate $(c4ed keys show wallet --bech val -a) TO_VALOPER_ADDRESS 1000000uc4e --from wallet --chain-id babajaga-1 --gas-prices=0.0025uc4e --gas-adjustment 1.5 --gas auto -y 

Unbond stake

c4ed tx staking unbond $(c4ed keys show wallet --bech val -a) 1000000uc4e --from wallet --chain-id babajaga-1 --gas-prices=0.0025uc4e --gas-adjustment 1.5 --gas auto -y 

Send tokens

c4ed tx bank send wallet TO_WALLET_ADDRESS 1000000uc4e --from wallet --chain-id babajaga-1 --gas-prices=0.0025uc4e --gas-adjustment 1.5 --gas auto -y 

Governance

List all proposals

c4ed query gov proposals

Vote YES / NO / ABSTAIN / NO_WITH_VETO

c4ed tx gov vote 1 yes --from wallet --chain-id babajaga-1 --gas-prices=0.0025uc4e --gas-adjustment 1.5 --gas auto -y 

Create new text proposal

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

Utility

Set Indexer NULL / KV

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

Get Validator info

c4ed status 2>&1 | jq .ValidatorInfo

Get denom info

c4ed q bank denom-metadata -oj | jq

Get sync status

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

Get latest height

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

Reset Node

c4ed tendermint unsafe-reset-all --home $HOME/.c4e-chain --keep-addr-book

Delete Node

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

Services Management

# Reload Service
sudo systemctl daemon-reload

# Enable Service
sudo systemctl enable c4ed

# Disable Service
sudo systemctl disable c4ed

# Start Service
sudo systemctl start c4ed

# Stop Service
sudo systemctl stop c4ed

# Restart Service
sudo systemctl restart c4ed

# Check Service Status
sudo systemctl status c4ed

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

Last updated