Skip to main content

Join the network

After your node is configured it need to sync the latest state and connect to the network. We support two ways of syncing your chain.

Get genesis file

Download the genesis.json file and copy it over to the config directory: ~/.kyve/config/genesis.json. This is a genesis file with the chain-id and genesis account balances.

Download the mainnet genesis file (5.2 MB)


verify the correctness of the genesis configuration via

echo "1dc3ec916f49ef8c221851566aca12a3f914b23afb3ab35067fc8a8d5f59c2ee  genesis.json" | sha256sum -c

and move the genesis file to the config directory

mv genesis.json ~/.kyve/config/

Syncing the network


We strongly recommend setting up Cosmovisor and Systemd as a supervisor.

Use Statesync

State sync fetches a snapshot of a recent height and then only syncs the missing blocks between the snapshot and the current height. This is the preferred method as it's much faster. Usually minutes versus weeks.

However, one needs to trust the provided state-sync nodes. If you need full trust you should sync from genesis.


Make sure to use the current version of the chain for statesync. All releases can be found here: Go to and look for the latest SoftwareUpgrade Proposal to find the current version.

First, one needs to obtain a trusted height and hash of that height. One can go to a blockexplorer and use the values provided there. For example block 86783 can be viewed at:

To enable state-sync edit config.yml under the section [statesync]

enable = true

# ...

rpc_servers = ","
trust_height = 86783 # Replace with newer block
trust_hash = "DFE6A7EC8D3E3A55A3CA6DA2D9BFB776A5F52604EBED078DAC87775AEA5C3D75" # Replace with newer hash

After that start the node with

./kyved start

Sync from genesis


For syncing from genesis you need chain binary version v1.0.0

After the genesis file is downloaded the chain binary can be started with

./kyved start