The Ethereum Beacon Chain Explorer consists of several Substreams modules showcasing the most basic operations that you can perform with Substreams on the Ethereum Beacon blockchain.
Make sure you have the Substreams CLI installed, and you know the basic structure of a Substreams module. You must also provide a Pinax API key as $SUBSTREAMS_API_KEY
environment variable
The substreams package in this repository provides the following substreams modules:
map_block_meta
- streams some block metadata, such as slot number, root hash, spec version, timestamp, etcmap_block_full
- streams the entire block content to help you explore available fieldsmap_blobs
- streams blobs embedded into the beacon chain blockFirst, generate the Protobuf code, which is the output of the Substreams:
> make protogen
Then, build the Rust code using the cargo
command-line tool:
> make build
And now you can stream the corresponding substreams modules:
> make run map_block_meta
> make run map_block_full
> make run map_blobs
Alternatively, you can take advantage of substreams gui
command for a nicer user interface:
> make gui map_block_meta
> make gui map_block_full
> make gui map_blobs
Or, you can just use substreams
command to run it:
> substreams run -e eth-cl.substreams.pinax.network:443 map_block_meta -s -10
Pinax offers the following beacon chain substreams endpoints:
map_block_meta
allows you to view a basic information about a block
substreams gui beacon-explorer@v0.1.0 map_block_meta
map_block_full
allows you to view a complete block, as received by a Substreams module
substreams gui beacon-explorer@v0.1.0 map_block_full
map_blobs
allows you to view blobs inside a block
substreams gui beacon-explorer@v0.1.0 map_blobs
message
Block
message
Phase0Body
message
AltairBody
message
BellatrixBody
message
CapellaBody
message
DenebBody
message
Eth1Data
message
ProposerSlashing
message
AttesterSlashing
message
Attestation
message
Deposit
message
SignedVoluntaryExit
message
SyncAggregate
message
BellatrixExecutionPayload
message
CapellaExecutionPayload
message
DenebExecutionPayload
message
SignedBLSToExecutionChange
message
BLSToExecutionChange
message
Withdrawal
message
VoluntaryExit
message
DepositData
message
IndexedAttestation
message
AttestationData
message
Checkpoint
message
SignedBeaconBlockHeader
message
BeaconBlockHeader
message
Blob
enum
Spec
message
Modules
message
Binary
message
Module
message
Package
message
PackageMetadata
message
ModuleMetadata
message
Clock
message
BlockRef
message
DeployRequest
message
EnvironmentVariable
message
DeployResponse
message
UpdateRequest
message
UpdateResponse
message
InfoRequest
message
InfoResponse
message
SinkProgress
message
PackageInfo
message
ListRequest
message
ListResponse
message
DeploymentWithStatus
message
RemoveRequest
message
RemoveResponse
message
PauseRequest
message
PauseResponse
message
StopRequest
message
StopResponse
message
ResumeRequest
message
ResumeResponse
enum
DeploymentStatus
message
FileDescriptorSet
message
FileDescriptorProto
message
DescriptorProto
message
ExtensionRangeOptions
message
FieldDescriptorProto
message
OneofDescriptorProto
message
EnumDescriptorProto
message
EnumValueDescriptorProto
message
ServiceDescriptorProto
message
MethodDescriptorProto
message
FileOptions
message
MessageOptions
message
FieldOptions
message
OneofOptions
message
EnumOptions
message
EnumValueOptions
message
ServiceOptions
message
MethodOptions
message
UninterpretedOption
message
SourceCodeInfo
message
GeneratedCodeInfo
message
Any
message
Timestamp
message
Request
message
Response
message
BlockUndoSignal
message
BlockScopedData
message
SessionInit
message
InitialSnapshotComplete
message
InitialSnapshotData
message
MapModuleOutput
message
StoreModuleOutput
message
OutputDebugInfo
message
ModulesProgress
message
ProcessedBytes
message
Error
message
Job
message
Stage
message
ModuleStats
message
ExternalCallMetric
message
StoreDelta
message
BlockRange