packages/cli/templates/static/shared/.claude/skills/indexing-wildcard/SKILL.md
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.
npx skillsauth add enviodev/hyperindex indexing-wildcardInstall 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.
Index all events matching an event signature across all contract addresses on a chain.
contracts:
- name: ERC20
events:
- event: Transfer(indexed address from, indexed address to, uint256 value)
chains:
- id: 1
contracts:
- name: ERC20
# No address = wildcard (indexes ALL matching events on the chain)
wildcard: truePass wildcard: true in the options object to indexer.onEvent. Use event.srcAddress to identify which contract emitted the event:
indexer.onEvent(
{ contract: "ERC20", event: "Transfer", wildcard: true },
async ({ event, context }) => {
const tokenAddress = event.srcAddress; // The actual contract address
const id = `${event.chainId}-${event.transaction.hash}-${event.logIndex}`;
context.Transfer.set({
id,
token_id: `${event.chainId}-${tokenAddress}`,
from: event.params.from,
to: event.params.to,
value: event.params.value,
});
},
);
where)Wildcard indexing produces high event volume. Use where to reduce it — see the indexing-filters skill for object, array, function, and addresses forms.
indexer.onEvent(
{
contract: "ERC20",
event: "Transfer",
wildcard: true,
where: { params: { from: ZERO_ADDRESS } },
},
async ({ event, context }) => {
/* ... */
},
);
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 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.
tools
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.