Skip to main content

Consensus Light Client

Verify Ethereum state without running a full node. These packages implement the beacon chain light client sync protocol, BLS signature verification, SSZ serialization, and Merkle proof-based state verification — giving you cryptographically verified balances, nonces, storage, and contract code using only a beacon chain API and a standard RPC endpoint.

The Simple Path​

using Nethereum.ChainStateVerification.Interceptor;

var web3 = new Web3("https://mainnet.rpc.url")
.UseVerifiedState(verifiedStateService);

// All queries are now cryptographically verified via Merkle proofs
var balance = await web3.Eth.GetBalance.SendRequestAsync(address);

The UseVerifiedState() extension intercepts RPC calls and verifies responses against the light client's trusted state root. No changes to your existing web3.Eth code — just add one line.

Intercepted MethodWhat's Verified
eth_getBalanceAccount balance via account proof
eth_getTransactionCountAccount nonce via account proof
eth_getCodeContract bytecode via account proof + code hash
eth_blockNumberReturns the light client's verified block number

What Can I Do?​

I want to...Guide
Verify balances, nonces, and contract code without trusting my RPCVerified State Queries
Use web3.Eth with automatic proof verificationVerified State Queries
Query verified storage slots and ERC-20 balances via proofsVerified State Queries
Understand the light client protocol (sync committees, BLS, staleness)Beacon Chain Light Client
Customize light client behavior (staleness thresholds, persistence)Beacon Chain Light Client

Guides​

GuideWhat You'll Learn
Verified State QueriesInitialize the light client stack, use UseVerifiedState() for transparent proof verification, query balances/nonces/storage directly, finalized vs optimistic modes
Beacon Chain Light ClientHow sync committees and BLS signatures work, configuration for different chains, update lifecycle, staleness detection, state persistence

Packages​

PackageDescription
Nethereum.BeaconchainBeacon Chain REST API client for light client bootstrap, sync updates, and finality data
Nethereum.Consensus.LightClientLight client sync protocol — initialization, updates, trusted header tracking, staleness detection
Nethereum.ChainStateVerificationVerified state queries with Merkle proof verification, RPC interceptor, caching
Nethereum.Consensus.SszSSZ container types for beacon headers, sync committees, and light client messages
Nethereum.SszCore SSZ encoding/decoding and merkleization primitives

Supporting Packages​

These packages are dependencies used by the light client stack but documented in other sections:

PackageSectionRole
Nethereum.Signer.Bls.HerumiSigning & Key ManagementBLS12-381 signature verification (native Herumi library)
Nethereum.Merkle.PatriciaCore FoundationPatricia trie proof verification for account and storage proofs

Supported Chains​

ChainChain IDStatus
Ethereum Mainnet1Fully supported
Sepolia11155111Fully supported
Holesky17000Fully supported