NOTE: Generated by envio. Do not edit manually.
Blockchain event indexer built with Envio HyperIndex. Processes on-chain events into a queryable GraphQL API backed by PostgreSQL.
- Node.js v22+ (v24 recommended), pnpm, Docker
ENVIO_API_TOKENenv var (required for HyperSync data source)
pnpm codegen # Regenerate types from schema.graphql + config.yaml
pnpm tsc --noEmit # Type-check without emitting
TUI_OFF=true pnpm dev # Run indexer (TUI_OFF for CI/AI-friendly output)
pnpm test # Run tests (Vitest)- Edit
schema.graphqland/orconfig.yaml - Run
pnpm codegen(required after any schema/config change) - Edit handlers in
src/handlers/ - Run
pnpm tsc --noEmitto type-check - Run
TUI_OFF=true pnpm devto verify at runtime
- Spread operator for updates — Entities returned by
context.Entity.get()are read-only. Always spread:context.Entity.set({ ...existing, field: newValue }) - Effect API for external calls — All
fetch, RPC, or other async I/O must usecreateEffect+context.effect(). Never call external services directly in handlers. entity_idfor relationships — Usetoken_id: String!nottoken: Token!. No entity arrays without@derivedFrom.- No
@entitydecorator — Unlike TheGraph, schema types have no decorators. - Codegen after schema/config changes — Generated types go stale otherwise. Always
pnpm codegenfirst.
- Uses
chains(notnetworks),max_reorg_depth(notconfirmed_block_threshold) - Handler field is optional — handlers auto-register from
src/handlers/ - Global contracts are auto-configured per chain
- Validate with:
# yaml-language-server: $schema=./node_modules/envio/evm.schema.json
Full LLM-optimized reference (schema, config, handlers, Effect API, testing): https://docs.envio.dev/docs/HyperIndex-LLM/hyperindex-complete
Detailed guides available in .claude/skills/ — auto-discovered by Cursor, Claude Code, and Codex.