# Join The Mainnet


Requirements: install iris

# Run a Full Node

# Start node from genesis


We recommend running a full node via state sync (see the next subsection). But if you want to start from genesis, you must use irishub v1.0.1 (opens new window) to initialize your node.

# initialize node configurations
iris init <moniker> --chain-id=irishub-1

# download mainnet public config.toml and genesis.json
curl -o ~/.iris/config/config.toml https://raw.githubusercontent.com/irisnet/mainnet/master/config/config.toml
curl -o ~/.iris/config/genesis.json https://raw.githubusercontent.com/irisnet/mainnet/master/config/genesis.json

# start the node (you can also use "nohup" or "systemd" to run in the background)
iris start

Next, your node will process all chain upgrades. Between each upgrade, you must use the specified version to catch up with the block. Don't worry about using the old version at the upgrade height, the node will be halted automatically.

Proposal Start height Upgrade height irishub version
genesis 9146456 9593205 v1.0.1 (opens new window)
#1 (opens new window) 9593206 v1.1.0 (opens new window), v1.1.1 (opens new window)
#8 (opens new window) 12393048 12534300 v1.2.0 (opens new window), v1.2.1 (opens new window)
#11 (opens new window) 14166918 14301916 v1.3.0 (opens new window)
#19 (opens new window) 17685953 v1.4.1 (opens new window)
#39 (opens new window) 19514010 v2.0.0 (opens new window)


You may see some connection errors, it does not matter, the P2P network is trying to find available connections

Try to add some of the Community Peers (opens new window) to persistent_peers in the config.toml

If you want to quickly start the node and join IRIS Hub without historical data, you can consider using the state_sync function.

# Quick Start via State Sync

To quickly get started, node operators can choose to sync via State Sync. State Sync works by replaying larger chunks of application state directly rather than replaying individual blocks or consensus rounds.

The newest state sync configs can be found here (opens new window). Please remember to modify state sync configs.

# Build iris binary and initialize chain
iris init <moniker> --chain-id=irishub-1

# Configure State sync
enable = true
rpc_servers = ","
trust_height = 19511000
trust_hash = "65cbc3a14f81d07ff2367202af1bd1a9c958800e643aedfc80518ec642e89eb8"
trust_period = "168h"  # 2/3 of unbonding time

#Start Iris
iris start --x-crisis-skip-assert-invariants

# Upgrade to Validator Node

# Create a Wallet

You can create a new wallet or import an existing one, then get some IRIS from the exchanges or anywhere else into the wallet you just created, .e.g.

# create a new wallet
iris keys add <key-name>



write the seed phrase in a safe place! It is the only way to recover your account if you ever forget your password.

# Confirm your node has caught-up

# if you have not installed jq
# apt-get update && apt-get install -y jq

# if the output is false, means your node has caught-up
iris status | jq .sync_info.catching_up

# Create Validator

Only if your node has caught-up, you can run the following command to upgrade your node to be a validator.

iris tx staking create-validator \
    --pubkey=$(iris tendermint show-validator) \
    --moniker=<your-validator-name> \
    --amount=<amount-to-be-delegated, e.g. 10000iris> \
    --min-self-delegation=1 \
    --commission-max-change-rate=0.1 \
    --commission-max-rate=0.1 \
    --commission-rate=0.1 \
    --gas=100000 \
    --fees=0.6iris \
    --chain-id=irishub-1 \



Backup the config directory located in your iris home (default ~/.iris/) carefully! It is the only way to recover your validator.

If there are no errors, then your node is now a validator or candidate (depending on whether your delegation amount is in the top 100)

Read more:

# Faucet

Request IRISnet mainnet tokens from the Faucet powered by Stakely.

For the usage, please refer to the guideline on the Faucet page: https://stakely.io/faucet/irisnet-iris