Cheat Sheet
Wallet operations
Create wallet
⚠️ store seed phrase, important during recovering
junod keys add <YOUR_WALLET_NAME>Recover wallet
⚠️ store seed phrase, important during recovering
junod keys add <YOUR_WALLET_NAME> --recoverList of all wallets
junod keys listDelete wallet
junod keys delete <YOUR_WALLET_NAME>Export wallet
⚠️ save to wallet.backup
junod keys export <YOUR_WALLET_NAME>Import wallet
junod keys import <WALLET_NAME> wallet.backupCheck wallet balance
junod q bank balances $(junod keys show <YOUR_WALLET_NAME> -a)Validator operations
Create validator
junod tx staking create-validator \
--amount=1000000ujuno \
--pubkey=$(junod tendermint show-validator) \
--moniker="<Your moniker>" \
--identity=<Your identity> \
--details="<Your details>" \
--chain-id=juno-1 \
--commission-rate=0.05 \
--commission-max-rate=0.20 \
--commission-max-change-rate=0.1 \
--min-self-delegation=1 \
--from=<YOUR_WALLET> \
--gas-prices=0.1ujuno \
--gas-adjustment=1.5 \
--gas=auto \
-yEdit validator
junod tx staking edit-validator \
--new-moniker="<Your moniker>" \
--identity=<your identity> \
--details="<Your details>" \
--commission-rate=0.1 \
--from=<YOUR_WALLET> \
--gas-prices=0.1ujuno \
--gas-adjustment=1.5 \
--gas=auto \
-yUnjail your validator
junod tx slashing unjail --from <YOUR_WALLET> --gas-prices 0.1ujuno --gas-adjustment 1.5 --gas auto -yCheck blocks info processed by your validator
junod query slashing signing-info $(junod tendermint show-validator)List of active validators
junod 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 | nlList of inactive validators
junod 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 | nlInfo about your validator
junod q staking validator $(junod keys show <YOUR_WALLET_NAME> --bech val -a)Transactions
Get your rewards from all validators
junod tx distribution withdraw-all-rewards --from <YOUR_WALLET> --gas-prices 0.1ujuno --gas-adjustment 1.5 --gas auto -yGet rewards and commissions from your validator
junod tx distribution withdraw-rewards $(junod keys show <YOUR_WALLET_NAME> --bech val -a) --commission --from <YOUR_WALLET> --gas-prices 0.1ujuno --gas-adjustment 1.5 --gas auto -yDelegate tokens to your validator
junod tx staking delegate $(junod keys show <YOUR_WALLET_NAME> --bech val -a) 1000000ujuno --from <YOUR_WALLET> --gas-prices 0.1ujuno --gas-adjustment 1.5 --gas auto -yDelegate tokens to validator
junod tx staking delegate <VALOPER_ADDRESS> 1000000ujuno --from <YOUR_WALLET> --gas-prices 0.1ujuno --gas-adjustment 1.5 --gas auto -yRedelegate tokens to another validator
junod tx staking redelegate <SRC_VALOPER_ADDRESS> <TARGET_VALOPER_ADDRESS> 1000000ujuno --from <WALLET> --gas-prices 0.1ujuno --gas-adjustment 1.5 --gas auto -yUnbound tokens from validator
⚠️ it’s can take a while, ~21 days, depends on network’s parameters
junod tx staking unbond <VALOPER_ADDRESS> 1000000ujuno --from <YOUR_WALLET> --gas-prices 0.1ujuno --gas-adjustment 1.5 --gas auto -ySend tokens to another wallet
junod tx bank send <YOUR_WALLET_ADDRESS> <TARGET_WALLET_ADDRESS> 1000000ujuno --from <YOUR_WALLET_ADDRESS> --gas-prices 0.1ujuno --gas-adjustment 1.5 --gas auto -yCheck info about transaction by hash TX_HASH
junod query tx <TX_HASH>Governance
Submit text proposal
junod tx gov submit-proposal \
--title="<Your Title>" \
--description="<Your Description>" \
--deposit=1000000ujuno \
--type="Text" \
--from=<WALLET_ADDRESS> \
--gas-prices=0.1ujuno \
--gas-adjustment=1.5 \
--gas=auto \
-yList of all proposals
junod query gov proposalsCheck proposal info by proposal id
junod query gov proposal <proposal_id>Deposit proposal by proposal id
junod tx gov deposit 1 1000000ujuno --from <YOUR_WALLET> --gas-prices 0.1ujuno --gas-adjustment 1.5 --gas auto -yVote as, YES
junod tx gov vote 1 yes --from <YOUR_WALLET> --gas-prices 0.1ujuno --gas-adjustment 1.5 --gas auto -yVote as, NO
junod tx gov vote 1 no --from <YOUR_WALLET> --gas-prices 0.1ujuno --gas-adjustment 1.5 --gas auto -yVote as, NO_WITH_VETO
junod tx gov vote 1 no_with_veto --from <YOUR_WALLET> --gas-prices 0.1ujuno --gas-adjustment 1.5 --gas auto -yVote as, ABSTAIN
junod tx gov vote 1 abstain --from <YOUR_WALLET> --gas-prices 0.1ujuno --gas-adjustment 1.5 --gas auto -yUtils
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/.juno/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/.juno/config/app.toml && \
sed -i.bak -e "s%^node = \"tcp://localhost:26657\"%node = \"tcp://localhost:36657\"%" $HOME/.juno/config/client.tomlTurn on indexing
sed -i 's|^indexer *=.*|indexer = "kv"|' $HOME/.juno/config/config.tomlTurn off indexing
sed -i 's|^indexer *=.*|indexer = "null"|' $HOME/.juno/config/config.tomlSetup custom prunning
APP_TOML="~/.juno/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_TOMLCheck your peer
echo $(junod tendermint show-node-id)@$(curl http://ifconfig.me/)$(grep -A 3 "\[p2p\]" ~/.juno/config/config.toml | egrep -o ":[0-9]+")Check your RPC
echo -e "\033[0;32m$(grep -A 3 "\[rpc\]" ~/.juno/config/config.toml | egrep -o ":[0-9]+")\033[0m"Check information about validator
junod status 2>&1 | jq .ValidatorInfoCheck synchronisation status (false - synced, true - not synced)
junod status 2>&1 | jq .SyncInfo.catching_upCheck the latest block
junod status 2>&1 | jq .SyncInfo.latest_block_heightReset network
junod tendermint unsafe-reset-all --home $HOME/.juno --keep-addr-bookDelete node
sudo systemctl stop junod && \
sudo systemctl disable junod && \
sudo rm /etc/systemd/system/junod.service && \
sudo systemctl daemon-reload && \
rm -rf $HOME/.juno && \
rm -rf $HOME/junoCheck IP address of the server
wget -qO- eth0.meCheck network parameters
junod q staking params
junod q slashing paramsCheck validator private key is correct
[[ $(junod q staking validator $(junod keys show <YOUR_WALLET> --bech val -a) -oj | jq -r .consensus_pubkey.key) = $(junod 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
junod q txs --events transfer.sender=<ADDRESS> 2>&1 | jq | grep txhashSearch all input transactions by address
junod q txs --events transfer.recipient=<ADDRESS> 2>&1 | jq | grep txhashService management
Reload services
sudo systemctl daemon-reloadEnable service
sudo systemctl enable junodDisable service
sudo systemctl disable junodStart service
sudo systemctl start junodStop service
sudo systemctl stop junodRestart service
sudo systemctl restart junodCheck service status
sudo systemctl status junodCheck service logs
sudo journalctl -u junod -f -o catLast updated

