{"id":19869703,"url":"https://github.com/enviodev/hyperindex","last_synced_at":"2026-03-03T17:13:34.399Z","repository":{"id":251038666,"uuid":"805282401","full_name":"enviodev/hyperindex","owner":"enviodev","description":"📖 Blazing-fast multi-chain indexer","archived":false,"fork":false,"pushed_at":"2024-10-25T13:46:47.000Z","size":7301,"stargazers_count":67,"open_issues_count":27,"forks_count":5,"subscribers_count":7,"default_branch":"main","last_synced_at":"2024-10-25T16:36:07.408Z","etag":null,"topics":["blockchain","dapp","data","envio","evm","framework","fuel","indexer","rescript"],"latest_commit_sha":null,"homepage":"https://envio.dev","language":"ReScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/enviodev.png","metadata":{"files":{"readme":"README.MD","changelog":null,"contributing":null,"funding":null,"license":"licenses/EULA.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-05-24T08:52:11.000Z","updated_at":"2024-10-25T13:34:23.000Z","dependencies_parsed_at":"2024-08-26T12:22:10.633Z","dependency_job_id":"a6b80a79-bb8b-48dd-8ec7-fe2d895808fd","html_url":"https://github.com/enviodev/hyperindex","commit_stats":null,"previous_names":["enviodev/hyperindex"],"tags_count":122,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/enviodev%2Fhyperindex","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/enviodev%2Fhyperindex/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/enviodev%2Fhyperindex/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/enviodev%2Fhyperindex/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/enviodev","download_url":"https://codeload.github.com/enviodev/hyperindex/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247136421,"owners_count":20889650,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blockchain","dapp","data","envio","evm","framework","fuel","indexer","rescript"],"created_at":"2024-11-12T16:06:40.072Z","updated_at":"2026-02-05T13:06:31.163Z","avatar_url":"https://github.com/enviodev.png","language":"ReScript","readme":"# HyperIndex\n\nHyperIndex is a modern, multi-chain data indexing framework for efficiently querying real-time and historical data from any EVM blockchain and Fuel.\n\nDesigned with a core focus on delivering superior performance and a seamless developer experience, HyperIndex optimizes the user experience.\n\nBuild a real-time API for your blockchain application in minutes!\n\n## Key Features\n\n⚡  **[Simplified Setup](https://docs.envio.dev/docs/HyperIndex/contract-import):** Start instantly with the quickstart, templates, and reference implementations.  \n⚡  **[Any EVM \u0026 Fuel](https://docs.envio.dev/docs/HyperIndex/supported-networks)**: Index smart contract data from any EVM-compatible network.  \n⚡  **[Fastest Historical Backfill](https://docs.envio.dev/docs/HyperIndex/hypersync)**: Up to 1000x faster than RPC. Enhance your dev lifecycle. Reduce time-to-market.  \n⚡  **[Multichain](https://docs.envio.dev/docs/HyperIndex/multichain-indexing)**: Index multiple networks with a single deployment. Query with a unified API.  \n⚡  **Real-time \u0026 [Reorg Aware](https://docs.envio.dev/docs/HyperIndex/reorgs-support)**: Sub-second latency and automatic handling of chain reorganizations.   \n⚡  **[Wildcard Indexing](/docs/HyperIndex/Advanced/wildcard-indexing.mdx)**: Index events according to event signatures (e.g. all ERC20 transfers on Base).  \n⚡  **[Dynamic Sources](https://docs.envio.dev/docs/HyperIndex/wildcard-indexing) / Factory Contracts**: Dynamically index all future children contracts (e.g. new token pairs).    \n⚡  **Flexible Language Support**: Write JavaScript, TypeScript, or ReScript with automatically generated types.  \n⚡  **Join [Onchain \u0026 Offchain Data](https://docs.envio.dev/docs/HyperIndex/ipfs)**: Create a flexible API beyond what is available onchain (e.g. NFT metadata).  \n⚡  **[Hosted Service](https://v2.envio.dev/explorer) \u0026 Self Hosting**: Focus on your app and users, while we take care of your infrastructure.  \n⚡  **Detailed Logging \u0026 Error Messaging**: Simplify troubleshooting with comprehensive insights.  \n\n## Installation\n\nInstall prerequisite tools:\n\n1. Node.js (install v18) https://nodejs.org/en\n   (Recommended to use a node manager like fnm or nvm)\n2. pnpm\n\n   ```\n   npm install --global pnpm\n   ```\n\n3. Cargo https://doc.rust-lang.org/cargo/getting-started/installation.html\n\n   ```\n   curl https://sh.rustup.rs -sSf | sh\n   ```\n\n4. Docker Desktop https://www.docker.com/products/docker-desktop/\n\nInstall Envio:\n\n```\ncargo install --path codegenerator/cli --locked --debug\n```\n\nCommand to see available CLI commands\n\n```\nenvio --help\n```\n\nAlternatively you can add an alias in your shell config. This will allow you to test Envio locally without manual recompiling.\n\nGo to your shell config file and add the following line:\n\n```\nalias lenvio=\"cargo run --manifest-path \u003cabsolute repository path\u003e/hyperindex/codegenerator/cli/Cargo.toml --\"\n```\n\n\u003e `lenvio` is like `local envio` 😁\n\n## Update CLI Generated Docs\n\nNavigate to the cli directory\n`cd codegenerator/cli`\n\nTo update all generated docs run\n\n`make update-generated-docs`\n\nTo updated just the config json schemas\n`make update-schemas`\n\nOr to update just the cli help md file\n`update-help`\n\n## Create templates\n\n`cd` into folder of your choice and run\n\n```\nenvio init\n```\n\nThen choose a template out of the possible options\n\n```\n? Which template would you like to use?\n\u003e \"Gravatar\"\n[↑↓ to move, enter to select, type to filter]\n```\n\nThen choose a language from JavaScript, TypeScript or ReScript to write the event handlers file.\n\n```\n? Which language would you like to use?\n\u003e \"JavaScript\"\n  \"TypeScript\"\n  \"ReScript\"\n[↑↓ to move, enter to select, type to filter\n```\n\nThis will generate the config, schema and event handlers files according to the template and language chosen.\n\n## Configure the files according to your project\n\nOur greeter template [config.yaml](./codegenerator/cli/templates/static/greeter_template/typescript/config.yaml) and [schema.graphql](./codegenerator/cli/templates/static/greeter_template/shared/schema.graphql) is an example of how to layout a configuration file for indexing.\n\n*Please refer to the [documentation website](https://docs.envio.dev) for a thorough guide on all [Envio](https://envio.dev) indexer features*\n\n## Generate code according to configuration\n\nOnce you have configured the above files and deployed the contracts, the following can be used generate all the code that is required for indexing your project:\n\n```\nenvio codegen\n```\n\n## Run the indexer\n\nOnce all the configuration files and auto-generated files are in place, you are ready to run the indexer for your project:\n\n```\npnpm start\n```\n\n## View the database\n\nTo view the data in the database, run\n\n```\n./generated/register_tables_with_hasura.sh\n```\n\nand open http://localhost:8080/console.\n\nAdmin-secret for local Hasura is `testing`\n\nAlternatively you can open the file `index.html` for a cleaner experience (no Hasura stuff). Unfortunately, Hasura is currently not configured to make the data public.\n\n# Local testing using Hardhat and Docker\n\nBelow are steps to be followed when testing the indexer locally using Hardhat and Docker.\n\nNB: All the files must be configured as per guideline above.\n\n1. Removing stale data\n\n   ```\n   docker-compose down -v\n   ```\n\n2. Restarting docker\n\n   ```\n   docker-compose up -d\n   ```\n\n3. Deploying contract\n\n   ```\n   cd contracts\n   rm -r deployments\n   pnpm hardhat deploy\n   ```\n\n   Note that this will delete the previous deployment of the smart contract and re-deploy to prevent `node synced status` errors.\n\n   More information on how to deploy contracts using Hardhat can be found at [this deploying guide](https://hardhat.org/hardhat-runner/docs/guides/deploying).\n\n4. Generating code\n   Once you are in your project directory, run:\n\n   ```\n   envio codegen\n   ```\n\n5. Running the indexer\n\n   ```\n   pnpm start\n   ```\n\n6. Running some tasks\n\n   ```\n   pnpm hardhat task:1 --parameter-1 value-1\n   ```\n\n   More information on how to create and run tasks using Hardhat can be found [created-task doc](https://hardhat.org/hardhat-runner/docs/advanced/create-task).\n\n7. Checking the results on local Hasura\n   ```\n   ./generated/register_tables_with_hasura.sh\n   ```\n   and open http://localhost:8080/console.\n\n# Troubleshooting\n\n## Exporting smart contract ABI\n\nIf you have updated your smart contract after the initial codegen, then you will have to recreate the ABI for your smart contract.\n\nRun\n\n```\ncd contracts\npnpm hardhat export-abi\n```\n\nEnsure that the directory for ABI in config.yaml is pointing to the correct folder where ABIs have been freshly generated.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fenviodev%2Fhyperindex","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fenviodev%2Fhyperindex","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fenviodev%2Fhyperindex/lists"}