๐Ÿ’ก Useful commands

โš™๏ธ Service Commands

Check Logs

sudo journalctl -u mantrachaind -f -o cat

Start service

sudo systemctl start mantrachaind

Stop service

sudo systemctl stop mantrachaind

Restart service

sudo systmctl restart mantrachaind

Check status

sudo systemctl status mantrachaind

Enable Service

sudo systemctl enable mantrachaind

Reload service

sudo systemctl daemon-reload

Disable service

sudo systemctl disable mantrachaind

Check synchronization status

mantrachaind status | jq | grep "catching_up"

If "true" - not synchronized // "false" - synchronized

Check the latest block of your validator and the last block of the network

local_height=$(mantrachaind status | jq -r .sync_info.latest_block_height); network_height=$(curl -s https://rpc.mantrachain-testnet.unitynodes.com/status | jq -r .result.sync_info.latest_block_height); blocks_left=$((network_height - local_height)); echo "Your node height: $local_height"; echo "Network height: $network_height"; echo "Blocks left: $blocks_left"

Example:

View the ports used node

View the ports used node

ss -tulpn | grep mantrachaind

โš™๏ธ Key Command

Create new wallet

mantrachaind keys add wallet

Recovery wallet

mantrachaind keys add wallet --recover

List all wallet

mantrachaind keys list

Delete wallet

mantrachaind keys delete wallet

Export wallet

mantrachaind keys export wallet

Import wallet

mantrachaind keys import wallet wallet.backup 

Check wallet balance

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

โš™๏ธ Validator Commands

Create validator

mantrachaind tx staking create-validator \
  --amount=1000000uom \
  --pubkey=$(mantrachaind tendermint show-validator) \
  --moniker=<MONIKER> \ #Validator name, displayed in explorers
  --identity ""     #Use your KeyBase ID. If you don't have one, leave it empty.
  --details "" \ #Any details about your validator.
  --chain-id=mantra-hongbai-1 \
  --commission-rate="0.10" \
  --commission-max-rate="0.20" \
  --commission-max-change-rate="0.01" \
  --min-self-delegation="1000000" \
  --gas="auto" \
  --gas-adjustment 2 \
  --gas-prices="0.0002uom" \
  --from=wallet #Wallet name, as specified during creation, or typically 'wallet'.

You can leave the text after # unchanged - it's a commented hint that won't affect validator creation.

โ—ฝ Replace the following values with your own: WALLET - usually it's 'wallet', or your wallet's name. MONIKER - any convenient name for your validator, displayed in the explorer. IDENTITY - validator's avatar, displayed in the explorer. Create a KeyBase ID following the instructions or leave it empty, and it will default to a standard one. DETAILS - details about your validator, also displayed in the explorer.

Replace all necessary values indicated above with the $ sign to successfully create your validator. โ—ฝ Example:

mantrachaind tx staking create-validator \
  --amount=1000000uom \
  --pubkey=$(mantrachaind tendermint show-validator) \
  --moniker=<MONIKER> \ #Validator name, displayed in explorers
  --identity ""     #Use your KeyBase ID. If you don't have one, leave it empty.
  --details "" \ #Any details about your validator.
  --chain-id=mantra-hongbai-1 \
  --commission-rate="0.10" \
  --commission-max-rate="0.20" \
  --commission-max-change-rate="0.01" \
  --min-self-delegation="1000000" \
  --gas="auto" \
  --gas-adjustment 2 \
  --gas-prices="0.0002uom" \
  --from=wallet #Wallet name, as specified during creation, or typically 'wallet'.

Update validator information

mantrachaind tx staking edit-validator \
--commission-rate 0.1 \
--new-moniker "$MONIKER" \
--identity "YOUR_KEYBASE_ID" \
--details "NEW_DETAILS" \
--from wallet \
--chain-id mantra-hongbai-1 \
--gas-prices 250000000uom \
--gas-adjustment 1.5 \
--gas auto \
-y

Validator details

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

Jailing info

mantrachaind q staking validator $(mantrachaind keys show wallet --bech val -a) | grep -E "jailed"

If "true" - your validator is jailed // "false" - your validator is not jailed

Jail reason

mantrachaind slashing signing-info $(mantrachaind tendermint show-validator)

Unjail command

mantrachaind tx slashing unjail \
--chain-id mantra-hongbai-1 \
--gas-prices 250000000uom \
--gas-adjustment 1.5 \
--gas auto \
--from wallet \ # Or another wallet name
-y 

Information about delegation at your validator

mantrachaind q staking validator $(mantrachaind keys show wallet --bech val -a) | grep -E "tokens"

Active Validators list

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

Inactive Validator list

mantrachaind q staking validators -oj --limit=2000 | 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 

Signing Info

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

โš™๏ธ Tokens Commands

Delegate to yourself

mantrachaind tx staking delegate $(mantrachaind keys show wallet --bech val -a) 1000000uom --from wallet --chain-id mantra-hongbai-1 --gas-prices 250000000uom --gas-adjustment 1.5 --gas auto -y

Delegate to another validator

mantrachaind tx staking delegate <TO_VALOPER_ADDRESS> 1000000uom --from $WALLET --chain-id mantra-hongbai-1 --gas-prices 250000000uom --gas-adjustment 1.5 --gas auto -y

Redelegate your stake to other validator

mantrachaind tx staking redelegate $VALOPER_ADDRESS <TO_VALOPER_ADDRESS> 1000000uom --from $WALLET --chain-id mantra-hongbai-1 --gas-prices 250000000uom --gas-adjustment 1.5 --gas auto -y

Unbond stake

mantrachaind tx staking unbond $(mantrachaindkeys show $WALLET --bech val -a) 1000000uom --from $WALLET --chain-id mantra-hongbai-1 --gas-prices 250000000uom --gas-adjustment 1.5 --gas auto -y

Send tokens

mantrachaind tx bank send $WALLET_ADDRESS <TO_WALLET_ADDRESS> 1000000uom --gas-prices 250000000uom --gas-adjustment 1.5 --gas auto -y

Check wallet balance

mantrachaind bank balances $(mantrachaind keys show wallet -a)

Transaction details

mantrachaind query tx HASH_TX

Withdraw all rewards

mantrachaind tx distribution withdraw-all-rewards --from $WALLET --chain-id mantra-hongbai-1 --gas-prices 250000000uom --gas-adjustment 1.5 --gas auto -y

Withdraw rewards and commission from your validator

mantrachaind tx distribution withdraw-rewards $VALOPER_ADDRESS --from $WALLET --commission --chain-id mantra-hongbai-1 --gas-prices 250000000auom --gas-adjustment 1.5 --gas auto -y

โš™๏ธ Governance

List All Proposals

mantrachaind query gov proposals

View proposal by ID

mantrachaind query gov proposal ID

Vote "YES"

mantrachaind tx gov vote PROPOSAL_ID yes --from wallet --chain-id mantra-hongbai-1 --gas-prices 250000000uom --gas-adjustment 1.5 --gas auto -y

Vote "NO"

mantrachaind tx gov vote PROPOSAL_ID no --from wallet --chain-id mantra-hongbai-1 --gas-prices 250000000uom --gas-adjustment 1.5 --gas auto -y

Vote "NO_WITH_VETO"

mantrachaind tx gov vote PROPOSAL_ID no_with_veto --from wallet --chain-id mantra-hongbai-1 --gas-prices 250000000uom --gas-adjustment 1.5 --gas auto -y

Vote "ABSTAIN"

mantrachaind tx gov vote PROPOSAL_ID abstain --from wallet --chain-id mantra-hongbai-1 --gas-prices 250000000uom --gas-adjustment 1.5 --gas auto -y

Create new text proposal

mantrachaind tx gov submit-proposal \
--title="Title" \ #Change Title
--description="Description" \
--deposit=1000000uom \
--type="Text" \   #Change text proposal
--from=wallet \   #Change name wallet
--gas-prices=250000000uom \
--gas-adjustment=1.5 \
-y 

โš™๏ธ Utility

Set Custom Port

# Change CUSTOM_PORT to any other value, or leave it as is.
CUSTOM_PORT=35
sed -i.bak -e "s%:26658%:${CUSTOM_PORT}658%; s%:26657%:${CUSTOM_PORT}657%; s%:6060%:${CUSTOM_PORT}060%; s%:26656%:${CUSTOM_PORT}656%; s%:26660%:${CUSTOM_PORT}660%" $HOME/.mantrachain/config/config.toml && sed -i.bak -e "s%:9090%:${CUSTOM_PORT}090%; s%:9091%:${CUSTOM_PORT}091%; s%:1317%:${CUSTOM_PORT}317%; s%:8545%:${CUSTOM_PORT}545%; s%:8546%:${CUSTOM_PORT}546%; s%:6065%:${CUSTOM_PORT}065%" $HOME/.mantrachain/config/app.toml && sed -i.bak -e "s%:26657%:${CUSTOM_PORT}657%" $HOME/.mantrachain/config/client.toml
sudo systemctl restart mantrachaind
journalctl -u mantrachaind -f -o cat

Set Indexer

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

Update Pruning

sed -i.bak -e 's|^pruning *=.*|pruning = "custom"|; s|^pruning-keep-recent *=.*|pruning-keep-recent = "100"|; s|^pruning-keep-every *=.*|pruning-keep-every = "0"|; s|^pruning-interval *=.*|pruning-interval = "17"|' $HOME/.mantrachain/config/app.toml

Reset node

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

Get denom info

mantrachaind q bank denom-metadata -oj | jq

Get Node Peer

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

Update server name

 sudo hostnamectl set-hostname server_name

How much SSD use 0G Labs (currently)

du -sh $HOME/.mantrachain/

How much RAM use 0G Labs (currently)

ps -p $(pgrep mantrachaind) -o rss= | awk '{printf("The process uses memory:: %.2f MB\n", $1/1024)}'

How much CPU use 0G Labs (currently)

ps -C mantrachaind -o %cpu --no-headers | awk '{print $1"% CPU"}'

Delete node

sudo systemctl stop mantrachaind
sudo systemctl disable mantrachaind
sudo rm -rf /etc/systemd/system/mantrachaind.service
sudo rm $(which mantrachaind)
sudo rm -rf $HOME/.mantrachain

Last updated