enviodev
- 18 skills
- 0 followers
- 6 hours ago last updated
- ▌ Subgraph Migration · enviodev bundleThis skill should be used when the user asks to "migrate from subgraph", "convert subgraph to hyperindex", "migrate from thegraph", "port subgraph", "convert subgraph handlers", "migrate assemblyscript to typescript", or mentions TheGraph, subgraph migration, subgraph.yaml conversion, or converting from TheGraph to Envio. For core HyperIndex development patterns, refer to the hyperindex-development skill.
- ▌ Envio Docs · enviodevUse when something is unclear, confusing, or not covered by other skills. Search and read the latest Envio documentation without leaving the terminal.
- ▌ Indexer Blocks · enviodevUse when processing every block (or every Nth block) for time-series data, periodic snapshots, or block-level aggregations. indexer.onBlock API, where filter with block-number range and stride, and block handler context.
- ▌ Indexer Schema · enviodevUse when defining or editing schema.graphql. Entity types, scalar types, enums, relationships, @derivedFrom, @index, @config directives, array rules, naming conventions, and schema-to-TypeScript type mapping.
- ▌ Indexer Traces · enviodevUse when needing call trace data from transactions. HyperSync supports trace queries at the data layer. No handler-level trace API currently — access traces via HyperSync client directly.
- ▌ Envio Cloud CLI · enviodevUse when deploying, managing, or monitoring hosted indexers on the Envio cloud. The envio-cloud CLI covers auth, indexer settings, env vars, deployments, logs, and metrics — from the terminal, CI/CD, or scripts.
- ▌ Indexer Factory · enviodevUse when indexing contracts deployed by factory contracts at runtime. contractRegister API, dynamic contract config (no address), async registration, and same-block event coverage.
- ▌ Indexer Filters · enviodevUse when filtering events by indexed parameters to reduce processing volume. The `where` option supports static filters, dynamic per-chain functions, contract address filtering, and conditional enable/disable.
- ▌ Indexer Testing · enviodevWrite and run tests for Envio Indexer projects using Vitest and createTestIndexer(). Covers test setup, processing block ranges, asserting entity changes with toMatchInlineSnapshot, and TDD workflow. Use when writing tests, debugging handler output, or verifying indexer behavior.
- ▌ Indexer Handlers · enviodevUse when writing or editing event handlers. Handler registration, context API (entity CRUD, getWhere queries, chain, log), spread updates, indexer runtime API, and common pitfalls.
- ▌ Indexer Wildcard · enviodevUse when indexing all instances of a contract across all addresses (e.g., all ERC-20 transfers on a chain). Config setup (no address), wildcard handler option, and event.srcAddress.
- ▌ Indexer Multichain · enviodevUse when deploying an indexer across multiple chains. Per-chain data mode, entity ID namespacing to avoid collisions, chain-specific configuration patterns, and the context.chain runtime API.
- ▌ Indexer Performance · enviodevUse when optimizing indexer speed or tuning sync performance. HyperSync, batch size, WebSocket realtime config, and preload optimization.
- ▌ Indexer Transactions · enviodevUse when a handler needs transaction or block data — event.transaction / event.block, and the `fields` option that selects what they carry. There is no onTransaction handler; transaction data arrives through event handlers.
- ▌ Indexer Configuration · enviodevUse when writing or editing config.yaml. Chain/contract structure, addresses, start_block, event selection, field_selection, custom event names, env vars, address_format, bytes_type, schema/output paths, YAML validation, and deprecated options.
- ▌ Indexer External Calls · enviodevUse when making RPC calls, fetch requests, or any external I/O from handlers. Effect API with createEffect, S schema validation, context.effect(), preload optimization (handlers run twice), cache and rateLimit options.
- ▌ Indexer Local Parallel · enviodevUse when running two or more indexers locally at the same time (pnpm dev in multiple projects on one machine). Per-project ENVIO_PG_SCHEMA and ENVIO_INDEXER_PORT against the shared local Postgres, plus the Hasura metadata caveat and its dedicated-Hasura workaround.
- ▌ Indexer Troubleshooting · enviodevUse when the indexer fails to start, codegen errors, types are stale, Docker or database issues, or something is not working. Common error messages and fixes.