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