🔑 Key management

Add new key

uptickd keys add wallet

Recover existing key

uptickd keys add wallet --recover

List all keys

uptickd keys list

Delete key

uptickd keys delete wallet

Export key to a file

uptickd keys export wallet

Import key from a file

uptickd keys import wallet wallet.backup

Query wallet balance

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

👷 Validator management

Please make sure you have adjusted moniker, identity, details and website to match your values.

Create new validator

uptickd tx staking create-validator \
--amount 1000000auptick \
--pubkey $(uptickd tendermint show-validator) \
--moniker "YOUR_MONIKER_NAME" \
--identity "YOUR_KEYBASE_ID" \
--details "YOUR_DETAILS" \
--website "YOUR_WEBSITE_URL" \
--chain-id uptick_117-1 \
--commission-rate 0.05 \
--commission-max-rate 0.20 \
--commission-max-change-rate 0.01 \
--min-self-delegation 1 \
--from wallet \
--gas 1000000 \
--fees 10000000000000000auptick \
-y

Edit existing validator

uptickd tx staking edit-validator \
--new-moniker "YOUR_MONIKER_NAME" \
--identity "YOUR_KEYBASE_ID" \
--details "YOUR_DETAILS" \
--website "YOUR_WEBSITE_URL" \
--chain-id uptick_117-1 \
--commission-rate 0.05 \
--from wallet \
--gas 1000000 \
--fees 10000000000000000auptick \
-y

Unjail validator

uptickd tx slashing unjail --from wallet --chain-id uptick_117-1 --gas 1000000 --fees 10000000000000000auptick -y

Jail reason

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

List all active validators

uptickd 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 | nl

List all inactive validators

uptickd q staking validators -oj --limit=3000 | jq '.validators[] | select(.status=="BOND_STATUS_UNBONDED")' | jq -r '(.tokens|tonumber/pow(10; 6)|floor|tostring) + " \t " + .description.moniker' | sort -gr | nl

View validator details

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

💲 Token management

Withdraw rewards from all validators

uptickd tx distribution withdraw-all-rewards --from wallet --chain-id uptick_117-1 --gas 1000000 --fees 10000000000000000auptick -y

Withdraw commission and rewards from your validator

uptickd tx distribution withdraw-rewards $(uptickd keys show wallet --bech val -a) --commission --from wallet --chain-id uptick_117-1 --gas 1000000 --fees 10000000000000000auptick -y

Delegate tokens to yourself

uptickd tx staking delegate $(uptickd keys show wallet --bech val -a) 1000000auptick --from wallet --chain-id uptick_117-1 --gas 1000000 --fees 10000000000000000auptick -y

Delegate tokens to validator

uptickd tx staking delegate <TO_VALOPER_ADDRESS> 1000000auptick --from wallet --chain-id uptick_117-1 --gas 1000000 --fees 10000000000000000auptick -y

Redelegate tokens to another validator

uptickd tx staking redelegate $(uptickd keys show wallet --bech val -a) <TO_VALOPER_ADDRESS> 1000000auptick --from wallet --chain-id uptick_117-1 --gas 1000000 --fees 10000000000000000auptick -y

Unbond tokens from your validator

uptickd tx staking unbond $(uptickd keys show wallet --bech val -a) 1000000auptick --from wallet --chain-id uptick_117-1 --gas 1000000 --fees 10000000000000000auptick -y

Send tokens to the wallet

uptickd tx bank send wallet <TO_WALLET_ADDRESS> 1000000auptick --from wallet --chain-id uptick_117-1 --gas 1000000 --fees 10000000000000000auptick -y

🗳 Governance

List all proposals

uptickd query gov proposals

View proposal by id

uptickd query gov proposal 1

Vote ‘Yes’

uptickd tx gov vote 1 yes --from wallet --chain-id uptick_117-1 --gas 1000000 --fees 10000000000000000auptick -y

Vote ‘No’

uptickd tx gov vote 1 no --from wallet --chain-id uptick_117-1 --gas 1000000 --fees 10000000000000000auptick -y

Vote ‘Abstain’

uptickd tx gov vote 1 abstain --from wallet --chain-id uptick_117-1 --gas 1000000 --fees 10000000000000000auptick -y

Vote ‘NoWithVeto’

uptickd tx gov vote 1 NoWithVeto --from wallet --chain-id uptick_117-1 --gas 1000000 --fees 10000000000000000auptick -y

⚡️ Utility

Update ports

CUSTOM_PORT=110
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/.uptickd/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/.uptickd/config/app.toml

Update Indexer

Disable indexer

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

Enable indexer

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

Update pruning

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

🚨 Maintenance

Get validator info

uptickd status 2>&1 | jq .ValidatorInfo

Get sync info

uptickd status 2>&1 | jq .SyncInfo

Get node peer

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

Check if validator key is correct

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

Get live peers

curl -sS http://localhost:11557/net_info | jq -r '.result.peers[] | "\(.node_info.id)@\(.remote_ip):\(.node_info.listen_addr)"' | awk -F ':' '{print $1":"$(NF)}'

Set minimum gas price

sed -i -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0auptick\"/" $HOME/.uptickd/config/app.toml

Enable prometheus

sed -i -e "s/prometheus = false/prometheus = true/" $HOME/.uptickd/config/config.toml

Reset chain data

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

Remove node

Please, before proceeding with the next step! All chain data will be lost! Make sure you have backed up your priv_validator_key.json!

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

⚙️ Service Management

Reload service configuration

sudo systemctl daemon-reload

Enable service

sudo systemctl enable uptick.service

Disable service

sudo systemctl disable uptick.service

Start service

sudo systemctl start uptick.service

Stop service

sudo systemctl stop uptick.service

Restart service

sudo systemctl restart uptick.service

Check service status

sudo systemctl status uptick.service

Check service logs

sudo journalctl -u uptick.service -f --no-hostname -o cat