Ethereum Consensus Layer
- Type
- beacon
- Identifier
- mainnet-cl
- Chain ID
- beacon:1
- Native Currency
- ETH
Indexing Data on Ethereum Beacon Chain
The Ethereum Beacon Chain is Ethereum’s consensus layer, coordinating the proof-of-stake validators that secure the network. The Graph can stream that consensus-layer activity — blocks and epochs, validator activity, attestations, deposits, and slashings — as real-time data with Substreams.
Ethereum Beacon Chain is supported by The Graph with Substreams — a parallelized, real-time streaming engine for high-throughput use cases — via Pinax Network.
Indexing Ethereum Beacon Chain 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 Ethereum Beacon Chain’s consensus-layer blocks — validators, attestations, deposits, and slashings. 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 Ethereum Beacon Chain; 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 an API key from Pinax Network.
substreams initdoes not have a template for the Beacon Chain yet, so set up the project by hand: write asubstreams.yamlmanifest withnetwork: mainnet-cland a Rust map module that takessf.beacon.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.