Mainnet
Nibiru
Installation Guide
CLI Command
State Sync
Public Endpoint
Snapshot
Custom Explorers
Decentralization Maps
Installation Guide
Installation Guide
CLI Command
State Sync
Public Endpoint
Snapshot
Custom Explorers
Decentralization Maps
How To Install Full Node Nibiru Mainnet
Setting up vars
Your Nodename (validator) that will shows in explorer
NODENAME=<Your_Nodename_Moniker>
Save variables to system
echo "export NODENAME=$NODENAME" >> $HOME/.bash_profile
if [ ! $WALLET ]; then
echo "export WALLET=wallet" >> $HOME/.bash_profile
fi
echo "export NIBIRU_CHAIN_ID=cataclsym-1" >> $HOME/.bash_profile
source $HOME/.bash_profile
Update packages
sudo apt update && sudo apt upgrade -y
Install dependencies
sudo apt install curl build-essential git wget jq make gcc tmux net-tools -y
Install go
if ! [ -x "$(command -v go)" ]; then
ver="1.21.4"
cd $HOME
wget "https://golang.org/dl/go$ver.linux-amd64.tar.gz"
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf "go$ver.linux-amd64.tar.gz"
rm "go$ver.linux-amd64.tar.gz"
echo "export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin" >> ~/.bash_profile
source ~/.bash_profile
fi
Download and build binaries
cd $HOME
git clone https://github.com/NibiruChain/nibiru
cd nibiru
git checkout v1.1.0
make install
Config app
nibid config chain-id $NIBIRU_CHAIN_ID
Init app
nibid init $NODENAME --chain-id $NIBIRU_CHAIN_ID
Download configuration
curl -Ls https://snap1.konsortech.xyz/nibiru/genesis.json > $HOME/.nibid/config/genesis.json
curl -Ls https://snap1.konsortech.xyz/nibiru/addrbook.json > $HOME/.nibid/config/addrbook.json
Set seeds and peers
SEEDS="fcd04bd16fc355b2f1253c303727e1b0a4c91b3f@mainnet-seed.konsortech.xyz:17165"
PEERS="4f05746ea5f8f47d1c8b6f5e23568a73c71d91cb@mainnet-nibiru.konsortech.xyz:17656"
sed -i 's|^seeds *=.*|seeds = "'$SEEDS'"|; s|^persistent_peers *=.*|persistent_peers = "'$PEERS'"|' $HOME/.nibid/config/config.toml
Disable indexing
sed -i -e "s/^indexer *=.*/indexer = \"null\"/" $HOME/.nibid/config/config.toml
Config pruning
pruning="custom"
pruning_keep_recent="100"
pruning_keep_every="0"
pruning_interval="19"
sed -i -e "s/^pruning *=.*/pruning = \"$pruning\"/" $HOME/.nibid/config/app.toml
sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"$pruning_keep_recent\"/" $HOME/.nibid/config/app.toml
sed -i -e "s/^pruning-keep-every *=.*/pruning-keep-every = \"$pruning_keep_every\"/" $HOME/.nibid/config/app.toml
sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"$pruning_interval\"/" $HOME/.nibid/config/app.toml
Set minimum gas price
sed -i -e "s|^minimum-gas-prices *=.*|minimum-gas-prices = \"0.025unibi\"|" $HOME/.nibid/config/app.toml
Create service
sudo tee /etc/systemd/system/nibid.service > /dev/null << EOF
[Unit]
Description=Nibiru Node
After=network-online.target
[Service]
User=$USER
ExecStart=$(which nibid) start
Restart=on-failure
RestartSec=10
LimitNOFILE=10000
[Install]
WantedBy=multi-user.target
EOF
Register and start service
sudo systemctl daemon-reload
sudo systemctl enable nibid
sudo systemctl restart nibid && sudo journalctl -u nibid -f -o cat
Guide for Validator
Create wallet
To create new wallet you can use command below. Don’t forget to save the mnemonic
nibid keys add $WALLET
To recover your wallet using seed phrase
nibid keys add $WALLET --recover
Show your wallet list
nibid keys list
Save wallet info
Add wallet and validator address into variables
NIBIRU_WALLET_ADDRESS=$(nibid keys show $WALLET -a)
NIBIRU_VALOPER_ADDRESS=$(nibid keys show $WALLET --bech val -a)
echo 'export NIBIRU_WALLET_ADDRESS='${NIBIRU_WALLET_ADDRESS} >> $HOME/.bash_profile
echo 'export NIBIRU_VALOPER_ADDRESS='${NIBIRU_VALOPER_ADDRESS} >> $HOME/.bash_profile
source $HOME/.bash_profile
Fund your wallet
N/A
Create validator
check your wallet balance:
nibid query bank balances $NIBIRU_WALLET_ADDRESS
To create your validator run command below
nibid tx staking create-validator \
--amount 10000000unibi \
--from $WALLET \
--commission-max-change-rate "0.1" \
--commission-max-rate "0.2" \
--commission-rate "0.1" \
--min-self-delegation "1" \
--pubkey $(nibid tendermint show-validator) \
--moniker $NODENAME \
--chain-id $NIBIRU_CHAIN_ID
Check your validator key
[[ $(nibid q staking validator $NIBIRU_VALOPER_ADDRESS -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"
Get list of 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
Usefull commands
Service management
Check logs
journalctl -fu nibid -o cat
Start service
sudo systemctl start nibid
Stop service
sudo systemctl stop nibid
Restart service
sudo systemctl restart nibid
Node info
Synchronization info
nibid status 2>&1 | jq .SyncInfo
Validator info
nibid status 2>&1 | jq .ValidatorInfo
Node info
nibid status 2>&1 | jq .NodeInfo
Show node id
nibid tendermint show-node-id
Wallet operations
List of wallets
nibid keys list
Recover wallet
nibid keys add $WALLET --recover
Delete wallet
nibid keys delete $WALLET
Get wallet balance
nibid query bank balances $NIBIRU_WALLET_ADDRESS
Transfer funds
nibid tx bank send $NIBIRU_WALLET_ADDRESS <TO_NIBIRU_WALLET_ADDRESS> 10000000unibi
Voting
nibid tx gov vote 1 yes --from $WALLET --chain-id=$NIBIRU_CHAIN_ID
Staking, Delegation and Rewards
Delegate stake
nibid tx staking delegate $NIBIRU_VALOPER_ADDRESS 10000000unibi --from=$WALLET --chain-id=$NIBIRU_CHAIN_ID --gas=auto
Redelegate stake from validator to another validator
nibid tx staking redelegate <srcValidatorAddress> <destValidatorAddress> 10000000unibi --from=$WALLET --chain-id=$NIBIRU_CHAIN_ID --gas=auto
Withdraw all rewards
nibid tx distribution withdraw-all-rewards --from=$WALLET --chain-id=$NIBIRU_CHAIN_ID --gas=auto
Withdraw rewards with commision
nibid tx distribution withdraw-rewards $NIBIRU_VALOPER_ADDRESS --from=$WALLET --commission --chain-id=$NIBIRU_CHAIN_ID
Validator management
Edit validator
nibid tx staking edit-validator \
--moniker=$NODENAME \
--identity=<your_keybase_id> \
--website="<your_website>" \
--details="<your_validator_description>" \
--chain-id=$NIBIRU_CHAIN_ID \
--from=$WALLET
Unjail validator
nibid tx slashing unjail \
--broadcast-mode=block \
--from=$WALLET \
--chain-id=$NIBIRU_CHAIN_ID \
--gas=auto
Public Endpoint
RPC
https://mainnet-nibiru-rpc.konsortech.xyz
API
https://mainnet-nibiru-api.konsortech.xyz
gRPC
mainnet-nibiru.konsortech.xyz:17090
Peers and Seeds
Peers
4f05746ea5f8f47d1c8b6f5e23568a73c71d91cb@mainnet-nibiru.konsortech.xyz:17656
Seeds
fcd04bd16fc355b2f1253c303727e1b0a4c91b3f@mainnet-seed.konsortech.xyz:17165
Genesis & Address Book
Address Book
https://snap.konsortech.xyz/nibiru/addrbook.json
Genesis
https://snap.konsortech.xyz/nibiru/genesis.json
State Sync
sudo systemctl stop nibid
cp $HOME/.nibid/data/priv_validator_state.json $HOME/.nibid/priv_validator_state.json.backup
nibid tendermint unsafe-reset-all --home $HOME/.nibid --keep-addr-book
SNAP_RPC="https://mainnet-nibiru-rpc.konsortech.xyz:443"
LATEST_HEIGHT=$(curl -s $SNAP_RPC/block | jq -r .result.block.header.height); \
BLOCK_HEIGHT=$((LATEST_HEIGHT - 1000)); \
TRUST_HASH=$(curl -s "$SNAP_RPC/block?height=$BLOCK_HEIGHT" | jq -r .result.block_id.hash)
echo $LATEST_HEIGHT $BLOCK_HEIGHT $TRUST_HASH
peers="4f05746ea5f8f47d1c8b6f5e23568a73c71d91cb@mainnet-nibiru.konsortech.xyz:17656"
sed -i 's|^persistent_peers *=.*|persistent_peers = "'$peers'"|' $HOME/.nibid/config/config.toml
sed -i -E "s|^(enable[[:space:]]+=[[:space:]]+).*$|\1true| ; \
s|^(rpc_servers[[:space:]]+=[[:space:]]+).*$|\1\"$SNAP_RPC,$SNAP_RPC\"| ; \
s|^(trust_height[[:space:]]+=[[:space:]]+).*$|\1$BLOCK_HEIGHT| ; \
s|^(trust_hash[[:space:]]+=[[:space:]]+).*$|\1\"$TRUST_HASH\"|" $HOME/.nibid/config/config.toml
mv $HOME/.nibid/priv_validator_state.json.backup $HOME/.nibid/data/priv_validator_state.json
curl -L https://snap1.konsortech.xyz/nibiru/wasm.tar.lz4 | lz4 -dc - | tar -xf - -C $HOME/.nibid
sudo systemctl restart nibid
sudo journalctl -u nibid -f --no-hostname -o cat
Snapshot
N/A