Announcing Hgraph's ERC Token Data Indexer for Hedera
ERC token metadata, balances, transfer history, and NFT ownership are now available through a single, familiar GraphQL endpoint that updates in real time. Hgraph makes querying ERC token data from the Hedera mirror node just as easy as querying HTS token data.
Developers on Hedera have asked for a faster path to real ERC data, without stitching logs, juggling endpoints, or worrying about synthetic HTS events. Today we're launching Hgraph's ERC Indexer: a single GraphQL surface that gives you wallet portfolios, holders, transfer history, and NFT owners & tokenURI with straightforward queries.
It targets pure ERC-20, ERC-721, and ERC-1400 contracts deployed to Hedera's EVM (not HTS facades), and ships with pre-modeled entities, aggregates, and reliability signals so you can ship in minutes. The indexer fits seamlessly amongst the full scope of mirror node data that Hgraph hosts on its bare metal infrastructure. Query ERC and HTS token data from a single endpoint.
Try it now: create an Hgraph account, get an API key and point your app (or the playground) to our mainnet or testnet GraphQL endpoints. Available on Startup plans and above. All details in our documentation.
Quick TL;DR
Hgraph's ERC indexing Service continuously discovers ERC contracts on Hedera's EVM, fetches current balances via RPC balanceOf() calls, extracts standard ERC metadata, and exposes a GraphQL schema purpose-built for ERC analytics:
- erc_token — token/collection metadata & stats
- erc_token_account — per-account balances / NFT counts
- erc_nft — per-NFT rows with owner + metadata (tokenURI)
- erc_token_transfer — ERC-20/ERC-1400 transfer history
- erc_nft_transfer — ERC-721 transfer history
You'll also see metadata_reliability_score (a score of 0 to 1) and processing_timestamp to judge data quality and freshness (details in our documentation). Endpoints require an API key.
Why "pure ERC"? Mirror nodes can surface synthetic ERC-like logs for HTS operations. Great for HTS analytics, but mixing them into ERC analyses can mislead. The ERC Indexer excludes HTS by design so your ERC queries stay "correct by default."
What You Can Do
- Holders & top holders — aggregate erc_token_account by token_id (distinct count + ordered list).
- Wallet portfolios — list balances for account_id, then join token details for names/symbols/decimals.
- NFT ownership & metadata — fetch owner and tokenURI from erc_nft via (token_id, serial_number).
- Transfer history — trace token movements over time with sender, receiver, amount, and transfer type (transfer, mint, burn, plus ERC-1400 partition variants).
- Security tokens — ERC-1400 support with partition-aware transfers for compliance use cases.
All of these are detailed in the documentation with copy-paste queries and variables. You'll notice that the ERC token tables and fields share the same naming conventions as HTS token tables and fields.
Quick Start
- Get an API key: (Startup plan or higher) and open the GraphQL playground.
- Try a query: see our examples here in our docs (e.g., "Token Deep Dive" for holders + aggregates).
- …and ship! Add the endpoint and x-api-key header to your app.
How it Works
Under the hood, the indexer discovers contracts that emit Transfer, calls standard ERC views (name, symbol, decimals, etc.), fetches current balances via RPC, indexes transfer events, tracks ERC-721 ownership & tokenURI, and serves it all via GraphQL. We normalize account/address formats (Hedera IDs, long-zero aliases, EVM aliases, hollow accounts) so you don't have to.
Event detection detail: ERC-20 transfers keep the amount in event data, while ERC-721 transfers index the tokenId. Both share the standard Transfer(address,address,uint256) topic hash. ERC-1400 security tokens are detected via isIssuable() and isControllable() probes.
Pitfalls Avoided with Hgraph's Indexer
- HTS synthetic logs mixed into ERC analytics — our pure-ERC dataset excludes them by design.
- Address/alias fragmentation — we resolve Hedera IDs, long-zero, and EVM aliases automatically.
- Big integers & decimals — balances and supplies are returned as strings with full precision.
- Rebasing token drift — RPC-based balanceOf() fetching ensures accurate balances for aTokens and other rebasing tokens where event-based calculation fails.
What's Next?
We are reviewing community feedback, making plans to support additional ERC standards and developing new ecosystem metrics to create full visibility into Hedera's EVM activity. If there's a query you want built in, tell us, we'll add it to the examples.
Start building: grab your API key and run your first holders query in the playground.