CLI Cheatsheet
Key management
Add new key
cardchaind keys add wallet
Recover existing key
cardchaind keys add wallet --recover
List all keys
cardchaind keys list
Delete key
cardchaind keys delete wallet
Export key to the file
cardchaind keys export wallet
Import key from the file
cardchaind keys import wallet wallet.backup
Wallet balance
cardchaind q bank balances $(cardchaind keys show wallet -a)
Token management
Withdraw rewards from all validators
cardchaind tx distribution withdraw-all-rewards --from wallet --chain-id cardtestnet-13 --gas-adjustment 1.4 --gas auto --gas-prices 0ubpf -y
Withdraw rewards and commissions from your validator
cardchaind tx distribution withdraw-rewards $(cardchaind keys show wallet --bech val -a) --commission --from wallet --chain-id cardtestnet-13 --gas-adjustment 1.4 --gas auto --gas-prices 0ubpf -y
Delegate tokens to yourself
cardchaind tx staking delegate $(cardchaind keys show wallet --bech val -a) 1000000ubpf --from wallet --chain-id cardtestnet-13 --gas-adjustment 1.4 --gas auto --gas-prices 0ubpf -y
Delegate tokens to validator
cardchaind tx staking delegate <TO_VALOPER_ADDRESS> 1000000ubpf --from wallet --chain-id cardtestnet-13 --gas-adjustment 1.4 --gas auto --gas-prices 0ubpf -y
Redelegate tokens to another validator
cardchaind tx staking redelegate $(cardchaind keys show wallet --bech val -a) <TO_VALOPER_ADDRESS> 1000000ubpf --from wallet --chain-id cardtestnet-13 --gas-adjustment 1.4 --gas auto --gas-prices 0ubpf -y
Unbond tokens from your validator
cardchaind tx staking unbond $(cardchaind keys show wallet --bech val -a) 1000000ubpf --from wallet --chain-id cardtestnet-13 --gas-adjustment 1.4 --gas auto --gas-prices 0ubpf -y
Send tokens to the wallet
cardchaind tx bank send wallet <TO_WALLET_ADDRESS> 1000000ubpf --from wallet --chain-id cardtestnet-13 --gas-adjustment 1.4 --gas auto --gas-prices 0ubpf -y
Validator management
Validator info
cardchaind status 2>&1 | jq .validator_info
Validator details
cardchaind q staking validator $(cardchaind keys show wallet --bech val -a)
Check if validator key is correct
[[ $(cardchaind q staking validator $(cardchaind keys show wallet --bech val -a) -oj | jq -r .consensus_pubkey.key) = $(cardchaind 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"
List all active validators
cardchaind q staking validators -oj --limit=1000 | 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
cardchaind q staking validators -oj --limit=1000 | jq '.validators[] | select(.status=="BOND_STATUS_UNBONDED")' | jq -r '(.tokens|tonumber/pow(10; 6)|floor|tostring) + " \t " + .description.moniker' | sort -gr | nl
Edit existing validator
cardchaind tx staking edit-validator \ --new-moniker "YOUR_MONIKER_NAME" \ --identity "YOUR_KEYBASE_ID" \ --details "YOUR_DETAILS" \ --website "YOUR_WEBSITE_URL" \ --security-contact "YOUR_EMAIL_ADDRESS" \ --chain-id cardtestnet-13 \ --commission-rate 0.05 \ --from wallet \ --gas-adjustment 1.4 \ --gas auto \ --gas-prices 0ubpf \ -y
Jail reason
cardchaind query slashing signing-info $(cardchaind tendermint show-validator)
Unjail validator
cardchaind tx slashing unjail --from wallet --chain-id cardtestnet-13 --gas-adjustment 1.4 --gas auto --gas-prices 0ubpf -y
Governance
Create a new offer
cardchaind tx gov submit-proposal \ --title "" \ --description "" \ --deposit 10000000ubpf \ --type Text --from wallet \ --gas-adjustment 1.4 \ --gas auto \ --gas-prices 0ubpf \ -y
List all proposals
cardchaind query gov proposals
View proposal by ID
cardchaind query gov proposal 1
Vote “YES”
cardchaind tx gov vote 1 yes --from wallet --chain-id cardtestnet-13 --gas-adjustment 1.4 --gas auto --gas-prices 0ubpf -y
Vote “NO”
cardchaind tx gov vote 1 no --from wallet --chain-id cardtestnet-13 --gas-adjustment 1.4 --gas auto --gas-prices 0ubpf -y
Vote “ABSTAIN”
cardchaind tx gov vote 1 abstain --from wallet --chain-id cardtestnet-13 --gas-adjustment 1.4 --gas auto --gas-prices 0ubpf -y
Vote “NOWITHVETO”
cardchaind tx gov vote 1 NoWithVeto --from wallet --chain-id cardtestnet-13 --gas-adjustment 1.4 --gas auto --gas-prices 0ubpf -y
Maintenance
Get sync info
cardchaind status 2>&1 | jq .sync_info
Get node peer
echo $(cardchaind tendermint show-node-id)'@'$(wget -qO- eth0.me)':'$(cat $HOME/.cardchaind/config/config.toml | sed -n '/Address to listen for incoming connection/{n;p;}' | sed 's/.*://; s/".*//')
Get live peers
curl -sS http://localhost:12457/net_info | jq -r '.result.peers[] | "\(.node_info.id)@\(.remote_ip):\(.node_info.listen_addr)"' | awk -F ':' '{print $1":"$(NF)}'
Enable Prometheus
sed -i -e "s/prometheus = false/prometheus = true/" $HOME/.cardchaind/config/config.toml
Set minimum gas price
sed -i -e "s|^minimum-gas-prices *=.*|minimum-gas-prices = \"0ubpf\"|" $HOME/.cardchaind/config/app.toml
Disable indexer
sed -i -e 's|^indexer *=.*|indexer = "null"|' $HOME/.cardchaind/config/config.toml
Enable indexer
sed -i -e 's|^indexer *=.*|indexer = "kv"|' $HOME/.cardchaind/config/config.toml
Update pruning
sed -i -e 's|^pruning *=.*|pruning = "custom"|' $HOME/.cardchaind/config/app.tomlsed -i -e 's|^pruning-keep-recent *=.*|pruning-keep-recent = "100"|' $HOME/.cardchaind/config/app.tomlsed -i -e 's|^pruning-interval *=.*|pruning-interval = "19"|' $HOME/.cardchaind/config/app.toml
Filter peers and max peers
sed -i -e 's|^filter_peers *=.*|filter_peers = "true"|' $HOME/.cardchaind/config/config.tomlsed -i -e 's|^max_num_inbound_peers *=.*|max_num_inbound_peers = "50"|' $HOME/.cardchaind/config/config.tomlsed -i -e 's|^max_num_outbound_peers *=.*|max_num_outbound_peers = "20"|' $HOME/.cardchaind/config/config.toml
Update ports
CUSTOM_PORT=124sed -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/.cardchaind/config/config.tomlsed -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/.cardchaind/config/app.toml
Reset chain data
cardchaind tendermint unsafe-reset-all --keep-addr-book --home $HOME/.cardchaind
Delete node
sudo systemctl stop cardchaindsudo systemctl disable cardchaindsudo rm -rf /etc/systemd/system/cardchaind.servicesudo systemctl daemon-reloadsudo rm -f $(which cardchaind)sudo rm -rf $HOME/.cardchaindsudo rm -rf $HOME/Cardchain
Service Management
Status service
sudo systemctl status cardchaind
Start service
sudo systemctl start cardchaind
Stop service
sudo systemctl stop cardchaind
Restart service
sudo systemctl restart cardchaind
Logs service
sudo journalctl -u cardchaind -f --no-hostname -o cat
Reload service
sudo systemctl daemon-reload
Enable service
sudo systemctl enable cardchaind
Disable service
sudo systemctl disable cardchaind