con un clic
indexing-wildcard
// 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.
// 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.
Use 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.
Use 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.
| name | indexing-wildcard |
| description | 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. |
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