Testnet

Initia

Installation Guide
Validator CLI
Public Endpoint
Statesync
Snapshot
Explorers
Node Maps
Installation Guide
Installation Guide
Validator CLI
Public Endpoint
Statesync
Snapshot
Explorers
Node Maps

How To Install Full Node Initia Testnet

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 INITIA_CHAIN_ID=initiation-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 ccze -y

Install go

if ! [ -x "$(command -v go)" ]; then
  ver="1.22.2"
  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
rm -rf initia
git clone https://github.com/initia-labs/initia.git
cd initia
git checkout v0.2.15
make install

Init app

initiad init $NODENAME --chain-id $INITIA_CHAIN_ID

Download configuration

cd $HOME
wget -O $HOME/.initia/config/genesis.json https://snap1.konsortech.xyz/initia/genesis.json
wget -O $HOME/.initia/config/addrbook.json https://snap1.konsortech.xyz/initia/addrbook.json

Disable indexing

indexer="null"
sed -i -e "s/^indexer *=.*/indexer = \"$indexer\"/" $HOME/.initia/config/config.toml

Config pruning

sed -i 's|pruning = "default"|pruning = "custom"|g' $HOME/.initia/config/app.toml
sed -i 's|pruning-keep-recent = "0"|pruning-keep-recent = "100"|g' $HOME/.initia/config/app.toml
sed -i 's|pruning-interval = "0"|pruning-interval = "19"|g' $HOME/.initia/config/app.toml

Set minimum gas price

sed -i 's|minimum-gas-prices =.*|minimum-gas-prices = "0.15uinit,0.01uusdc"|g' $HOME/.initia/config/app.toml

Create service

sudo tee /etc/systemd/system/initiad.service > /dev/null << EOF
[Unit]
Description=Initia Node
After=network-online.target
[Service]
User=$USER
ExecStart=$(which initiad) start
Restart=on-failure
RestartSec=10
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF

Register and start service

sudo systemctl daemon-reload
sudo systemctl enable initiad
sudo systemctl restart initiad && sudo journalctl -u initiad -f -o cat

Guide for Validator CLI

Create wallet

To create new wallet you can use command below. Don’t forget to save the mnemonic

initiad keys add $WALLET

To recover your wallet using seed phrase

initiad keys add $WALLET --recover

Show your wallet list

initiad keys list

Save wallet info

Add wallet and validator address into variables

INITIA_WALLET_ADDRESS=$(initiad keys show $WALLET -a)
INITIA_VALOPER_ADDRESS=$(initiad keys show $WALLET --bech val -a)
echo 'export INITIA_WALLET_ADDRESS='${INITIA_WALLET_ADDRESS} >> $HOME/.bash_profile
echo 'export INITIA_VALOPER_ADDRESS='${INITIA_VALOPER_ADDRESS} >> $HOME/.bash_profile
source $HOME/.bash_profile

Fund your wallet

Faucet available on initia discord

go to #faucet-verification

Create validator

To create your validator run command below

initiad tx mstaking create-validator \
--amount 1000000uinit \
--from $WALLET \
--commission-rate 0.1 \
--commission-max-rate 0.2 \
--commission-max-change-rate 0.01 \
--min-self-delegation 1 \
--pubkey $(initiad tendermint show-validator) \
--moniker "$NODENAME" \
--identity "" \
--details "" \
--chain-id $INITIA_CHAIN_ID \
--gas auto \
--fees 80000uinit \
-y 

Check your validator key

[[ $(initiad q staking validator $INITIA_VALOPER_ADDRESS -oj | jq -r .consensus_pubkey.key) = $(initiad status | jq -r .validator_info.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

initiad 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 initiad -o cat

Start service

sudo systemctl start initiad

Stop service

sudo systemctl stop initiad

Restart service

sudo systemctl restart initiad

Node info

Synchronization info

initiad status 2>&1 | jq .sync_info

Validator info

initiad status 2>&1 | jq .validator_info

Node info

initiad status 2>&1 | jq .node_info

Show node id

initiad tendermint show-node-id

Wallet operations

List of wallets

initiad keys list

Recover wallet

initiad keys add $WALLET --recover

Delete wallet

initiad keys delete $WALLET

Get wallet balance

initiad query bank balances $INITIA_WALLET_ADDRESS

Transfer funds

initiad tx bank send $INITIA_WALLET_ADDRESS <TO_INITIA_WALLET_ADDRESS> 1000000uinit

Voting

initiad tx gov vote 1 yes --from $WALLET --chain-id=$INITIA_CHAIN_ID

Staking, Delegation and Rewards

Delegate stake

initiad tx staking delegate $INITIA_VALOPER_ADDRESS 1000000uinit --from=$WALLET --chain-id=$INITIA_CHAIN_ID --gas=auto

Redelegate stake from validator to another validator

initiad tx staking redelegate <srcValidatorAddress> <destValidatorAddress> 1000000uinit --from=$WALLET --chain-id=$INITIA_CHAIN_ID --gas=auto

Withdraw all rewards

initiad tx distribution withdraw-all-rewards --from=$WALLET --chain-id=$INITIA_CHAIN_ID --gas=auto

Withdraw rewards with commision

initiad tx distribution withdraw-rewards $INITIA_VALOPER_ADDRESS --from=$WALLET --commission --chain-id=$INITIA_CHAIN_ID

Validator management

Edit validator

initiad tx staking edit-validator \
  --moniker=$NODENAME \
  --identity=<your_keybase_id> \
  --website="<your_website>" \
  --details="<your_validator_description>" \
  --chain-id=$INITIA_CHAIN_ID \
  --from=$WALLET

Unjail validator

initiad tx slashing unjail \
  --broadcast-mode=block \
  --from=$WALLET \
  --chain-id=$INITIA_CHAIN_ID \
  --gas=auto

Public Endpoints

RPC

https://testnet-initia-rpc.konsortech.xyz

API

https://testnet-initia-api.konsortech.xyz

gRPC

testnet-initia.konsortech.xyz:22656

Persistence Peers

277ae7258c9ac789262ef125cfdbf1c02958510a@testnet-initia.konsortech.xyz:22656

Seeds

1032b1b8bbac49fa32666ac20a2de002b5b0d038@testnet-seed.konsortech.xyz:22165

Mirroring Genesis

https://snap1.konsortech.xyz/initia/genesis.json

Address Book

https://snap1.konsortech.xyz/initia/addrbook.json

State Sync

sudo systemctl stop initiad

cp $HOME/.initia/data/priv_validator_state.json $HOME/.initia/priv_validator_state.json.backup
initiad tendermint unsafe-reset-all --home $HOME/.initia --keep-addr-book

SNAP_RPC="https://testnet-initia-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="277ae7258c9ac789262ef125cfdbf1c02958510a@testnet-initia.konsortech.xyz:22656"
sed -i 's|^persistent_peers *=.*|persistent_peers = "'$peers'"|' $HOME/.initia/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/.initia/config/config.toml

mv $HOME/.initia/priv_validator_state.json.backup $HOME/.initia/data/priv_validator_state.json

sudo systemctl restart initiad
sudo journalctl -u initiad -f --no-hostname -o cat

Snapshot

sudo systemctl stop initiad
cp $HOME/.initia/data/priv_validator_state.json $HOME/.initia/priv_validator_state.json.backup
rm -rf $HOME/.initia/data

SNAP_NAME=$(curl -s https://snap1.konsortech.xyz/initia/ | egrep -o ">initia-snapshot.*\.tar.lz4" | tr -d ">")
curl https://snap1.konsortech.xyz/initia/${SNAP_NAME} | lz4 -dc - | tar -xf - -C $HOME/.initia
mv $HOME/.initia/priv_validator_state.json.backup $HOME/.initia/data/priv_validator_state.json

sudo systemctl restart initiad && journalctl -u initiad -f --no-hostname -o cat
Embed Iframe

Initia Testnet | Node Decentralization Maps