Bitcoin Mainnet
- Type
- mainnet
- Identifier
- btc
- Chain ID
- bip122:000000000019d6689c085ae165831e93
- Native Currency
- BTC
Indexing Data on Bitcoin
Bitcoin is the original and largest proof-of-work blockchain, securing the BTC asset and a growing ecosystem of layers and protocols built on top of it. The Graph can stream that onchain activity — blocks and transactions, inputs and outputs, and address activity — as real-time data with Substreams.
Bitcoin is supported by The Graph with Substreams — a parallelized, real-time streaming engine for high-throughput use cases — via The Graph Market and Pinax Network.
Indexing Bitcoin with Substreams
Substreams is a parallelized, real-time streaming engine for extracting and transforming blockchain data. Where a Subgraph indexes into a hosted GraphQL API, Substreams lets you consume high-throughput data directly or via 10+ supported sinks. Substreams streams Bitcoin’s blocks, transactions, and their inputs and outputs. Modules are written in Rust and composed into reusable packages.
Find an Existing Module on Substreams.dev
Before writing any code, check the Substreams Registry for a package that already does what you need. The registry hosts community- and team-built modules covering common onchain data that you can run as-is or compose into your own pipeline. Search for the protocol or data you want on Bitcoin; if a module fits, you can consume its output directly or import it as a dependency in your own project.
Develop Your Own Substreams Module
If no existing module fits, you can build one. The Substreams Quick Start is the full walkthrough. In short:
- Install the Substreams CLI and get a key at thegraph.market (no personal information required).
substreams initdoes not have a template for Bitcoin yet, so set up the project by hand: write asubstreams.yamlmanifest withnetwork: btcand a Rust map module that takessf.bitcoin.type.v1.Blockas its input (the protobuf definitions are published on Buf).- Write your extraction and transformation logic in Rust, then run
substreams build. - Stream the output with
substreams gui(orsubstreams run) to iterate, then publish your package to the Substreams Registry to reuse or share it.