For AI agents: the documentation index is at /llms.txt. Markdown versions of pages are available by appending .md to the URL.
Skip to main content

HyperIndex Quickstart

The Quickstart enables you to instantly autogenerate a powerful blockchain indexer and start querying blockchain data in minutes. This is the fastest and easiest way to begin using HyperIndex. If you are new to indexing, see what a blockchain indexer is for the wider context.

Example: Autogenerate an indexer for the Eigenlayer contract and index its entire history in less than 5 minutes by simply running pnpx envio init and providing the contract address from Etherscan.


Prerequisites​

Note: Docker is only required if you plan to run your indexer locally. You can skip installing Docker if you'll only be using Envio Cloud. Podman also works if you prefer it to Docker.

Additionally for Windows Users:​

  • WSL Windows Subsystem for Linux

Getting Started​

Run the following command to initialize your blockchain indexer:

pnpx envio init

You'll then follow interactive prompts to customize your indexer: a folder name, the blockchain ecosystem (Evm, Svm or Fuel), how to start, and an Envio API token for your .env file.

To run envio init without prompts, for example from a script or an AI agent, see Non-interactive envio init.


Video Tutorials​


Indexer Initialization Options​

After choosing the Evm ecosystem, you'll be asked how to start. The first two options import an existing contract (recommended); the others create a project from a template:

? Choose an initialization option
> From Address - Lookup ABI from block explorer
From ABI File - Use your own ABI file
Template: ERC20
Template: Greeter
Feature: External Calls
Feature: Factory Contract
[↑↓ to move, enter to select, type to filter]

Contract Import Methods​

There are two convenient methods to import your contract:

  • From Address (verified contracts on supported explorers like Etherscan and Blockscout)
  • From ABI File (custom or unverified contracts)

1. Block Explorer Import​

This method uses a verified contract's address from a supported blockchain explorer (Etherscan, Routescan, etc.) to automatically fetch the ABI.

Steps:​

a. Select the blockchain

? Which blockchain would you like to import a contract from?
> abstract
amoy
arbitrum-nova
arbitrum-one
...
[↑↓ to move, enter to select, type to filter]
note

HyperIndex supports all EVM-compatible chains. If your desired chain is not listed, you can import via the local ABI method or manually adjust the config.yaml file after initialization.

b. Enter the contract address

? What is the address of the contract?
[Use the proxy address if your abi is a proxy implementation]
tip

If using a proxy contract, always specify the proxy address, not the implementation address.

c. Select events to index

? Which events would you like to index?
> [x] ClaimRewards(address indexed from, address indexed reward, uint256 amount)
[x] Deposit(address indexed from, uint256 indexed tokenId, uint256 amount)
[x] NotifyReward(address indexed from, address indexed reward, uint256 indexed epoch, uint256 amount)
[x] Withdraw(address indexed from, uint256 indexed tokenId, uint256 amount)
[↑↓ to move, space to select one, → to all, ← to none, type to filter]

d. Finish or add more contracts

You'll be prompted to continue adding more contracts or to complete the setup:

? Would you like to add another contract?
> I'm finished
Add a new address for same contract on same network
Add a new network for same contract
Add a new contract (with a different ABI)

2. Local ABI Import​

Choose this method if the contract ABI is unavailable from a block explorer or you're using an unverified contract.

Steps:​

a. Select From ABI File

Choose From ABI File - Use your own ABI file in the initialization options.

b. Specify ABI JSON file

Provide the path to your local ABI file (JSON format):

? What is the path to your json abi file?

c. Select events to index

? Which events would you like to index?
> [x] ClaimRewards(address indexed from, address indexed reward, uint256 amount)
[x] Deposit(address indexed from, uint256 indexed tokenId, uint256 amount)
[↑↓ to move, space to select one, → to all, ← to none, type to filter]

d. Choose blockchain

Specify the blockchain your contract is deployed on:

? Choose network:
> <Enter Network Id>
abstract
amoy
arbitrum-nova
...
[↑↓ to move, enter to select, type to filter]

Choose <Enter Network Id> for a chain that isn't listed. For a chain HyperSync doesn't support, you'll be asked for an RPC URL and a start block.

e. Enter contract details

  • Contract name
? What is the name of this contract?
  • Contract address
? What is the address of the contract?
[Use the proxy address if your abi is a proxy implementation]

f. Finish or add more contracts

Complete the import process or continue adding contracts:

? Would you like to add another contract?
> I'm finished
Add a new address for same contract on same network
Add a new network for same contract
Add a new contract (with a different ABI)

Generated Files & Configuration​

The Quickstart automatically generates key files:

1. config.yaml​

Automatically configured parameters include:

  • Network ID
  • Start Block
  • Contract Name
  • Contract Address
  • Event Signatures

By default, all selected events are included, but you can manually adjust the file if needed. See the detailed guide on config.yaml.

2. GraphQL Schema​

  • Entities are automatically generated for each selected event.
  • Fields match the event parameters emitted.

See more details in the schema file guide.

3. Event Handlers​

  • Handlers are autogenerated for each event.
  • Handlers create event-specific entities.

Learn more in the event handlers guide.


Congratulations! Your HyperIndex indexer is now ready to run and query data!

Next step: Running your Indexer locally or Deploying to Envio Cloud.


Other Ways to Start​

Contract Import is the recommended path, but you can also bootstrap an indexer from: