Wallet operations
Create wallet
⚠️ store seed phrase, important during recovering
evmosd keys add <YOUR_WALLET_NAME>
Recover wallet
⚠️ store seed phrase, important during recovering
evmosd keys add <YOUR_WALLET_NAME> --recover
List of all wallets
Delete wallet
evmosd keys delete <YOUR_WALLET_NAME>
Export wallet
⚠️ save to wallet.backup
evmosd keys export <YOUR_WALLET_NAME>
Import wallet
evmosd keys import <WALLET_NAME> wallet.backup
Check wallet balance
evmosd q bank balances $(evmosd keys show <YOUR_WALLET_NAME> -a)
Validator operations
Create validator
evmosd tx staking create-validator \
--amount=1000000000000000000aevmos \
--pubkey=$(evmosd tendermint show-validator) \
--moniker="<Your moniker>" \
--identity=<Your identity> \
--details="<Your details>" \
--chain-id=evmos_9001-2 \
--commission-rate=0.05 \
--commission-max-rate=0.20 \
--commission-max-change-rate=0.1 \
--min-self-delegation=1 \
--from=<YOUR_WALLET> \
--fees=2000000000000aevmos \
-y
Edit validator
evmosd tx staking edit-validator \
--new-moniker="<Your moniker>" \
--identity=<your identity> \
--details="<Your details>" \
--commission-rate=0.1 \
--from=<YOUR_WALLET> \
--fees=2000000000000aevmos \
-y
Unjail your validator
evmosd tx slashing unjail --from <YOUR_WALLET> --fees=2000000000000aevmos -y
Check blocks info processed by your validator
evmosd query slashing signing-info $(evmosd tendermint show-validator)
List of active validators
evmosd 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 of inactive validators
evmosd 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 | nl
Info about your validator
evmosd q staking validator $(evmosd keys show <YOUR_WALLET_NAME> --bech val -a)
Transactions
Get your rewards from all validators
evmosd tx distribution withdraw-all-rewards --from <YOUR_WALLET> --fees=2000000000000aevmos -y
Get rewards and commissions from your validator
evmosd tx distribution withdraw-rewards $(evmosd keys show <YOUR_WALLET_NAME> --bech val -a) --commission --from <YOUR_WALLET> --fees=2000000000000aevmos -y
Delegate tokens to your validator
evmosd tx staking delegate $(evmosd keys show <YOUR_WALLET_NAME> --bech val -a) 1000000000000000000aevmos --from <YOUR_WALLET> --fees=2000000000000aevmos -y
Delegate tokens to validator
evmosd tx staking delegate <VALOPER_ADDRESS> 1000000000000000000aevmos --from <YOUR_WALLET> --fees=2000000000000aevmos -y
Redelegate tokens to another validator
evmosd tx staking redelegate <SRC_VALOPER_ADDRESS> <TARGET_VALOPER_ADDRESS> 1000000000000000000aevmos --from <WALLET> --fees=2000000000000aevmos -y
Unbound tokens from validator
⚠️ it’s can take a while, ~21 days, depends on network’s parameters
evmosd tx staking unbond <VALOPER_ADDRESS> 1000000000000000000aevmos --from <YOUR_WALLET> --fees=2000000000000aevmos -y
Send tokens to another wallet
evmosd tx bank send <YOUR_WALLET_ADDRESS> <TARGET_WALLET_ADDRESS> 1000000000000000000aevmos --from <YOUR_WALLET_ADDRESS> --fees=2000000000000aevmos -y
Check info about transaction by hash TX_HASH
evmosd query tx <TX_HASH>
Governance
Submit text proposal
evmosd tx gov submit-proposal \
--title="<Your Title>" \
--description="<Your Description>" \
--deposit=1000000000000000000aevmos \
--type="Text" \
--from=<WALLET_ADDRESS> \
--fees=2000000000000aevmos \
-y
List of all proposals
evmosd query gov proposals
Check proposal info by proposal id
evmosd query gov proposal <proposal_id>
Deposit proposal by proposal id
evmosd tx gov deposit 1 1000000000000000000aevmos --from <YOUR_WALLET> --fees=2000000000000aevmos -y
Vote as, YES
evmosd tx gov vote 1 yes --from <YOUR_WALLET> --fees=2000000000000aevmos -y
Vote as, NO
evmosd tx gov vote 1 no --from <YOUR_WALLET> --fees=2000000000000aevmos -y
Vote as, NO_WITH_VETO
evmosd tx gov vote 1 no_with_veto --from <YOUR_WALLET> --fees=2000000000000aevmos -y
Vote as, ABSTAIN
evmosd tx gov vote 1 abstain --from <YOUR_WALLET> --fees=2000000000000aevmos -y
Utils
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/.evmosd/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/.evmosd/config/app.toml && \
sed -i.bak -e "s%^node = \"tcp://localhost:26657\"%node = \"tcp://localhost:36657\"%" $HOME/.evmosd/config/client.toml
Turn on indexing
sed -i 's|^indexer *=.*|indexer = "kv"|' $HOME/.evmosd/config/config.toml
Turn off indexing
sed -i 's|^indexer *=.*|indexer = "null"|' $HOME/.evmosd/config/config.toml
Setup custom prunning
APP_TOML="~/.evmosd/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_TOML
Check your peer
echo $(evmosd tendermint show-node-id)@$(curl http://ifconfig.me/)$(grep -A 3 "\[p2p\]" ~/.evmosd/config/config.toml | egrep -o ":[0-9]+")
Check your RPC
echo -e "\033[0;32m$(grep -A 3 "\[rpc\]" ~/.evmosd/config/config.toml | egrep -o ":[0-9]+")\033[0m"
Check information about validator
evmosd status 2>&1 | jq .ValidatorInfo
Check synchronisation status (false - synced, true - not synced)
evmosd status 2>&1 | jq .SyncInfo.catching_up
Check the latest block
evmosd status 2>&1 | jq .SyncInfo.latest_block_height
Reset network
evmosd tendermint unsafe-reset-all --home $HOME/.evmosd --keep-addr-book
Delete node
sudo systemctl stop evmosd && \
sudo systemctl disable evmosd && \
sudo rm /etc/systemd/system/evmosd.service && \
sudo systemctl daemon-reload && \
rm -rf $HOME/.evmosd && \
rm -rf $HOME/evmos
Check IP address of the server
Check network parameters
evmosd q staking params
evmosd q slashing params
Check validator private key is correct
[[ $(evmosd q staking validator $(evmosd keys show <YOUR_WALLET> --bech val -a) -oj | jq -r .consensus_pubkey.key) = $(evmosd 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
evmosd q txs --events transfer.sender=<ADDRESS> 2>&1 | jq | grep txhash
Search all input transactions by address
evmosd q txs --events transfer.recipient=<ADDRESS> 2>&1 | jq | grep txhash
Service management
Reload services
sudo systemctl daemon-reload
Enable service
sudo systemctl enable evmosd
Disable service
sudo systemctl disable evmosd
Start service
sudo systemctl start evmosd
Stop service
sudo systemctl stop evmosd
Restart service
sudo systemctl restart evmosd
Check service status
sudo systemctl status evmosd
Check service logs
sudo journalctl -u evmosd -f -o cat
Last updated