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