Useful commands

Useful set of commands for node operators. From key management to chain governance.

BeraChain
BeraChain

Daemon configuration

beacond config node https://testnet-berachain-rpc.lavenderfive.com:443
beacond config chain-id bartio-beacon-80086

🔑 Key management

Add new key

beacond keys add wallet

Recover existing key

beacond keys add wallet --recover

List all keys

beacond keys list

Delete key

beacond keys delete wallet

Export key to the file

beacond keys export wallet

Import key from the file

beacond keys import wallet wallet.backup

Query wallet balance

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

👷 Validator management

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

Create new validator

beacond tx staking create-validator \
--amount 10000000abgt \
--pubkey $(beacond tendermint show-validator) \
--moniker "YOUR_MONIKER_NAME" \
--identity "YOUR_KEYBASE_ID" \
--details "YOUR_DETAILS" \
--website "YOUR_WEBSITE_URL" \
--chain-id bartio-beacon-80086 \
--commission-rate 0.05 \
--commission-max-rate 0.20 \
--commission-max-change-rate 0.01 \
--min-self-delegation 1 \
--from wallet \
--gas-adjustment 1.4 \
--gas auto \
--gas-prices 10000000abgt \
-y

Edit existing validator

beacond tx staking edit-validator \
--new-moniker "YOUR_MONIKER_NAME" \
--identity "YOUR_KEYBASE_ID" \
--details "YOUR_DETAILS" \
--website "YOUR_WEBSITE_URL" \
--chain-id bartio-beacon-80086 \
--commission-rate 0.05 \
--from wallet \
--gas-adjustment 1.4 \
--gas auto \
--gas-prices 10000000abgt \
-y

Unjail validator

beacond tx slashing unjail --from wallet --chain-id bartio-beacon-80086 --gas-adjustment 1.4 --gas auto --gas-prices 10000000abgt -y

Jail reason

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

List all active validators

beacond 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

beacond 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

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

💲 Token management

Withdraw rewards from all validators

beacond tx distribution withdraw-all-rewards --from wallet --chain-id bartio-beacon-80086 --gas-adjustment 1.4 --gas auto --gas-prices 10000000abgt -y

Withdraw commission and rewards from your validator

beacond tx distribution withdraw-rewards $(beacond keys show wallet --bech val -a) --commission --from wallet --chain-id bartio-beacon-80086 --gas-adjustment 1.4 --gas auto --gas-prices 10000000abgt -y

Delegate tokens to yourself

beacond tx staking delegate $(beacond keys show wallet --bech val -a) 10000000abgt --from wallet --chain-id bartio-beacon-80086 --gas-adjustment 1.4 --gas auto --gas-prices 10000000abgt -y

Delegate tokens to validator

beacond tx staking delegate <TO_VALOPER_ADDRESS> 10000000abgt --from wallet --chain-id bartio-beacon-80086 --gas-adjustment 1.4 --gas auto --gas-prices 10000000abgt -y

Redelegate tokens to another validator

beacond tx staking redelegate $(beacond keys show wallet --bech val -a) <TO_VALOPER_ADDRESS> 10000000abgt --from wallet --chain-id bartio-beacon-80086 --gas-adjustment 1.4 --gas auto --gas-prices 10000000abgt -y

Unbond tokens from your validator

beacond tx staking unbond $(beacond keys show wallet --bech val -a) 10000000abgt --from wallet --chain-id bartio-beacon-80086 --gas-adjustment 1.4 --gas auto --gas-prices 10000000abgt -y

Send tokens to the wallet

beacond tx bank send wallet <TO_WALLET_ADDRESS> 10000000abgt --from wallet --chain-id bartio-beacon-80086 --gas-adjustment 1.4 --gas auto --gas-prices 10000000abgt -y

🗳 Governance

List all proposals

beacond query gov proposals

View proposal by id

beacond query gov proposal 1

Vote 'Yes'

beacond tx gov vote 1 yes --from wallet --chain-id bartio-beacon-80086 --gas-adjustment 1.4 --gas auto --gas-prices 10000000abgt -y

Vote 'No'

beacond tx gov vote 1 no --from wallet --chain-id bartio-beacon-80086 --gas-adjustment 1.4 --gas auto --gas-prices 10000000abgt -y

Vote 'Abstain'

beacond tx gov vote 1 abstain --from wallet --chain-id bartio-beacon-80086 --gas-adjustment 1.4 --gas auto --gas-prices 10000000abgt -y

Vote 'NoWithVeto'

beacond tx gov vote 1 NoWithVeto --from wallet --chain-id bartio-beacon-80086 --gas-adjustment 1.4 --gas auto --gas-prices 10000000abgt -y

⚡️ Utility

Update ports

CUSTOM_PORT=254
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\"%" .beacond/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\"%" .beacond/config/app.toml

Update Indexer

Disable indexer

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

Enable indexer

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

Update pruning

sed -i \
  -e 's|^pruning *=.*|pruning = "custom"|' \
  -e 's|^pruning-keep-recent *=.*|pruning-keep-recent = "107"|' \
  -e 's|^pruning-keep-every *=.*|pruning-keep-every = "0"|' \
  -e 's|^pruning-interval *=.*|pruning-interval = "13"|' \
  .beacond/config/app.toml

🚨 Maintenance

Get validator info

beacond status 2>&1 | jq .ValidatorInfo

Get sync info

beacond status 2>&1 | jq .SyncInfo

Get node peer

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

Check if validator key is correct

[[ $(beacond q staking validator $(beacond keys show wallet --bech val -a) -oj | jq -r .consensus_pubkey.key) = $(beacond 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:25457/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 = \"10000000abgt\"/" .beacond/config/app.toml

Enable prometheus

sed -i -e "s/prometheus = false/prometheus = true/" .beacond/config/config.toml

Reset chain data

beacond tendermint unsafe-reset-all --home .beacond --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 beacond
sudo systemctl disable beacond
sudo rm /etc/systemd/system/beacond.beacond
sudo systemctl daemon-reload
rm -f $(which beacond)
rm -rf .beacond
rm -rf $HOME/osmosis

⚙️ Service Management

Reload beacond configuration

sudo systemctl daemon-reload

Enable beacond

sudo systemctl enable beacond

Disable beacond

sudo systemctl disable beacond

Start beacond

sudo systemctl start beacond

Stop beacond

sudo systemctl stop beacond

Restart beacond

sudo systemctl restart beacond

Check beacond status

sudo systemctl status beacond

Check beacond logs

sudo journalctl -u beacond -f --no-hostname -o cat

Last updated