Skip to content

CLI Cheatsheet

Key management

Add new key

junctiond keys add wallet

Recover existing key

junctiond keys add wallet --recover

List all keys

junctiond keys list

Delete key

junctiond keys delete wallet

Export key to the file

junctiond keys export wallet

Import key from the file

junctiond keys import wallet wallet.backup

Wallet balance

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

Token management

Withdraw rewards from all validators

junctiond tx distribution withdraw-all-rewards --from wallet --chain-id junction --fees 500amf -y

Withdraw rewards and commissions from your validator

junctiond tx distribution withdraw-rewards $(junctiond keys show wallet --bech val -a) --commission --from wallet --chain-id junction --fees 500amf -y

Delegate tokens to yourself

junctiond tx staking delegate $(junctiond keys show wallet --bech val -a) 1000000amf --from wallet --chain-id junction --fees 500amf -y

Delegate tokens to validator

junctiond tx staking delegate <TO_VALOPER_ADDRESS> 1000000amf --from wallet --chain-id junction --fees 500amf -y

Redelegate tokens to another validator

junctiond tx staking redelegate $(junctiond keys show wallet --bech val -a) <TO_VALOPER_ADDRESS> 1000000amf --from wallet --chain-id junction --fees 500amf -y

Unbond tokens from your validator

junctiond tx staking unbond $(junctiond keys show wallet --bech val -a) 1000000amf --from wallet --chain-id junction --fees 500amf -y

Send tokens to the wallet

junctiond tx bank send wallet <TO_WALLET_ADDRESS> 1000000amf --from wallet --chain-id junction --fees 500amf -y

Validator management

Validator info

junctiond status 2>&1 | jq .ValidatorInfo

Validator details

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

Check if validator key is correct

[[ $(junctiond q staking validator $(junctiond keys show wallet --bech val -a) -oj | jq -r .consensus_pubkey.key) = $(junctiond 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

junctiond 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

junctiond 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

junctiond 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 junction \
--commission-rate 0.05 \
--from wallet \
--fees 500amf \
-y

Jail reason

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

Unjail validator

junctiond tx slashing unjail --from wallet --chain-id junction --fees 500amf -y

Governance

Create a new offer

junctiond tx gov submit-proposal \
--title "" \
--description "" \
--deposit 10000000amf \
--type Text
--from wallet \
--fees 500amf \
-y

List all proposals

junctiond query gov proposals

View proposal by ID

junctiond query gov proposal 1

Vote “YES”

junctiond tx gov vote 1 yes --from wallet --chain-id junction --fees 500amf -y

Vote “NO”

junctiond tx gov vote 1 no --from wallet --chain-id junction --fees 500amf -y

Vote “ABSTAIN”

junctiond tx gov vote 1 abstain --from wallet --chain-id junction --fees 500amf -y

Vote “NOWITHVETO”

junctiond tx gov vote 1 NoWithVeto --from wallet --chain-id junction --fees 500amf -y

Maintenance

Get sync info

junctiond status 2>&1 | jq .SyncInfo

Get node peer

echo $(junctiond tendermint show-node-id)'@'$(wget -qO- eth0.me)':'$(cat $HOME/.junction/config/config.toml | sed -n '/Address to listen for incoming connection/{n;p;}' | sed 's/.*://; s/".*//')

Get live peers

curl -sS http://localhost:13757/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/.junction/config/config.toml

Set minimum gas price

sed -i -e "s|^minimum-gas-prices *=.*|minimum-gas-prices = \"0.001amf\"|" $HOME/.junction/config/app.toml

Disable indexer

sed -i -e 's|^indexer *=.*|indexer = "null"|' $HOME/.junction/config/config.toml

Enable indexer

sed -i -e 's|^indexer *=.*|indexer = "kv"|' $HOME/.junction/config/config.toml

Update pruning

sed -i -e 's|^pruning *=.*|pruning = "custom"|' $HOME/.junction/config/app.toml
sed -i -e 's|^pruning-keep-recent *=.*|pruning-keep-recent = "100"|' $HOME/.junction/config/app.toml
sed -i -e 's|^pruning-keep-every *=.*|pruning-keep-every = "0"|' $HOME/.junction/config/app.toml
sed -i -e 's|^pruning-interval *=.*|pruning-interval = "10"|' $HOME/.junction/config/app.toml

Filter peers and max peers

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

Update ports

CUSTOM_PORT=137
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/.junction/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/.junction/config/app.toml

Reset chain data

junctiond tendermint unsafe-reset-all --keep-addr-book --home $HOME/.junction

Delete node

sudo systemctl stop junctiond
sudo systemctl disable junctiond
sudo rm -rf /etc/systemd/system/junctiond.service
sudo systemctl daemon-reload
sudo rm -f $(which junctiond)
sudo rm -rf $HOME/.junction

Service Management

Status service

sudo systemctl status junctiond

Start service

sudo systemctl start junctiond

Stop service

sudo systemctl stop junctiond

Restart service

sudo systemctl restart junctiond

Logs service

sudo journalctl -u junctiond -f --no-hostname -o cat

Reload service

sudo systemctl daemon-reload

Enable service

sudo systemctl enable junctiond

Disable service

sudo systemctl disable junctiond