Cheat Sheet
Wallet operations
Create wallet
⚠️ store seed phrase, important during recovering
bitwayd keys add <YOUR_WALLET_NAME> --key-type="segwit"
Recover wallet
⚠️ store seed phrase, important during recovering
bitwayd keys add <YOUR_WALLET_NAME> --recover --key-type="segwit"
List of all wallets
bitwayd keys list
Delete wallet
bitwayd keys delete <YOUR_WALLET_NAME>
Export wallet
⚠️ save to wallet.backup
bitwayd keys export <YOUR_WALLET_NAME>
Import wallet
bitwayd keys import <WALLET_NAME> wallet.backup
Check wallet balance
bitwayd q bank balances $(bitwayd keys show <YOUR_WALLET_NAME> -a)
Validator operations
Create validator
bitwayd tx staking create-validator \
--amount=1000000ubtw \
--pubkey=$(bitwayd tendermint show-validator) \
--moniker="<Your moniker>" \
--identity=<Your identity> \
--details="<Your details>" \
--chain-id=bitwaychain-1 \
--commission-rate=0.05 \
--commission-max-rate=0.20 \
--commission-max-change-rate=0.1 \
--min-self-delegation=1 \
--from=<YOUR_WALLET> \
--fees=5000ubtw \
-y
Edit validator
bitwayd tx staking edit-validator \
--new-moniker="<Your moniker>" \
--identity=<your identity> \
--details="<Your details>" \
--commission-rate=0.1 \
--from=<YOUR_WALLET> \
--fees=5000ubtw \
-y
Unjail your validator
bitwayd tx slashing unjail --from <YOUR_WALLET> --fees=5000ubtw -y
Check blocks info processed by your validator
bitwayd query slashing signing-info $(bitwayd tendermint show-validator)
List of active validators
bitwayd 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 of inactive validators
bitwayd 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
Info about your validator
bitwayd q staking validator $(bitwayd keys show <YOUR_WALLET_NAME> --bech val -a)
Transactions
Get your rewards from all validators
bitwayd tx distribution withdraw-all-rewards --from <YOUR_WALLET> --fees=5000ubtw -y
Get rewards and commissions from your validator
bitwayd tx distribution withdraw-rewards $(bitwayd keys show <YOUR_WALLET_NAME> --bech val -a) --commission --from <YOUR_WALLET> --fees=5000ubtw -y
Delegate tokens to your validator
bitwayd tx staking delegate $(bitwayd keys show <YOUR_WALLET_NAME> --bech val -a) 1000000ubtw --from <YOUR_WALLET> --fees=5000ubtw -y
Delegate tokens to validator
bitwayd tx staking delegate <VALOPER_ADDRESS> 1000000ubtw --from <YOUR_WALLET> --fees=5000ubtw -y
Redelegate tokens to another validator
bitwayd tx staking redelegate <SRC_VALOPER_ADDRESS> <TARGET_VALOPER_ADDRESS> 1000000ubtw --from <WALLET> --fees=5000ubtw -y
Unbound tokens from validator
⚠️ it’s can take a while, ~21 days, depends on network’s parameters
bitwayd tx staking unbond <VALOPER_ADDRESS> 1000000ubtw --from <YOUR_WALLET> --fees=5000ubtw -y
Send tokens to another wallet
bitwayd tx bank send <YOUR_WALLET_ADDRESS> <TARGET_WALLET_ADDRESS> 1000000ubtw --from <YOUR_WALLET_ADDRESS> --fees=5000ubtw -y
Check info about transaction by hash TX_HASH
bitwayd query tx <TX_HASH>
Governance
Submit text proposal
bitwayd tx gov submit-proposal \
--title="<Your Title>" \
--description="<Your Description>" \
--deposit=1000000ubtw \
--type="Text" \
--from=<WALLET_ADDRESS> \
--fees=5000ubtw \
-y
List of all proposals
bitwayd query gov proposals
Check proposal info by proposal id
bitwayd query gov proposal <proposal_id>
Deposit proposal by proposal id
bitwayd tx gov deposit 1 1000000ubtw --from <YOUR_WALLET> --fees=5000ubtw -y
Vote as, YES
bitwayd tx gov vote 1 yes --from <YOUR_WALLET> --fees=5000ubtw -y
Vote as, NO
bitwayd tx gov vote 1 no --from <YOUR_WALLET> --fees=5000ubtw -y
Vote as, NO_WITH_VETO
bitwayd tx gov vote 1 no_with_veto --from <YOUR_WALLET> --fees=5000ubtw -y
Vote as, ABSTAIN
bitwayd tx gov vote 1 abstain --from <YOUR_WALLET> --fees=5000ubtw -y
Utils
Change ports to custom
sed -i.bak -e "s%^proxy_app = \"tcp://127.0.0.1:26658\"%proxy_app = \"tcp://127.0.0.1:36658\"%; s%^laddr = \"tcp://127.0.0.1:26657\"%laddr = \"tcp://127.0.0.1:36657\"%; s%^pprof_laddr = \"localhost:6060\"%pprof_laddr = \"localhost:7060\"%; s%^laddr = \"tcp://0.0.0.0:26656\"%laddr = \"tcp://0.0.0.0:36656\"%; s%^prometheus_listen_addr = \":26660\"%prometheus_listen_addr = \":36660\"%" $HOME/.bitway/config/config.toml && \
sed -i.bak -e "s%^address = \"0.0.0.0:9090\"%address = \"0.0.0.0:10090\"%; s%^address = \"0.0.0.0:9091\"%address = \"0.0.0.0:10091\"%; s%^address = \"tcp://0.0.0.0:1317\"%address = \"tcp://0.0.0.0:2317\"%" $HOME/.bitway/config/app.toml && \
sed -i.bak -e "s%^node = \"tcp://localhost:26657\"%node = \"tcp://localhost:36657\"%" $HOME/.bitway/config/client.toml
Turn on indexing
sed -i 's|^indexer *=.*|indexer = "kv"|' $HOME/.bitway/config/config.toml
Turn off indexing
sed -i 's|^indexer *=.*|indexer = "null"|' $HOME/.bitway/config/config.toml
Setup custom prunning
APP_TOML="~/.bitway/config/app.toml"
sed -i 's|^pruning *=.*|pruning = "custom"|' $APP_TOML
sed -i 's|^pruning-keep-recent *=.*|pruning-keep-recent = "100"|' $APP_TOML
sed -i 's|^pruning-keep-every *=.*|pruning-keep-every = "0"|' $APP_TOML
sed -i 's|^pruning-interval *=.*|pruning-interval = "10"|' $APP_TOML
Check your peer
echo $(bitwayd tendermint show-node-id)@$(curl http://ifconfig.me/)$(grep -A 3 "\[p2p\]" ~/.bitway/config/config.toml | egrep -o ":[0-9]+")
Check your RPC
echo -e "\033[0;32m$(grep -A 3 "\[rpc\]" ~/.bitway/config/config.toml | egrep -o ":[0-9]+")\033[0m"
Check information about validator
bitwayd status 2>&1 | jq .ValidatorInfo
Check synchronisation status (false - synced, true - not synced)
bitwayd status 2>&1 | jq .SyncInfo.catching_up
Check the latest block
bitwayd status 2>&1 | jq .SyncInfo.latest_block_height
Reset network
bitwayd tendermint unsafe-reset-all --home $HOME/.bitway --keep-addr-book
Delete node
sudo systemctl stop bitwayd && \
sudo systemctl disable bitwayd && \
sudo rm /etc/systemd/system/bitwayd.service && \
sudo systemctl daemon-reload && \
rm -rf $HOME/.bitway && \
rm -rf $HOME/bitway
Check IP address of the server
wget -qO- eth0.me
Check network parameters
bitwayd q staking params
bitwayd q slashing params
Check validator private key is correct
[[ $(bitwayd q staking validator $(bitwayd keys show <YOUR_WALLET> --bech val -a) -oj | jq -r .consensus_pubkey.key) = $(bitwayd 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"
Search all output transactions by address
bitwayd q txs --events transfer.sender=<ADDRESS> 2>&1 | jq | grep txhash
Search all input transactions by address
bitwayd q txs --events transfer.recipient=<ADDRESS> 2>&1 | jq | grep txhash
Service management
Reload services
sudo systemctl daemon-reload
Enable service
sudo systemctl enable bitwayd
Disable service
sudo systemctl disable bitwayd
Start service
sudo systemctl start bitwayd
Stop service
sudo systemctl stop bitwayd
Restart service
sudo systemctl restart bitwayd
Check service status
sudo systemctl status bitwayd
Check service logs
sudo journalctl -u bitwayd -f -o cat
Last updated