Daemon configuration
Copy bitsongd config node https://bitsong-rpc.lavenderfive.com:443
bitsongd config chain-id bitsong-2b
🔑 Key management
Add new key
Copy bitsongd keys add wallet
Recover existing key
Copy bitsongd keys add wallet --recover
List all keys
Delete key
Copy bitsongd keys delete wallet
Export key to the file
Copy bitsongd keys export wallet
Import key from the file
Copy bitsongd keys import wallet wallet.backup
Query wallet balance
Copy bitsongd q bank balances $( bitsongd keys show wallet -a )
👷 Validator management
Please make sure you have adjusted moniker , identity , details and website to match your values.
Create new validator
Copy bitsongd tx staking create-validator \
--amount 0ubtsg \
--pubkey $( bitsongd tendermint show-validator ) \
--moniker "YOUR_MONIKER_NAME" \
--identity "YOUR_KEYBASE_ID" \
--details "YOUR_DETAILS" \
--website "YOUR_WEBSITE_URL" \
--chain-id bitsong-2b \
--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 0ubtsg \
-y
Edit existing validator
Copy bitsongd tx staking edit-validator \
--new-moniker "YOUR_MONIKER_NAME" \
--identity "YOUR_KEYBASE_ID" \
--details "YOUR_DETAILS" \
--website "YOUR_WEBSITE_URL" \
--chain-id bitsong-2b \
--commission-rate 0.05 \
--from wallet \
--gas-adjustment 1.4 \
--gas auto \
--gas-prices 0ubtsg \
-y
Unjail validator
Copy bitsongd tx slashing unjail --from wallet --chain-id bitsong-2b --gas-adjustment 1.4 --gas auto --gas-prices 0ubtsg -y
Jail reason
Copy bitsongd query slashing signing-info $( bitsongd tendermint show-validator )
List all active validators
Copy bitsongd 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
Copy bitsongd 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
Copy bitsongd q staking validator $( bitsongd keys show wallet --bech val -a )
💲 Token management
Withdraw rewards from all validators
Copy bitsongd tx distribution withdraw-all-rewards --from wallet --chain-id bitsong-2b --gas-adjustment 1.4 --gas auto --gas-prices 0ubtsg -y
Withdraw commission and rewards from your validator
Copy bitsongd tx distribution withdraw-rewards $(bitsongd keys show wallet --bech val -a) --commission --from wallet --chain-id bitsong-2b --gas-adjustment 1.4 --gas auto --gas-prices 0ubtsg -y
Delegate tokens to yourself
Copy bitsongd tx staking delegate $(bitsongd keys show wallet --bech val -a) 0ubtsg --from wallet --chain-id bitsong-2b --gas-adjustment 1.4 --gas auto --gas-prices 0ubtsg -y
Delegate tokens to validator
Copy bitsongd tx staking delegate <TO_VALOPER_ADDRESS> 0ubtsg --from wallet --chain-id bitsong-2b --gas-adjustment 1.4 --gas auto --gas-prices 0ubtsg -y
Redelegate tokens to another validator
Copy bitsongd tx staking redelegate $(bitsongd keys show wallet --bech val -a) <TO_VALOPER_ADDRESS> 0ubtsg --from wallet --chain-id bitsong-2b --gas-adjustment 1.4 --gas auto --gas-prices 0ubtsg -y
Unbond tokens from your validator
Copy bitsongd tx staking unbond $(bitsongd keys show wallet --bech val -a) 0ubtsg --from wallet --chain-id bitsong-2b --gas-adjustment 1.4 --gas auto --gas-prices 0ubtsg -y
Send tokens to the wallet
Copy bitsongd tx bank send wallet <TO_WALLET_ADDRESS> 0ubtsg --from wallet --chain-id bitsong-2b --gas-adjustment 1.4 --gas auto --gas-prices 0ubtsg -y
🗳 Governance
List all proposals
Copy bitsongd query gov proposals
View proposal by id
Copy bitsongd query gov proposal 1
Vote 'Yes'
Copy bitsongd tx gov vote 1 yes --from wallet --chain-id bitsong-2b --gas-adjustment 1.4 --gas auto --gas-prices 0ubtsg -y
Vote 'No'
Copy bitsongd tx gov vote 1 no --from wallet --chain-id bitsong-2b --gas-adjustment 1.4 --gas auto --gas-prices 0ubtsg -y
Vote 'Abstain'
Copy bitsongd tx gov vote 1 abstain --from wallet --chain-id bitsong-2b --gas-adjustment 1.4 --gas auto --gas-prices 0ubtsg -y
Vote 'NoWithVeto'
Copy bitsongd tx gov vote 1 NoWithVeto --from wallet --chain-id bitsong-2b --gas-adjustment 1.4 --gas auto --gas-prices 0ubtsg -y
⚡️ Utility
Update ports
Copy CUSTOM_PORT = 160
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/.bitsongd/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/.bitsongd/config/app.toml
Update Indexer
Disable indexer
Copy sed -i -e 's|^indexer *=.*|indexer = "null"|' $HOME /.bitsongd/config/config.toml
Enable indexer
Copy sed -i -e 's|^indexer *=.*|indexer = "kv"|' $HOME /.bitsongd/config/config.toml
Update pruning
Copy 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"|' \
$HOME /.bitsongd/config/app.toml
🚨 Maintenance
Get validator info
Copy bitsongd status 2>&1 | jq .ValidatorInfo
Get sync info
Copy bitsongd status 2>&1 | jq .SyncInfo
Get node peer
Copy echo $(bitsongd tendermint show-node-id)'@'$(curl -s ifconfig.me)':'$(cat $HOME/.bitsongd/config/config.toml | sed -n '/Address to listen for incoming connection/{n;p;}' | sed 's/.*://; s/".*//')
Check if validator key is correct
Copy [[ $(bitsongd q staking validator $(bitsongd keys show wallet --bech val -a) -oj | jq -r .consensus_pubkey.key) = $(bitsongd 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
Copy curl -sS http://localhost:16057/net_info | jq -r '.result.peers[] | "\(.node_info.id)@\(.remote_ip):\(.node_info.listen_addr)"' | awk -F ':' '{print $1":"$(NF)}'
Set minimum gas price
Copy sed -i -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0ubtsg\"/" $HOME /.bitsongd/config/app.toml
Enable prometheus
Copy sed -i -e "s/prometheus = false/prometheus = true/" $HOME /.bitsongd/config/config.toml
Reset chain data
Copy bitsongd tendermint unsafe-reset-all --home $HOME /.bitsongd --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 !
Copy cd $HOME
sudo systemctl stop bitsongd
sudo systemctl disable bitsongd
sudo rm /etc/systemd/system/bitsongd.bitsongd
sudo systemctl daemon-reload
rm -f $( which bitsongd )
rm -rf $HOME /.bitsongd
rm -rf $HOME /osmosis
⚙️ Service Management
Reload bitsongd configuration
Copy sudo systemctl daemon-reload
Enable bitsongd
Copy sudo systemctl enable bitsongd
Disable bitsongd
Copy sudo systemctl disable bitsongd
Start bitsongd
Copy sudo systemctl start bitsongd
Stop bitsongd
Copy sudo systemctl stop bitsongd
Restart bitsongd
Copy sudo systemctl restart bitsongd
Check bitsongd status
Copy sudo systemctl status bitsongd
Check bitsongd logs
Copy sudo journalctl -u bitsongd -f --no-hostname -o cat