🔑 Key management

Add new key

babylond keys add wallet

Recover existing key

babylond keys add wallet --recover

Create a BLS key

Validators are expected to submit a BLS signature at the end of each epoch. To do that, a validator needs to have a BLS key pair to sign information with.

Using the address that you created on the previous step.

babylond create-bls-key $(babylond keys show wallet -a)

This command will create a BLS key and add it to the $HOME/.babylond/config/priv_validator_key.json. This is the same file that stores the private key that the validator uses to sign blocks. Please ensure that this file is secured properly.

After creating a BLS key, you need to restart your node to load this key into memory.

sudo systemctl restart babylon.service

List all keys

babylond keys list

Delete key

babylond keys delete wallet

Export key to a file

babylond keys export wallet

Import key from a file

babylond keys import wallet wallet.backup

Query wallet balance

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

👷 Validator management

Please make sure you have adjusted moniker, identity, details and website to match your values.

Create new validator

babylond tx checkpointing create-validator \
--amount 1000000ubbn \
--pubkey $(babylond tendermint show-validator) \
--moniker "YOUR_MONIKER_NAME" \
--identity "YOUR_KEYBASE_ID" \
--details "YOUR_DETAILS" \
--website "YOUR_WEBSITE_URL" \
--chain-id bbn-test-3 \
--commission-rate 0.05 \
--commission-max-rate 0.20 \
--commission-max-change-rate 0.05 \
--min-self-delegation 1 \
--from wallet \
--gas-adjustment 1.4 \
--gas auto \
--fees 10ubbn \
-y

Edit existing validator

babylond tx checkpointing edit-validator \
--new-moniker "YOUR_MONIKER_NAME" \
--identity "YOUR_KEYBASE_ID" \
--details "YOUR_DETAILS" \
--website "YOUR_WEBSITE_URL" \
--chain-id bbn-test-3 \
--commission-rate 0.05 \
--from wallet \
--gas-adjustment 1.4 \
--gas auto \
--fees 10ubbn \
-y

Unjail validator

babylond tx slashing unjail --from wallet --chain-id bbn-test-3 --gas-adjustment 1.4 --gas auto --fees 10ubbn -y

Jail reason

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

List all active validators

babylond 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

babylond q staking validators -oj --limit=3000 | jq '.validators[] | select(.status=="BOND_STATUS_UNBONDED")' | jq -r '(.tokens|tonumber/pow(10; 6)|floor|tostring) + " \t " + .description.moniker' | sort -gr | nl

View validator details

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

💲 Token management

Withdraw rewards from all validators

babylond tx distribution withdraw-all-rewards --from wallet --chain-id bbn-test-3 --gas-adjustment 1.4 --gas auto --fees 10ubbn -y

Withdraw commission and rewards from your validator

babylond tx distribution withdraw-rewards $(babylond keys show wallet --bech val -a) --commission --from wallet --chain-id bbn-test-3 --gas-adjustment 1.4 --gas auto --fees 10ubbn -y

Delegate tokens to yourself

babylond tx epoching delegate $(babylond keys show wallet --bech val -a) 1000000ubbn --from wallet --chain-id bbn-test-3 --gas-adjustment 1.4 --gas auto --fees 10ubbn -y

Delegate tokens to validator

babylond tx epoching delegate <TO_VALOPER_ADDRESS> 1000000ubbn --from wallet --chain-id bbn-test-3 --gas-adjustment 1.4 --gas auto --fees 10ubbn -y

Redelegate tokens to another validator

babylond tx epoching redelegate $(babylond keys show wallet --bech val -a) <TO_VALOPER_ADDRESS> 1000000ubbn --from wallet --chain-id bbn-test-3 --gas-adjustment 1.4 --gas auto --fees 10ubbn -y

Unbond tokens from your validator

babylond tx epoching unbond $(babylond keys show wallet --bech val -a) 1000000ubbn --from wallet --chain-id bbn-test-3 --gas-adjustment 1.4 --gas auto --fees 10ubbn -y

Send tokens to the wallet

babylond tx bank send wallet <TO_WALLET_ADDRESS> 1000000ubbn --from wallet --chain-id bbn-test-3 --gas-adjustment 1.4 --gas auto --fees 10ubbn -y

🗳 Governance

List all proposals

babylond query gov proposals

View proposal by id

babylond query gov proposal 1

Vote ‘Yes’

babylond tx gov vote 1 yes --from wallet --chain-id bbn-test-3 --gas-adjustment 1.4 --gas auto --fees 10ubbn -y

Vote ‘No’

babylond tx gov vote 1 no --from wallet --chain-id bbn-test-3 --gas-adjustment 1.4 --gas auto --fees 10ubbn -y

Vote ‘Abstain’

babylond tx gov vote 1 abstain --from wallet --chain-id bbn-test-3 --gas-adjustment 1.4 --gas auto --fees 10ubbn -y

Vote ‘NoWithVeto’

babylond tx gov vote 1 NoWithVeto --from wallet --chain-id bbn-test-3 --gas-adjustment 1.4 --gas auto --fees 10ubbn -y

⚡️ Utility

Update ports

CUSTOM_PORT=110
sed -i -e "s%^proxy_app = \"tcp://127.0.0.1:26658\"%proxy_app = \"tcp://127.0.0.1:${CUSTOM_PORT}58\"%; s%^laddr = \"tcp://127.0.0.1:26657\"%laddr = \"tcp://127.0.0.1:${CUSTOM_PORT}57\"%; s%^pprof_laddr = \"localhost:6060\"%pprof_laddr = \"localhost:${CUSTOM_PORT}60\"%; s%^laddr = \"tcp://0.0.0.0:26656\"%laddr = \"tcp://0.0.0.0:${CUSTOM_PORT}56\"%; s%^prometheus_listen_addr = \":26660\"%prometheus_listen_addr = \":${CUSTOM_PORT}66\"%" $HOME/.babylond/config/config.toml
sed -i -e "s%^address = \"tcp://0.0.0.0:1317\"%address = \"tcp://0.0.0.0:${CUSTOM_PORT}17\"%; s%^address = \":8080\"%address = \":${CUSTOM_PORT}80\"%; s%^address = \"0.0.0.0:9090\"%address = \"0.0.0.0:${CUSTOM_PORT}90\"%; s%^address = \"0.0.0.0:9091\"%address = \"0.0.0.0:${CUSTOM_PORT}91\"%" $HOME/.babylond/config/app.toml

Update Indexer

Disable indexer

sed -i -e 's|^indexer *=.*|indexer = "null"|' $HOME/.babylond/config/config.toml

Enable indexer

sed -i -e 's|^indexer *=.*|indexer = "kv"|' $HOME/.babylond/config/config.toml

Update pruning

sed -i \
  -e 's|^pruning *=.*|pruning = "custom"|' \
  -e 's|^pruning-keep-recent *=.*|pruning-keep-recent = "100"|' \
  -e 's|^pruning-keep-every *=.*|pruning-keep-every = "0"|' \
  -e 's|^pruning-interval *=.*|pruning-interval = "19"|' \
  $HOME/.babylond/config/app.toml

🚨 Maintenance

Get validator info

babylond status 2>&1 | jq .ValidatorInfo

Get sync info

babylond status 2>&1 | jq .SyncInfo

Get node peer

echo $(babylond tendermint show-node-id)'@'$(curl -s ifconfig.me)':'$(cat $HOME/.babylond/config/config.toml | sed -n '/Address to listen for incoming connection/{n;p;}' | sed 's/.*://; s/".*//')

Check if validator key is correct

[[ $(babylond q staking validator $(babylond keys show wallet --bech val -a) -oj | jq -r .consensus_pubkey.key) = $(babylond 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"

Get live peers

curl -sS http://localhost:16457/net_info | jq -r '.result.peers[] | "\(.node_info.id)@\(.remote_ip):\(.node_info.listen_addr)"' | awk -F ':' '{print $1":"$(NF)}'

Set minimum gas price

sed -i -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0.00001ubbn\"/" $HOME/.babylond/config/app.toml

Enable prometheus

sed -i -e "s/prometheus = false/prometheus = true/" $HOME/.babylond/config/config.toml

Reset chain data

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

Remove node

Please, before proceeding with the next step! All chain data will be lost! Make sure you have backed up your priv_validator_key.json!

cd $HOME
sudo systemctl stop babylon.service
sudo systemctl disable babylon.service
sudo rm /etc/systemd/system/babylon.service
sudo systemctl daemon-reload
rm -f $(which babylond)
rm -rf $HOME/.babylond
rm -rf $HOME/babylon

⚙️ Service Management

Reload service configuration

sudo systemctl daemon-reload

Enable service

sudo systemctl enable babylon.service

Disable service

sudo systemctl disable babylon.service

Start service

sudo systemctl start babylon.service

Stop service

sudo systemctl stop babylon.service

Restart service

sudo systemctl restart babylon.service

Check service status

sudo systemctl status babylon.service

Check service logs

sudo journalctl -u babylon.service -f --no-hostname -o cat