Ethereum Light Client — in your browser
This page fetches a real Ethereum block header and its sync committee aggregate signature, then verifies the BLS12-381 cryptography locally in your browser — the server is only used to fetch data, never to assert validity. The one trust assumption: a single finalized checkpoint root used to bootstrap the sync committee. After that, light client verification is fully self-contained with ~24 KB of SSZ committee state.
Library: @noble/curves (pure JS)
Trust assumption: 1 finalized checkpoint root
Data per header: ≈ 160 bytes (sig + bitfield)
Full execution block: ~100 KB–2 MB typical
spec consensus-specs/altair (Deneb-compatible)api beacon-APIs v2provider publicnode.com (mainnet beacon RPC — results depend on provider availability)last validated Apr 2026
Verification steps
Fetch genesis data
01▸
Fetch current fork version
02▸
Fetch finalized checkpoint
03▸
Fetch sync committee pubkeys
04▸
Fetch latest finality update
05▸
SSZ hash_tree_root(BeaconBlockHeader)
06▸
compute_domain(SYNC_COMMITTEE, fork, genesis)
07▸
compute_signing_root(header_root, domain)
08▸
Aggregate public keys (G1 sum of signed validators)
09▸
Hash signing_root → G2 point (hash_to_curve)
10▸
BLS pairing check: e(G1, σ) == e(pk_agg, H(m))
11▸
Result
Run verification to see the result