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
Custom Explorers
https://testnet-explorer.konsortech.xyz/initia
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