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

