packages/cli/templates/static/shared/.claude/skills/indexing-traces/SKILL.md
Use 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.
npx skillsauth add enviodev/hyperindex indexing-tracesInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
HyperSync supports full trace queries at the data layer, but HyperIndex does not yet expose a handler-level trace API (like onTrace).
HyperSync can query traces with filtering by:
from / to — sender/recipient addressesaddress — contract addresscallType — call, delegatecall, staticcalltype — call, create, suicide, rewardsighash — function signaturesAvailable trace fields: From, To, CallType, Gas, Input, Value, GasUsed, Output, Subtraces, TraceAddress, TransactionHash, BlockNumber, Error, and more.
For trace-dependent indexing, use the Effect API to fetch trace data from an RPC endpoint:
import { createEffect, S } from "envio";
const getTraces = createEffect(
{
name: "getTraces",
input: S.schema({ blockNumber: S.number }),
output: S.unknown,
cache: true,
},
async ({ input }) => {
const res = await fetch(RPC_URL, {
method: "POST",
body: JSON.stringify({
jsonrpc: "2.0",
method: "trace_block",
params: [`0x${input.blockNumber.toString(16)}`],
id: 1,
}),
});
return (await res.json()).result;
}
);
Full reference: https://docs.envio.dev/docs/HyperIndex-LLM/hyperindex-complete
development
Write and run tests for HyperIndex indexers 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.
data-ai
Migrate a TheGraph subgraph to Envio HyperIndex using TDD. Covers schema conversion (remove @entity, Bytes->String, @derivedFrom), handler translation (save->set, store.get->context.get, templates->contractRegister), and verification against subgraph data.
data-ai
Use 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.
data-ai
Use when needing transaction-level data in handlers. Configure field_selection to include transaction fields on events, and access via event.transaction. No native transaction handler — access through event handlers.