Skip to main content
Set up and sync an Injective node on Mainnet, Testnet, or a local development network.
Injective Mainnet has a chain-id of injective-1.

Sync Options

Snapshot restore, state sync, and block sync

Node Software

Install injectived, configure, and run

Hardware

Minimum and recommended specifications

Sync Options

Choose how to bootstrap your node with chain data. For most operators, snapshot restore is the fastest path to a running node.Option 1. Snapshot Restore (recommended)Download a pre-built snapshot and extract it into your data directory. This is the fastest and most reliable way to sync a new node.Injective provides official pruned snapshots (goleveldb, ~2-3 GB) and the community maintains additional options. See the Snapshots page on the Chain Portal for download links, usage instructions, and community providers.
Validators: You must back up and restore priv_validator_state.json during snapshot recovery. See the Validator Troubleshooting Guide for the full procedure.
Option 2. State Sync (CometBFT P2P)State sync bootstraps a node by downloading a state machine snapshot from peers via the CometBFT P2P layer, rather than replaying all historical blocks. It requires two trusted RPC servers. See the RPC Providers page on the Chain Portal for available endpoints. Configure it in config.toml under [statesync]:
To obtain the trust height and hash:
State sync does not restore the wasm/ directory. CometBFT state sync restores the IAVL state tree but not the CosmWasm compiled contract bytecode stored in ~/.injectived/data/wasm/. Without these files, the node will produce an AppHash mismatch immediately after sync completes.If you encounter this, either:
  1. Switch to snapshot restore (Option 1). Injective’s official snapshots include the wasm/ directory
  2. Obtain the wasm/ directory from a trusted source and place it at ~/.injectived/data/wasm/ before starting the node
PebbleDB users: Injective’s official snapshots use goleveldb only. PebbleDB snapshots are not maintained. If you run PebbleDB and cannot use a snapshot restore, you must source the wasm/ directory separately when using state sync.
Option 3. Block Sync (full replay)The default behavior. The node downloads and replays every block from peers. Slowest method but requires no external snapshots. Not practical for mainnet unless syncing from a recent snapshot height.Sync method comparison:

Peer discovery

Your node needs peers to sync with the network. Add seeds or persistent peers to the [p2p] section of ~/.injectived/config/config.toml. Community providers maintain up-to-date seed and peer lists:You can also download a pre-built address book for faster peer discovery:

Node Software

Install injectived

Each Injective core release includes injectived, peggo (the Peggy bridge orchestrator), and libwasmvm in a single zip. Validators must run peggo alongside their node. Non-validator node operators only need injectived.

Initialize a New Injective Node

Before running an Injective node, initialize the chain and genesis file:
Running the init command will create injectived default configuration files at ~/.injectived.

Prepare Configuration to Join Mainnet

Download the mainnet genesis file. Injective provides this alongside the official snapshots:
Verify the checksum:
Configure seeds for peer discovery (see Peer discovery in the Sync Options section) and set timeout_commit to 300ms in ~/.injectived/config/config.toml.

Configuring the node using app.toml and config.toml

Two configuration files are automatically generated inside ~/.injectived/config:
  • config.toml: configures the consensus layer (CometBFT). Learn more in the consensus layer documentation.
  • app.toml: configures the application and execution layer of the node, including state pruning strategies, telemetry, gRPC and REST server configurations, state sync, and more.

Configure systemd service for injectived (optional)

Edit the config at /etc/systemd/system/injectived.service:
Starting and restarting the systemd service:
The service should be stopped before and started after snapshot data has been loaded into the correct directory.

Hardware

Node operators should deploy bare metal servers to achieve optimal performance. Validator nodes must meet the recommended hardware specifications, particularly the CPU requirements, to ensure high uptime.
SupportFor any further questions, you can always connect with the Injective Team via Discord, Telegram, or email
Last modified on September 2, 2026