Useful commands
π Key managementβ
Add new keyβ
dymd keys add wallet
Recover existing keyβ
dymd keys add wallet --recover
List all keysβ
dymd keys list
Delete keyβ
dymd keys delete wallet
Export key to the fileβ
dymd keys export wallet
Import key from the fileβ
dymd keys import wallet wallet.backup
Query wallet balanceβ
dymd q bank balances $(dymd keys show wallet -a)
π· Validator managementβ
info
Please make sure you have adjusted moniker, identity, details and website to match your values.
Create new validatorβ
dymd tx staking create-validator \
--amount 1000000adym \
--pubkey $(dymd tendermint show-validator) \
--moniker "owlstake" \
--identity "6B73E2068E0C0C4C" \
--details "We are a Professional Validator of PoS Cryptocurrencies who helps investors and token holders gain profits from their assets by consistently increasing their yields via non-custodial staking. Join us, stake, and earn." \
--website "https://owlstake.com" \
--chain-id dymension_1100-1 \
--commission-rate 0.05 \
--commission-max-rate 0.20 \
--commission-max-change-rate 0.1 \
--min-self-delegation 1 \
--from wallet \
--gas-adjustment 1.4 \
--gas auto \
--gas-prices 20000000000adym \
-y
Edit existing validatorβ
dymd tx staking edit-validator \
--new-moniker "YOUR_MONIKER_NAME" \
--identity "YOUR_KEYBASE_ID" \
--details "YOUR_DETAILS" \
--website "YOUR_WEBSITE_URL" \
--chain-id dymension_1100-1 \
--commission-rate 0.05 \
--from wallet \
--gas-adjustment 1.4 \
--gas auto \
--gas-prices 20000000000adym \
-y
Unjail validatorβ
dymd tx slashing unjail --from wallet --chain-id dymension_1100-1 --gas-adjustment 1.4 --gas auto --gas-prices 20000000000adym -y
Jail reasonβ
dymd query slashing signing-info $(dymd tendermint show-validator)
List all active validatorsβ
dymd 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β
dymd 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β
dymd q staking validator $(dymd keys show wallet --bech val -a)
π² Token managementβ
Withdraw rewards from all validatorsβ
dymd tx distribution withdraw-all-rewards --from wallet --chain-id dymension_1100-1 --gas-adjustment 1.4 --gas auto --gas-prices 20000000000adym -y
Withdraw commission and rewards from your validatorβ
dymd tx distribution withdraw-rewards $(dymd keys show wallet --bech val -a) --commission --from wallet --chain-id dymension_1100-1 --gas-adjustment 1.4 --gas auto --gas-prices 20000000000adym -y
Delegate tokens to yourselfβ
dymd tx staking delegate $(dymd keys show wallet --bech val -a) 1000000adym --from wallet --chain-id dymension_1100-1 --gas-adjustment 1.4 --gas auto --gas-prices 20000000000adym -y
Delegate tokens to validatorβ
dymd tx staking delegate <TO_VALOPER_ADDRESS> 1000000adym --from wallet --chain-id dymension_1100-1 --gas-adjustment 1.4 --gas auto --gas-prices 20000000000adym -y
Redelegate tokens to another validatorβ
dymd tx staking redelegate $(dymd keys show wallet --bech val -a) <TO_VALOPER_ADDRESS> 1000000adym --from wallet --chain-id dymension_1100-1 --gas-adjustment 1.4 --gas auto --gas-prices 20000000000adym -y
Unbond tokens from your validatorβ
dymd tx staking unbond $(dymd keys show wallet --bech val -a) 1000000adym --from wallet --chain-id dymension_1100-1 --gas-adjustment 1.4 --gas auto --gas-prices 20000000000adym -y
Send tokens to the walletβ
dymd tx bank send wallet <TO_WALLET_ADDRESS> 1000000adym --from wallet --chain-id dymension_1100-1 --gas-adjustment 1.4 --gas auto --gas-prices 20000000000adym -y
π³ Governanceβ
List all proposalsβ
dymd query gov proposals
View proposal by idβ
dymd query gov proposal 1
Vote 'Yes'β
dymd tx gov vote 1 yes --from wallet --chain-id dymension_1100-1 --gas-adjustment 1.4 --gas auto --gas-prices 20000000000adym -y
Vote 'No'β
dymd tx gov vote 1 no --from wallet --chain-id dymension_1100-1 --gas-adjustment 1.4 --gas auto --gas-prices 20000000000adym -y
Vote 'Abstain'β
dymd tx gov vote 1 abstain --from wallet --chain-id dymension_1100-1 --gas-adjustment 1.4 --gas auto --gas-prices 20000000000adym -y
Vote 'NoWithVeto'β
dymd tx gov vote 1 NoWithVeto --from wallet --chain-id dymension_1100-1 --gas-adjustment 1.4 --gas auto --gas-prices 20000000000adym -y
β‘οΈ Utilityβ
Update portsβ
CUSTOM_PORT=146
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/.dymension/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/.dymension/config/app.toml
Update Indexerβ
Disable indexer
sed -i -e 's|^indexer *=.*|indexer = "null"|' $HOME/.dymension/config/config.toml
Enable indexer
sed -i -e 's|^indexer *=.*|indexer = "kv"|' $HOME/.dymension/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/.dymension/config/app.toml
π¨ Maintenanceβ
Get validator infoβ
dymd status 2>&1 | jq .ValidatorInfo
Get sync infoβ
dymd status 2>&1 | jq .SyncInfo
Get node peerβ
echo $(dymd tendermint show-node-id)'@'$(curl -s ifconfig.me)':'$(cat $HOME/.dymension/config/config.toml | sed -n '/Address to listen for incoming connection/{n;p;}' | sed 's/.*://; s/".*//')
Check if validator key is correctβ
[[ $(dymd q staking validator $(dymd keys show wallet --bech val -a) -oj | jq -r .consensus_pubkey.key) = $(dymd 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:11757/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 = \"20000000000adym\"/" $HOME/.dymension/config/app.toml
Enable prometheusβ
sed -i -e "s/prometheus = false/prometheus = true/" $HOME/.dymension/config/config.toml
Reset chain dataβ
dymd tendermint unsafe-reset-all --keep-addr-book --home $HOME/.dymension --keep-addr-book
Remove nodeβ
danger
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 dymd
sudo systemctl disable dymd
sudo rm /etc/systemd/system/dymd.service
sudo systemctl daemon-reload
rm -f $(which dymd)
rm -rf $HOME/.dymension
rm -rf $HOME/dymension
βοΈ Service Managementβ
Reload service configurationβ
sudo systemctl daemon-reload
Enable serviceβ
sudo systemctl enable dymd
Disable serviceβ
sudo systemctl disable dymd
Start serviceβ
sudo systemctl start dymd
Stop serviceβ
sudo systemctl stop dymd
Restart serviceβ
sudo systemctl restart dymd
Check service statusβ
sudo systemctl status dymd
Check service logsβ
sudo journalctl -u dymd -f --no-hostname -o cat