🔑 Key management
Add new key
hid-noded keys add wallet
Recover existing key
hid-noded keys add wallet --recover
List all keys
hid-noded keys list
Delete key
hid-noded keys delete wallet
Export key to a file
hid-noded keys export wallet
Import key from a file
hid-noded keys import wallet wallet.backup
Query wallet balance
hid-noded q bank balances $(hid-noded keys show wallet -a)
👷 Validator management
Please make sure you have adjusted moniker, identity, details and website to match your values.
Create new validator
hid-noded tx staking create-validator \
--amount 1000000uhid \
--pubkey $(hid-noded tendermint show-validator) \
--moniker "YOUR_MONIKER_NAME" \
--identity "YOUR_KEYBASE_ID" \
--details "YOUR_DETAILS" \
--website "YOUR_WEBSITE_URL" \
--chain-id prajna-1 \
--commission-rate 0.05 \
--commission-max-rate 0.20 \
--commission-max-change-rate 0.05 \
--min-self-delegation 1 \
--from wallet \
--gas-adjustment 1.4 \
--gas auto \
--node tcp://localhost:13157 \
-y
Edit existing validator
hid-noded tx staking edit-validator \
--new-moniker "YOUR_MONIKER_NAME" \
--identity "YOUR_KEYBASE_ID" \
--details "YOUR_DETAILS" \
--website "YOUR_WEBSITE_URL" \
--chain-id prajna-1 \
--commission-rate 0.05 \
--from wallet \
--gas-adjustment 1.4 \
--gas auto \
--node tcp://localhost:13157 \
-y
Unjail validator
hid-noded tx slashing unjail --from wallet --chain-id prajna-1 --gas-adjustment 1.4 --gas auto --node tcp://localhost:13157 -y
Jail reason
hid-noded query slashing signing-info $(hid-noded tendermint show-validator)
List all active validators
hid-noded 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
hid-noded 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
hid-noded q staking validator $(hid-noded keys show wallet --bech val -a)
💲 Token management
Withdraw rewards from all validators
hid-noded tx distribution withdraw-all-rewards --from wallet --chain-id prajna-1 --gas-adjustment 1.4 --gas auto --node tcp://localhost:13157 -y
Withdraw commission and rewards from your validator
hid-noded tx distribution withdraw-rewards $(hid-noded keys show wallet --bech val -a) --commission --from wallet --chain-id prajna-1 --gas-adjustment 1.4 --gas auto --node tcp://localhost:13157 -y
Delegate tokens to yourself
hid-noded tx staking delegate $(hid-noded keys show wallet --bech val -a) 1000000uhid --from wallet --chain-id prajna-1 --gas-adjustment 1.4 --gas auto --node tcp://localhost:13157 -y
Delegate tokens to validator
hid-noded tx staking delegate <TO_VALOPER_ADDRESS> 1000000uhid --from wallet --chain-id prajna-1 --gas-adjustment 1.4 --gas auto --node tcp://localhost:13157 -y
Redelegate tokens to another validator
hid-noded tx staking redelegate $(hid-noded keys show wallet --bech val -a) <TO_VALOPER_ADDRESS> 1000000uhid --from wallet --chain-id prajna-1 --gas-adjustment 1.4 --gas auto --node tcp://localhost:13157 -y
Unbond tokens from your validator
hid-noded tx staking unbond $(hid-noded keys show wallet --bech val -a) 1000000uhid --from wallet --chain-id prajna-1 --gas-adjustment 1.4 --gas auto --node tcp://localhost:13157 -y
Send tokens to the wallet
hid-noded tx bank send wallet <TO_WALLET_ADDRESS> 1000000uhid --from wallet --chain-id prajna-1 --gas-adjustment 1.4 --gas auto --node tcp://localhost:13157 -y
🗳 Governance
List all proposals
hid-noded query gov proposals
View proposal by id
hid-noded query gov proposal 1
Vote ‘Yes’
hid-noded tx gov vote 1 yes --from wallet --chain-id prajna-1 --gas-adjustment 1.4 --gas auto --node tcp://localhost:13157 -y
Vote ‘No’
hid-noded tx gov vote 1 no --from wallet --chain-id prajna-1 --gas-adjustment 1.4 --gas auto --node tcp://localhost:13157 -y
Vote ‘Abstain’
hid-noded tx gov vote 1 abstain --from wallet --chain-id prajna-1 --gas-adjustment 1.4 --gas auto --node tcp://localhost:13157 -y
Vote ‘NoWithVeto’
hid-noded tx gov vote 1 NoWithVeto --from wallet --chain-id prajna-1 --gas-adjustment 1.4 --gas auto --node tcp://localhost:13157 -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/.hid-node/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/.hid-node/config/app.toml
Update Indexer
Disable indexer
sed -i -e 's|^indexer *=.*|indexer = "null"|' $HOME/.hid-node/config/config.toml
Enable indexer
sed -i -e 's|^indexer *=.*|indexer = "kv"|' $HOME/.hid-node/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/.hid-node/config/app.toml
🚨 Maintenance
Get validator info
hid-noded status 2>&1 | jq .ValidatorInfo
Get sync info
hid-noded status 2>&1 | jq .SyncInfo
Get node peer
echo $(hid-noded tendermint show-node-id)'@'$(curl -s ifconfig.me)':'$(cat $HOME/.hid-node/config/config.toml | sed -n '/Address to listen for incoming connection/{n;p;}' | sed 's/.*://; s/".*//')
Check if validator key is correct
[[ $(hid-noded q staking validator $(hid-noded keys show wallet --bech val -a) -oj | jq -r .consensus_pubkey.key) = $(hid-noded 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:13157/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 = \"0uhid\"/" $HOME/.hid-node/config/app.toml
Enable prometheus
sed -i -e "s/prometheus = false/prometheus = true/" $HOME/.hid-node/config/config.toml
Reset chain data
hid-noded tendermint unsafe-reset-all --keep-addr-book --home $HOME/.hid-node --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 hypersign.service
sudo systemctl disable hypersign.service
sudo rm /etc/systemd/system/hypersign.service
sudo systemctl daemon-reload
rm -f $(which hid-noded)
rm -rf $HOME/.hid-node
rm -rf $HOME/hid-node
⚙️ Service Management
Reload service configuration
sudo systemctl daemon-reload
Enable service
sudo systemctl enable hypersign.service
Disable service
sudo systemctl disable hypersign.service
Start service
sudo systemctl start hypersign.service
Stop service
sudo systemctl stop hypersign.service
Restart service
sudo systemctl restart hypersign.service
Check service status
sudo systemctl status hypersign.service
Check service logs
sudo journalctl -u hypersign.service -f --no-hostname -o cat