Skip to content

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-12 --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-12 --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-12 --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-12 --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-12 --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-12 --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-12 --gas-adjustment 1.4 --gas auto --gas-prices 0ubpf -y

Validator management

Validator info

cardchaind status 2>&1 | jq .ValidatorInfo

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-12 \
--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-12 --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-12 --gas-adjustment 1.4 --gas auto --gas-prices 0ubpf -y

Vote “NO”

cardchaind tx gov vote 1 no --from wallet --chain-id cardtestnet-12 --gas-adjustment 1.4 --gas auto --gas-prices 0ubpf -y

Vote “ABSTAIN”

cardchaind tx gov vote 1 abstain --from wallet --chain-id cardtestnet-12 --gas-adjustment 1.4 --gas auto --gas-prices 0ubpf -y

Vote “NOWITHVETO”

cardchaind tx gov vote 1 NoWithVeto --from wallet --chain-id cardtestnet-12 --gas-adjustment 1.4 --gas auto --gas-prices 0ubpf -y

Maintenance

Get sync info

cardchaind status 2>&1 | jq .SyncInfo

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.toml
sed -i -e 's|^pruning-keep-recent *=.*|pruning-keep-recent = "100"|' $HOME/.cardchaind/config/app.toml
sed -i -e 's|^pruning-keep-every *=.*|pruning-keep-every = "0"|' $HOME/.cardchaind/config/app.toml
sed -i -e 's|^pruning-interval *=.*|pruning-interval = "10"|' $HOME/.cardchaind/config/app.toml

Filter peers and max peers

sed -i -e 's|^filter_peers *=.*|filter_peers = "true"|' $HOME/.cardchaind/config/config.toml
sed -i -e 's|^max_num_inbound_peers *=.*|max_num_inbound_peers = "50"|' $HOME/.cardchaind/config/config.toml
sed -i -e 's|^max_num_outbound_peers *=.*|max_num_outbound_peers = "20"|' $HOME/.cardchaind/config/config.toml

Update ports

CUSTOM_PORT=124
sed -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.toml
sed -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 cardchaind
sudo systemctl disable cardchaind
sudo rm -rf /etc/systemd/system/cardchaind.service
sudo systemctl daemon-reload
sudo rm -f $(which cardchaind)
sudo rm -rf $HOME/.cardchaind
sudo 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