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