Key Management

Add new key

bcnad keys add wallet

Recover existing key

bcnad keys add wallet --recover

List All key

bcnad keys list

Delete key

bcnad keys delete wallet

Export Key (save to wallet.backup)

bcnad keys export wallet

Import key

bcnad keys import wallet wallet.backup

Query Wallet Balance

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

Validator Management

Create Validator

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

Edit Validator

bcnad tx staking edit-validator \
--new-moniker="MONIKER" \
--identity="YOUR_KEYBASE_ID" \
--details="YOUR_DETAILS" \
--website="YOUR_WEBSITE_URL" \
--chain-id bitcanna-1 \
--commission-rate=0.05 \
--gas-prices "0ubcna" \
--gas="auto" \
--gas-adjustment="1.5" \
--from wallet \
-y

Unjail Validator

bcnad tx slashing unjail --from wallet --chain-id bitcanna-1 --gas-prices "0ubcna" --gas-adjustment 1.5 --gas "auto" -y 

Signing Info

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

List all active validators

bcnad 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

bcnad 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

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

Token Management

Withdraw rewards from all validators

bcnad tx distribution withdraw-all-rewards --from wallet --chain-id bitcanna-1 --gas-prices "0ubcna" --gas-adjustment 1.5 --gas "auto" -y 

Withdraw comission and rewards from your validator

bcnad tx distribution withdraw-rewards $(bcnad keys show wallet --bech val -a) --commission --from wallet --chain-id bitcanna-1 --gas-prices "0ubcna" --gas-adjustment 1.5 --gas "auto" -y 

Delegate to your validator

bcnad tx staking delegate $(bcnad keys show wallet --bech val -a) 1000000ubcna --from wallet --chain-id bitcanna-1 --gas-prices "0ubcna" --gas-adjustment 1.5 --gas "auto" -y 

Delegate to other

c4ed tx staking delegate TO_VALOPER_ADDRESS 1000000ubcna --from wallet --chain-id bitcanna-1 --gas-prices "0ubcna" --gas-adjustment 1.5 --gas "auto" -y 

Redelegate your stake to other validators

bcnad tx staking redelegate $(bcnad keys show wallet --bech val -a) TO_VALOPER_ADDRESS 1000000ubcna --from wallet --chain-id bitcanna-1 --gas-prices "0ubcna" --gas-adjustment 1.5 --gas "auto" -y 

Unbond stake

bcnad tx staking unbond $(bcnad keys show wallet --bech val -a) 1000000ubcna --from wallet --chain-id bitcanna-1 --gas-prices "0ubcna" --gas-adjustment 1.5 --gas "auto" -y 

Send tokens

bcnad tx bank send wallet TO_WALLET_ADDRESS 1000000ubcna --from wallet --chain-id bitcanna-1 --gas-prices "0ubcna" --gas-adjustment 1.5 --gas "auto" -y 

Governance

List all proposals

bcnad query gov proposals

Vote YES / NO / ABSTAIN / NO_WITH_VETO

bcnad tx gov vote 1 yes --from wallet --chain-id bitcanna-1 --gas-prices "0ubcna" --gas-adjustment 1.5 --gas "auto" -y 

Create new text proposal

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

Utility

Set Indexer NULL / KV

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

Get Validator info

bcnad status 2>&1 | jq .ValidatorInfo

Get denom info

bcnad q bank denom-metadata -oj | jq

Get sync status

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

Get latest height

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

Reset Node

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

Delete Node

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

Services Management

# Reload Service
sudo systemctl daemon-reload

# Enable Service
sudo systemctl enable bcnad

# Disable Service
sudo systemctl disable bcnad

# Start Service
sudo systemctl start bcnad

# Stop Service
sudo systemctl stop bcnad

# Restart Service
sudo systemctl restart bcnad

# Check Service Status
sudo systemctl status bcnad

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

Last updated