Understanding Envio
Envio HyperIndex
Envio HyperIndex is a feature-rich indexing solution that provides Celo applications with a seamless and efficient way to index and aggregate real-time or historical blockchain data. The indexed data is easily accessible through custom GraphQL queries, giving developers the flexibility and power to retrieve specific information for their blockchain application. Envio offers native support for Celo networks (testnet and mainnet) and has been designed to support high-throughput blockchain applications that rely on real-time data for their business requirements. Designed to optimize the developer experience, Envio offers automatic code generation, flexible language support, quickstart templates, and a reliable cost-effective hosted service with reference implementations. Indexers on Envio can be written in JavaScript, TypeScript, or ReScript.Envio HyperSync
Envio HyperSync is supported on Celo mainnet. HyperSync is a real-time data query layer for Celo, providing APIs that bypass traditional JSON-RPC for up to 1000x faster syncing of historical data. HyperSync is used as the default data source in Envio’s indexing framework (HyperIndex), with standard RPC being optional. Using HyperSync, Celo developers do not need to worry about RPC URLs, rate-limiting, or managing their infrastructure - and can easily sync large datasets in a few minutes, something that would usually take hours or days using traditional indexing solutions. HyperSync is also available as a standalone API for data analytic use cases. Data analysts can interact with the HyperSync API using JavaScript, Python, or Rust clients and extract data in JSON, Arrow, or Parquet formats, or use the RPC interface.Quick Start
Developers can choose to start from a template (e.g. Blank, ERC-20, etc.), or use Contract Import, when running theenvio init
command.
Contract Import is a quick start that allows Celo developers to quickly autogenerate a basic indexer. This walkthrough explains how to initialize an indexer using a single or multiple contracts that are already deployed on Celo.
This process allows a user to quickly and easily start up a basic indexer and a queryable GraphQL API for their application in less than 5 minutes.
The following files are required to run the Envio indexer:
- Configuration (defaults to
config.yaml
) - GraphQL Schema (defaults to
schema.graphql
) - Event Handlers (defaults to
src/EventHandlers.*
depending on the language chosen)
envio init
command.
Initialize your indexer
cd
into the folder of your choice and run
Contract Import
as the initialization option.
Block Explorer
option only requires user to input the contracts address and chain of the contract. If the contract is verified and deployed on one of the supported chains, this is the quickest setup as it will retrieve all needed contract information from a block explorer.
Local ABI
option will allow you to point to a JSON file containing the smart contract ABI. The Contract Import process will then populate the required files from the ABI.
Select the blockchain that the contract is deployed on
Enter in the address of the contract to import
Choose which events to include in the config.yaml
file
Select the continuation option
Contract Import
process will prompt the user whether they would like to finish the import process or continue adding more addresses for same contract on same network, addresses for same contract on different network or a different contract.
Envio Indexer Examples
View the Envio Explorer for reference implementations, or visit the Envio docs for video and written tutorials.
Getting support
Indexing can be a rollercoaster, especially for more complex use cases. The
Envio engineers are available to help you with your data availability needs.
- Discord
- Email: hello@envio.dev