โ๏ธ Service Commands
Check Logs
Copy sudo journalctl -u nilchaind -f -o cat
Start service
Copy sudo systemctl start nilchaind
Stop service
Copy sudo systemctl stop nilchaind
Restart service
Copy sudo systmctl restart nilchaind
Check status
Copy sudo systemctl status nilchaind
Enable Service
Copy sudo systemctl enable nilchaind
Reload service
Copy sudo systemctl daemon-reload
Disable service
Copy sudo systemctl disable nilchaind
Check synchronization status
Copy while true ; do
local_height = $( nilchaind status | jq -r .sync_info.latest_block_height )
network_height=$(curl -s https://rpc.nillion-testnet.unitynodes.com/status | jq -r '.result.sync_info.latest_block_height')
blocks_left = $(( network_height - local_height ))
echo -e "\033[1;33m[Sync Status]\033[0m \033[1;32mNode Height:\033[0m \033[1;37m$local_height\033[0m | \033[1;32mNetwork Height:\033[0m \033[1;37m$network_height\033[0m | \033[1;32mBlocks Left:\033[0m \033[1;31m$blocks_left\033[0m"
sleep 5
done
If "Block left - 0" - synchronized
Check the latest block of your validator
Copy nilchaind status | jq '.SyncInfo.latest_block_height // .sync_info.latest_block_height'
View the ports used node
Copy ss -tulpn | grep nilchaind
โ๏ธ Key Command
Create new wallet
Copy nilchaind keys add wallet
Recovery wallet
Copy nilchaind keys add wallet --recover
List all wallet
Delete wallet
Copy nilchaind keys delete wallet
Export wallet
Copy nilchaind keys export wallet
Import wallet
Copy nilchaind keys import wallet wallet.backup
Check wallet balance
Your balance Balance another wallet
Copy nilchaind q bank balances $( nilchaind keys show wallet -a )
Copy nilchaind q bank balances "Any other or your wallet"
โ๏ธ Validator Commands
Create validator
Copy # Create validator.json file
touch $HOME /.nillionapp/config/validator.json
# Find your pubkey
nilchaind comet show-validator
#Open a validator.json file
nano $HOME /.nillionapp/config/validator.json
#Paste this into the open validator.json file, pre-replacing all values โโthat start with $
{
"pubkey" : {
"@type" : "/cosmos.crypto.ed25519.PubKey" ,
"key" : ""
},
"amount" : "1000000unil" ,
"moniker" : "Oliver" ,
"identity" : "" ,
"website" : "" ,
"security" : "" ,
"details" : "Trusted Blockchain validator" ,
"commission-rate" : "0.05" ,
"commission-max-rate" : "0.2" ,
"commission-max-change-rate" : "0.2" ,
"min-self-delegation" : "1"
}
#After entering and changing all values, save the file with the key combination Ctrl + X and press Enter
#Run command create validator
nilchaind tx staking create-validator $HOME/validator.json --from wallet --chain-id nillion-chain-testnet-1 --fees 0unil
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:
{
Copy "pubkey": {
"@type": "/cosmos.crypto.ed25519.PubKey",
"key": ""
},
"amount": "1000000unil",
"moniker": "Oliver",
"identity": "",
"website": "https://mywebsite.com",
"security": "myemail@gmail.com",
"details": "Trusted Blockchain validator",
"commission-rate": "0.05",
"commission-max-rate": "0.2",
"commission-max-change-rate": "0.2",
"min-self-delegation": "1"
}
Update validator information
Copy nilchaind tx staking edit-validator \
--new-moniker "" \
--identity "" \
--details "" \
--website "" \
--chain-id nillion-chain-testnet-1 \
--commission-rate 0.05 \
--from wallet \
--gas-adjustment 1.4 \
--gas auto \
--gas-prices \
-y
Validator details
Copy nilchaind q staking validator $( nilchaind keys show wallet --bech val -a )
Jailing info
Copy nilchaind q staking validator $( nilchaind keys show wallet --bech val -a ) | grep -E "jailed"
If "true" - your validator is jailed // "false" - your validator is not jailed
Jail reason
Copy nilchaind q slashing signing-info $( nilchaind tendermint show-validator )
Unjail command
Copy nilchaind tx slashing unjail --from wallet --chain-id nillion-chain-testnet-1 --gas-adjustment 1.4 --gas auto --gas-prices -y
Information about delegation at your validator
Copy nilchaind q staking validator $( nilchaind keys show wallet --bech val -a ) | grep -E "tokens"
Active Validators list
Copy nilchaind 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
Copy nilchaind 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
Copy nilchaind query slashing signing-info $( nilchaind tendermint show-validator )
โ๏ธ Tokens Commands
Delegate to yourself
Copy nilchaind tx staking delegate $(nilchaind keys show wallet --bech val -a) --from wallet --chain-id nillion-chain-testnet-1 --gas-adjustment 1.4 --gas auto --gas-prices -y
Delegate to another validator
Copy nilchaind tx staking redelegate $(nilchaind keys show wallet --bech val -a) TO_VALOPER_ADDRESS --from wallet --chain-id nillion-chain-testnet-1 --gas-adjustment 1.4 --gas auto --gas-prices -y
Redelegate your stake to other validator
Copy nilchaind tx staking redelegate $(nilchaind keys show wallet --bech val -a) <TO_VALOPER_ADDRESS> --from wallet --chain-id nillion-chain-testnet-1 --gas-adjustment 1.4 --gas auto --gas-prices -y
Unbond stake
Copy nilchaind tx staking unbond $(nilchaind keys show wallet --bech val -a) --from wallet --chain-id nillion-chain-testnet-1 --gas-adjustment 1.4 --gas auto --gas-prices -y
Send tokens
Copy nilchaind tx bank send wallet <TO_WALLET_ADDRESS> --from wallet --chain-id nillion-chain-testnet-1 --gas-adjustment 1.4 --gas auto --gas-prices -y
Check wallet balance
Copy nilchaind q bank balances $( nilchaind keys show wallet -a )
Transaction details
Copy nilchaind query tx HASH_TX
Withdraw all rewards
Copy nilchaind tx distribution withdraw-all-rewards --from wallet --chain-id nillion-chain-testnet-1 --gas-adjustment 1.4 --gas auto --gas-prices -y
Withdraw rewards and commission from your validator
Copy nilchaind tx distribution withdraw-rewards $(nilchaind keys show wallet --bech val -a) --commission --from wallet --chain-id nillion-chain-testnet-1 --gas-adjustment 1.4 --gas auto --gas-prices -y
โ๏ธ Governance
List All Proposals
Copy nilchaind query gov proposals
View proposal by ID
Copy nilchaind query gov proposal ID
Vote "YES"
Copy nilchaind tx gov vote 1 yes --from wallet --chain-id nillion-chain-testnet-1 --gas-adjustment 1.4 --gas auto --gas-prices -y
Vote "NO"
Copy nilchaind tx gov vote 1 no --from wallet --chain-id nillion-chain-testnet-1 --gas-adjustment 1.4 --gas auto --gas-prices -y
Vote "NO_WITH_VETO"
Copy nilchaind tx gov vote 1 NoWithVeto --from wallet --chain-id nillion-chain-testnet-1 --gas-adjustment 1.4 --gas auto --gas-prices -y
Vote "ABSTAIN"
Copy nilchaind tx gov vote 1 abstain --from wallet --chain-id nillion-chain-testnet-1 --gas-adjustment 1.4 --gas auto --gas-prices -y
Create new text proposal
Copy nilchaind tx gov submit-proposal \
--title= "Title" \ #Change Title
--description = "Description" \
--deposit=1000000unil \
--type= "Text" \ #Change text proposal
--from = wallet \ #Change name wallet
--fees 500unil
-y
โ๏ธ Utility
Set Custom Port
Copy
#PORT 29
sed -i.bak -e "s%:1317%:1617%g;
s%:8080%:8380%g;
s%:9090%:9390%g;
s%:9091%:9391%g;
s%:8545%:8845%g;
s%:8546%:8846%g;
s%:6065%:6365%g" $HOME /.nillionapp/config/app.toml
sed -i.bak -e "s%:26658%:29658%g;
s%:26657%:29657%g;
s%:6060%:6360%g;
s%tcp://0.0.0.0:26656%tcp://0.0.0.0:29656%g;
s%:26660%:29660%g" $HOME /.nillionapp/config/config.toml
sed -i.bak -e "s%:26657%:29657%g" $HOME /.nillionapp/config/client.toml
sudo systemctl restart nilchaind && sudo journalctl -u nilchaind -f -o cat
Set Indexer
null kv
Copy sed -i 's|^indexer *=.*|indexer = "null"|' $HOME /.nillionapp/config/config.toml
Copy sed -i 's|^indexer *=.*|indexer = "kv"|' $HOME /.nillionapp/config/config.toml
Update Pruning
Copy 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/.nillionapp/config/app.toml
Reset node
Copy nilchaind tendermint unsafe-reset-all --home $HOME/.nillionapp--keep-addr-book
Get denom info
Copy nilchaind q bank denom-metadata -oj | jq
Get Node Peer
Copy echo $(nilchaind tendermint show-node-id)'@'$(curl -4 -s ifconfig.me)':'$(cat $HOME/.nillionapp/config/config.toml | sed -n '/Address to listen for incoming connection/{n;p;}' | sed 's/.*://; s/".*//')
Update server name
Copy sudo hostnamectl set-hostname server_name
How much SSD use Nibiru (currently)
Copy du -sh $HOME/.nillionapp/
How much RAM use Nibiru (currently)
Copy sudo systemctl status nilchaind | grep "Memory:"
How much CPU use Nibiru (currently)
Copy ps -C nilchaind -o %cpu --no-headers | awk '{print $1"% CPU"}'
Delete node
Copy sudo systemctl stop nilchaind
sudo systemctl disable nilchaind
sudo rm -rf /etc/systemd/system/nilchaind.service
sudo rm $(which nilchaind)
sudo rm -rf $HOME/.nillionapp
sudo rm -rf $HOME/nilliond