A Python client for interacting with the Ethereum Beacon Chain API
Ethereum Consensus Specification
Ethereum Consensus Specification Annotated
This implementation also leans on types implemented here
pip install beacon-client-py
from beacon_client.api import BeaconChainAPI
client = BeaconChainAPI("http://localhost:5052")
client.get_headers_from_block_id(block_id="head")
for event in client.stream_events(head=True, block=True, attestation=True):
match event.event:
case "head":
print(client.parse_head(event.data))
case "block":
print(client.parse_block(event.data))
case "attestation":
print(client.parse_attestation(event.data))
case other:
pass
Run the docs locally
poetry run mkdocs serve
Formatter
poetry run black .
Tests
poetry run pytest -vv
linter
poetry run flake8
note: requires poetry version 1.2.x or higher