Hemi Data: Index Bitcoin-Aware EVM Contracts and Tunnels
Index Hemi's contract events, tunnel flows, and decoded transactions in one pipeline, delivered to your own database. Real-time and complete historical data, no node to run.
Hemi treats Bitcoin and Ethereum as two halves of one supernetwork, a modular Layer 2 whose virtual machine can read Bitcoin state directly. The hVM embeds a full Bitcoin node inside an EVM, so a Solidity contract on Hemi can observe Bitcoin's UTXO set, confirmations, and headers without an external oracle. Proof-of-Proof consensus periodically commits Hemi's state into Bitcoin transactions, anchoring the chain to Bitcoin's security, and Tunnels move BTC and Bitcoin-native assets in and out of the chain. The team frames it as Bitcoin programmability with Ethereum tooling at hemi.xyz.
For an indexer, that is the twist. To your code Hemi reads as an EVM chain: Solidity contracts, EVM addresses, ABIs, logs, and traces all behave the way you expect, so Hemi data is fully claimable through a standard EVM pipeline. The difference is what those contracts react to, namely Bitcoin state surfaced through hVM precompiles, plus the deposit and withdrawal flows that run through the Bitcoin Tunnel. Indexing Co covers Hemi in a single pipeline, decodes the raw chain into the shape you want, and delivers it to your own PostgreSQL, warehouse, or webhook. Real-time and full history, with no node to operate.
Why Hemi data is hard
What Indexing Co delivers for Hemi
Stand up and maintain the whole stack yourself.
- Run a Hemi node or wire up a third-party RPC.
- Fetch and decode logs, traces, and receipts against the right ABIs.
- Reconstruct tunnel flows and Proof-of-Proof anchoring by hand.
- Build backfill, reorg handling, and real-time delivery from scratch.
One pipeline sources, decodes, and delivers Hemi to your store.
- Hemi contract events, token transfers, and decoded txs in a single pipeline.
- Decoded data, shaped by your JavaScript transform.
- Lands in your PostgreSQL, BigQuery, warehouse, or webhook.
- Real-time delivery plus complete backfilled history. No node, no RPC babysitting.
What you can index
| EVM data type | On Hemi, for example |
|---|---|
| Contract events and logs | hVM-triggered events, BTCFi lending borrows and liquidations |
| Token transfers (ERC-20, ERC-721) | Tunneled BTC representations, stablecoin payments, NFT mints |
| Decoded transactions and traces | Bitcoin Tunnel deposits and withdrawals, hBK contract calls |
| Protocol and account state | Liquid-staking positions, pool reserves, HEMI and veHEMI balances |
A transform, not a subgraph
You write the transform in JavaScript, not AssemblyScript, and change it without re-indexing from block zero. Indexing Co runs your function over each block server-side: decode the logs you care about and return rows for your destination.
// Indexing Co transform: reshape each block into rows for your database
function transform(block) {
const results = [];
const signatures = [
'event Transfer(address indexed from, address indexed to, uint256 value)'
];
for (const tx of block.transactions || []) {
for (const log of tx.receipt?.logs || []) {
const event = utils.evmDecodeLogWithMetadata(log, signatures);
if (!event) continue;
results.push({
chain: block._network,
block: Number(block.number),
tx_hash: tx.hash,
contract_address: log.address?.toLowerCase(),
from: event.decoded.from,
to: event.decoded.to,
value: event.decoded.value,
});
}
}
return results;
}
Hemi with Indexing Co
You want full control of node infrastructure and have the team to operate a Hemi node, decode tunnel and hVM-aware contracts, track Proof-of-Proof anchoring, and build backfill and reorg handling in-house.
You want Hemi contract events, tunnel flows, and decoded transactions delivered to your own database, with real-time plus complete history and no infrastructure to run.
Related Reading
- DeFi Data Infrastructure
- Subgraph Migration: Moving Off The Graph's Hosted Service
- Indexing Co vs Subgraphs
- Base Data: Index Contracts, Tokens, and Onchain Apps
FAQ
Do I need to run a Hemi node?
No. Indexing Co sources Hemi blocks, logs, and traces for you, including full historical data, so you never operate a node or babysit an RPC endpoint.
Is Hemi data indexed as EVM data?
Yes. Hemi runs an EVM, so contracts, addresses, ABIs, logs, and traces are all standard and fully claimable through a normal EVM pipeline. The Bitcoin-aware part lives inside the contracts, which read Bitcoin state through hVM precompiles, and Indexing Co decodes the events those contracts emit.
Can I index the Bitcoin Tunnel and BTCFi protocols?
Yes. Point a pipeline at the tunnel contracts or any Hemi protocol, from liquid staking and lending to your own deployments, and we decode deposits, withdrawals, and events against the right ABI.
Where does the Hemi data go?
Into your own destination: PostgreSQL, BigQuery, a warehouse, or a webhook. You define the output schema and own the storage.
Can I get complete historical Hemi data?
Yes. We backfill from your chosen start block and merge it with real-time data, so your Hemi dataset is gap-free from genesis forward if you want it.
Get Started
Index Hemi in minutes. Set up your first Hemi contract or tunnel pipeline without running a node.