Practical overview
When it fits
Use Spectre when building an Ethereum Altair light-client verification component and the target execution layer has limited resources for the required computation.
Who it is for
- Blockchain developers integrating Ethereum light-client consensus checks into another chain or application.
- Teams needing to offload circuit-defined verification computation from a constrained execution layer.
- Rust and Halo2 developers implementing or operating proof and verifier-contract workflows.
Documented uses
- Verify Ethereum Altair light-client updates and Beacon-chain headers against consensus rules.
- Move the documented verification computation off a target chain’s execution layer.
- Set up step or committee-update circuits and generate corresponding verifier-contract source.
Requirements & limits
The repository is public and lists a GPL-3.0 license. The documented development requirements include Rust 1.73.0-nightly, build-essential, clang, pkg-config, libssl-dev, Foundry and Just.
- Its stated primary circuit is specific to the Ethereum LightClient protocol introduced in Altair; outsourced computation depends on the arithmetic circuits.
- The prover uses a Halo2 fork and circuits use halo2-lib; verifier contracts are generated via snark-verifier.
- Support for halo2-solidity-verifier is explicitly behind an experimental flag.
- Deployment requires network-specific light-client parameters, RPC details and deployer credentials.
Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.
Set up Spectre circuits
Prepare the repository inputs and run a documented circuit setup for a step proof or committee update.
Before you start
- Rust 1.73.0-nightly
- build-essential, clang, pkg-config and libssl-dev
- Foundry and Just
- A checked-out Spectre repository
Steps
Initialize repository submodules with the command below.
git submodule update --init --recursivePrepare contract and consensus-test inputs with
just build-contractsandjust download-spec-tests.Run either
just setup-step-compressed testnetorjust setup-committee-update testnetto set up the corresponding circuit.
Expected outcome
The selected step-compressed or committee-update circuit setup is invoked for the testnet configuration.
Guide limitations
- This guide covers circuit setup only, not proof generation, verifier generation or deployment.
- The README does not establish execution success on a particular machine.
Generate a verifier contract for a configured circuit
Generate Solidity verifier-contract source for a step proof or committee-update proof using the documented Just recipe.
Before you start
- A checked-out Spectre repository with circuit setup inputs and keys prepared
- Just
Steps
Choose the step-compressed or committee-update proof type.
Run
just gen-verifier-step-compressed testnetorjust gen-verifier-committee-update testnetfor the selected type.Use the generated verifier source at the repository path documented for that proof type.
Expected outcome
The corresponding Solidity verifier-contract source is generated; the README gives `contracts/snark-verifiers/sync_step_verifier.sol` as the step-proof output path.
Guide limitations
- This workflow generates verifier source; it does not deploy the contract.
- The README's committee-update command names a verifier file with degree 24 in the direct command but degree 20 in its output filename, so confirm the intended key/output configuration before adapting that command.
Sources & review
Source record details
- Source availability
- Active
- Sources checked
- 17 October 2026
- Original website title
- ChainSafe/Spectre · Official homepage title · retained in its source language

