← Back to Cosmos Documentation

Bitbadges Installation

MAINNET • bitbadges-mainnet

Installation

Install Dependencies

sudo apt update && sudo apt upgrade -y && sudo apt install curl git wget htop tmux build-essential jq make lz4 gcc unzip -y

Go Version

cd $HOME
sudo rm -rf /usr/local/go
VER="1.25.8"
curl -Ls https://go.dev/dl/go$VER.linux-amd64.tar.gz | sudo tar -xzf - -C /usr/local
echo "export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin" >> $HOME/.bash_profile
source $HOME/.bash_profile
mkdir -p ~/go/bin
go version

Install Binary

cd $HOME
mkdir -p ~/go/bin
wget https://github.com/BitBadges/bitbadgeschain/raw/refs/heads/main/mainnet/releases/bitbadgeschaind-linux-amd64 -O bitbadgeschaind 
chmod +x bitbadgeschaind 
mv bitbadgeschaind ~/go/bin/

Initialize Node

bitbadgeschaind init "Your_Validator_Name" --chain-id bitbadges-mainnet --home $HOME/.bitbadgeschain

Configure Pruning

pruning="custom"
pruning_keep_recent="100" 
pruning_keep_every="0" 
pruning_interval="19" 
sed -i -e "s/^pruning *=.*/pruning = \"$pruning\"/" $HOME/.bitbadgeschain/config/app.toml 
sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"$pruning_keep_recent\"/" $HOME/.bitbadgeschain/config/app.toml 
sed -i -e "s/^pruning-keep-every *=.*/pruning-keep-every = \"$pruning_keep_every\"/" $HOME/.bitbadgeschain/config/app.toml 
sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"$pruning_interval\"/" $HOME/.bitbadgeschain/config/app.toml

Set Minimum Gas Price

sed -i 's|minimum-gas-prices =.*|minimum-gas-prices = "2500000000ubadge"|g' $HOME/.bitbadgeschain/config/app.toml

Configure Indexer

sed -i -e "s/^indexer *=.*/indexer = \"null\"/" $HOME/.bitbadgeschain/config/config.toml

Create Service

sudo tee /etc/systemd/system/bitbadgeschaind.service > /dev/null <<EOF
[Unit] 
Description=Bitbadges node 
After=network-online.target 
[Service] 
User=$USER 
WorkingDirectory=$HOME/.bitbadgeschain 
ExecStart=$(which bitbadgeschaind) start --home $HOME/.bitbadgeschain 
Restart=on-failure 
RestartSec=5 
LimitNOFILE=65535 
[Install] 
WantedBy=multi-user.target 
EOF
mkdir -p $HOME/.bitbadgeschain/cosmovisor/genesis/bin
mv $HOME/go/bin/bitbadgeschaind $HOME/.bitbadgeschain/cosmovisor/genesis/bin/ 
sudo ln -s $HOME/.bitbadgeschain/cosmovisor/genesis $HOME/.bitbadgeschain/cosmovisor/current -f 
sudo ln -s $HOME/.bitbadgeschain/cosmovisor/current/bin/bitbadgeschaind /usr/local/bin/bitbadgeschaind -f 

go install cosmossdk.io/tools/cosmovisor/cmd/[email protected] 

sudo tee /etc/systemd/system/bitbadgeschaind.service > /dev/null <<EOF
[Unit] 
Description=Bitbadges node service 
After=network-online.target 

[Service] 
User=$USER 
ExecStart=$(which cosmovisor) run start --home $HOME/.bitbadgeschain 
Restart=on-failure 
RestartSec=10 
LimitNOFILE=65535 
Environment="DAEMON_HOME=$HOME/.bitbadgeschain" 
Environment="DAEMON_NAME=bitbadgeschaind" 
Environment="UNSAFE_SKIP_BACKUP=true" 

[Install] 
WantedBy=multi-user.target 
EOF

Enable and Start Service

sudo systemctl daemon-reload 
sudo systemctl enable bitbadgeschaind 
sudo systemctl restart bitbadgeschaind && sudo journalctl -u bitbadgeschaind -f

Create Wallet

# Create new wallet
bitbadgeschaind keys add wallet --home $HOME/.bitbadgeschain 

# Restore existing wallet
bitbadgeschaind keys add wallet --recover --home $HOME/.bitbadgeschain 

# Check sync status (false = fully synced)
bitbadgeschaind status --home $HOME/.bitbadgeschain 2>&1 | jq .sync_info

Create Validator

Create validator.json

tee $HOME/validator.json > /dev/null <<EOF
{
  "pubkey": $(bitbadgeschaind comet show-validator), 
  "amount": "1000000000ubadge", 
  "moniker": "CodeBlockLabs", 
  "identity": "E1ADDC27DCE641C2", 
  "website": "https://codeblocklabs.com", 
  "details": "Join Our Community on Telegram @CodeBlockLabs", 
  "commission-rate": "0.05", 
  "commission-max-rate": "0.2", 
  "commission-max-change-rate": "0.1", 
  "min-self-delegation": "1" 
}
EOF

Create Validator

bitbadgeschaind tx staking create-validator $HOME/validator.json --from wallet --chain-id bitbadges-mainnet --home $HOME/.bitbadgeschain --gas auto --gas-adjustment 1.5 --gas-prices 2500000000ubadge -y

Delete Node

sudo systemctl stop bitbadgeschaind 
sudo systemctl disable bitbadgeschaind 
sudo rm -rf /etc/systemd/system/bitbadgeschaind.service 
sudo rm $(which bitbadgeschaind) 
sudo rm -rf $HOME/.bitbadgeschain

Service Operations

Check logs

sudo journalctl -u bitbadgeschaind -f

Sync info

bitbadgeschaind status --home $HOME/.bitbadgeschain 2>&1 | jq .sync_info

Node info

bitbadgeschaind status --home $HOME/.bitbadgeschain 2>&1 | jq .node_info

Your node peer

# CometBFT
echo $(bitbadgeschaind comet show-node-id --home $HOME/.bitbadgeschain)'@'$(wget -qO- eth0.me)':'$(cat $HOME/.bitbadgeschain/config/config.toml | sed -n '/Address to listen for incoming connection/{n;p;}' | sed 's/.*://; s/".*//')
# Tendermint (legacy)
# echo $(bitbadgeschaind tendermint show-node-id --home $HOME/.bitbadgeschain)'@'$(wget -qO- eth0.me)':'$(cat $HOME/.bitbadgeschain/config/config.toml | sed -n '/Address to listen for incoming connection/{n;p;}' | sed 's/.*://; s/".*//')

Key Management

Add New Wallet

bitbadgeschaind keys add wallet --home $HOME/.bitbadgeschain

Restore existing wallet

bitbadgeschaind keys add wallet --recover --home $HOME/.bitbadgeschain

List All Wallets

bitbadgeschaind keys list --home $HOME/.bitbadgeschain

Delete wallet

bitbadgeschaind keys delete wallet --home $HOME/.bitbadgeschain

Check Balance

bitbadgeschaind q bank balances $(bitbadgeschaind keys show wallet -a --home $HOME/.bitbadgeschain) --home $HOME/.bitbadgeschain

Export Key (save to wallet.backup)

bitbadgeschaind keys export wallet --home $HOME/.bitbadgeschain

Export Key to EVM

bitbadgeschaind keys export wallet --unarmored-hex --unsafe --home $HOME/.bitbadgeschain

Import Key (restore from wallet.backup)

bitbadgeschaind keys import wallet wallet.backup --home $HOME/.bitbadgeschain

Tokens

Withdraw all rewards

bitbadgeschaind tx distribution withdraw-all-rewards --from wallet --chain-id bitbadges-mainnet --home $HOME/.bitbadgeschain --gas auto --gas-adjustment 1.5 --gas-prices 2500000000ubadge -y

Withdraw rewards and commission from your validator

bitbadgeschaind tx distribution withdraw-rewards $(bitbadgeschaind keys show wallet --bech val -a --home $HOME/.bitbadgeschain) --from wallet --commission --chain-id bitbadges-mainnet --home $HOME/.bitbadgeschain --gas auto --gas-adjustment 1.5 --gas-prices 2500000000ubadge -y

Delegate to Yourself

bitbadgeschaind tx staking delegate $(bitbadgeschaind keys show wallet --bech val -a --home $HOME/.bitbadgeschain) 1000000000ubadge --from wallet --chain-id bitbadges-mainnet --home $HOME/.bitbadgeschain --gas auto --gas-adjustment 1.5 --gas-prices 2500000000ubadge -y

Delegate to Other Validator

bitbadgeschaind tx staking delegate <TO_VALOPER_ADDRESS> 1000000000ubadge --from wallet --chain-id bitbadges-mainnet --home $HOME/.bitbadgeschain --gas auto --gas-adjustment 1.5 --gas-prices 2500000000ubadge -y

Redelegate Stake to Another Validator

bitbadgeschaind tx staking redelegate $(bitbadgeschaind keys show wallet --bech val -a --home $HOME/.bitbadgeschain) <TO_VALOPER_ADDRESS> 1000000000ubadge --from wallet --chain-id bitbadges-mainnet --home $HOME/.bitbadgeschain --gas auto --gas-adjustment 1.5 --gas-prices 2500000000ubadge -y

Unbond

bitbadgeschaind tx staking unbond $(bitbadgeschaind keys show wallet --bech val -a --home $HOME/.bitbadgeschain) 1000000000ubadge --from wallet --chain-id bitbadges-mainnet --home $HOME/.bitbadgeschain --gas auto --gas-adjustment 1.5 --gas-prices 2500000000ubadge -y

Transfer Funds

bitbadgeschaind tx bank send $(bitbadgeschaind keys show wallet -a --home $HOME/.bitbadgeschain) <TO_WALLET_ADDRESS> 1000000000ubadge --chain-id bitbadges-mainnet --home $HOME/.bitbadgeschain --gas auto --gas-adjustment 1.5 --gas-prices 2500000000ubadge -y

Validator Operations

Edit Existing Validator

bitbadgeschaind tx staking edit-validator \
--commission-rate 0.1 \
--new-moniker "$MONIKER" \
--identity "" \
--details "I am validator" \
--from wallet \
--chain-id bitbadges-mainnet \
--home $HOME/.bitbadgeschain \
--gas auto --gas-adjustment 1.5 --gas-prices 2500000000ubadge  \
-y

Validator info

bitbadgeschaind status --home $HOME/.bitbadgeschain 2>&1 | jq .validator_info

Validator Details

bitbadgeschaind q staking validator $(bitbadgeschaind keys show wallet --bech val -a --home $HOME/.bitbadgeschain) --home $HOME/.bitbadgeschain

Jailing info

# CometBFT
bitbadgeschaind q slashing signing-info $(bitbadgeschaind comet show-validator --home $HOME/.bitbadgeschain) --home $HOME/.bitbadgeschain# Tendermint (legacy)
# bitbadgeschaind q slashing signing-info $(bitbadgeschaind tendermint show-validator --home $HOME/.bitbadgeschain) --home $HOME/.bitbadgeschain

Slashing parameters

bitbadgeschaind q slashing params --home $HOME/.bitbadgeschain

Unjail validator

bitbadgeschaind tx slashing unjail --from wallet --chain-id bitbadges-mainnet --home $HOME/.bitbadgeschain --gas auto --gas-adjustment 1.5 --gas-prices 2500000000ubadge -y

Active Validators List

bitbadgeschaind q staking validators -oj --limit=2000 --home $HOME/.bitbadgeschain | jq '.validators[] | select(.status=="BOND_STATUS_BONDED")' | jq -r '(.tokens|tonumber/pow(10; 6)|floor|tostring) + " 	 " + .description.moniker' | sort -gr | nl

Check Validator key

# CometBFT
[[ $(bitbadgeschaind q staking validator $(bitbadgeschaind keys show wallet --bech val -a --home $HOME/.bitbadgeschain) -oj --home $HOME/.bitbadgeschain | jq -r .consensus_pubkey.key) = $(bitbadgeschaind status --home $HOME/.bitbadgeschain 2>&1 | jq -r .ValidatorInfo.PubKey.value) ]] && echo -e "Your key status is ok" || echo -e "Your key status is error"
# Tendermint (legacy)
# [[ $(bitbadgeschaind q staking validator $(bitbadgeschaind keys show wallet --bech val -a --home $HOME/.bitbadgeschain) -oj --home $HOME/.bitbadgeschain | jq -r .consensus_pubkey.key) = $(bitbadgeschaind status --home $HOME/.bitbadgeschain 2>&1 | jq -r .ValidatorInfo.PubKey.value) ]] && echo -e "Your key status is ok" || echo -e "Your key status is error"

Signing info

# CometBFT
bitbadgeschaind q slashing signing-info $(bitbadgeschaind comet show-validator --home $HOME/.bitbadgeschain) --home $HOME/.bitbadgeschain# Tendermint (legacy)
# bitbadgeschaind q slashing signing-info $(bitbadgeschaind tendermint show-validator --home $HOME/.bitbadgeschain) --home $HOME/.bitbadgeschain

Governance

Create New Text Proposal

bitbadgeschaind tx gov submit-proposal \
--title "" \
--description "" \
--deposit 1000000000ubadge \
--type Text \
--from wallet \
--home $HOME/.bitbadgeschain \
--gas auto --gas-adjustment 1.5 --gas-prices 2500000000ubadge  \
-y

Proposals List

bitbadgeschaind query gov proposals --home $HOME/.bitbadgeschain

View proposal

bitbadgeschaind query gov proposal 1 --home $HOME/.bitbadgeschain

Vote

bitbadgeschaind tx gov vote 1 yes --from wallet --chain-id bitbadges-mainnet --home $HOME/.bitbadgeschain --gas auto --gas-adjustment 1.5 --gas-prices 2500000000ubadge -y