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