| name | indexing-config |
| description | Use when writing or editing config.yaml. Chain/contract structure, addresses, start_block, event selection, field_selection, custom event names, env vars, address_format, schema/output paths, YAML validation, and deprecated options. |
Config Reference (config.yaml)
Structure Overview
name: my-indexer
description: Optional description
schema: schema.graphql
output: generated/
address_format: checksum
contracts:
- name: MyContract
abi_file_path: ./abis/MyContract.json
handler: ./src/EventHandlers.ts
events:
- event: Transfer(address indexed from, address indexed to, uint256 value)
chains:
- id: 1
start_block: 0
contracts:
- name: MyContract
address: "0x1234..."
Uses chains (not networks) and max_reorg_depth (not confirmed_block_threshold).
Contract Addresses
- name: Token
address: "0x1234..."
- name: Token
address:
- "0xaaa..."
- "0xbbb..."
- name: Token
For proxied contracts, use the proxy address (where events emit), not the implementation.
start_block
chains:
- id: 1
start_block: 0
contracts:
- name: Token
address: "0x1234..."
start_block: 18000000
start_block: 0 with HyperSync skips empty blocks automatically.
Custom Event Names
When two events share the same name (different signatures), disambiguate:
events:
- event: Transfer(address indexed from, address indexed to, uint256 value)
name: TransferERC20
- event: Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
name: TransferERC721
field_selection
Request additional transaction/block fields globally or per event:
field_selection:
transaction_fields:
- hash
- from
- to
block_fields:
- number
- timestamp
contracts:
- name: MyContract
events:
- event: Transfer(address indexed from, address indexed to, uint256 value)
field_selection:
transaction_fields:
- hash
- from
- to
- gasPrice
Global field_selection is at the root level (sibling to contracts and chains). Per-event field_selection is directly under the event entry. See indexing-transactions skill for full field lists.
Environment Variables
rpc:
- url: ${RPC_URL}
- url: ${RPC_URL:-http://localhost:8545}
Works in any string value in config. Set via .env file or shell environment.
YAML Validation
Add at top of file for IDE schema validation:
Deprecated Options (Do NOT Use)
loaders / preload_handlers — replaced by async handler API
preRegisterDynamicContracts — replaced by contractRegistrations in factory pattern
event_decoder — removed
rpc_config — replaced by rpc: under chains
unordered_multichain_mode — removed
RPC Configuration
RPC tuning parameters are documented in the indexing-performance skill.
Deep Documentation
Full reference: https://docs.envio.dev/docs/HyperIndex-LLM/hyperindex-complete