What is zkHelios
zkHelios brings privacy-preserving verification to Solana. Prove what matters — balance, ownership, membership, age — and reveal only what you choose.
zkHelios is a zero-knowledge proof protocol on Solana. You generate a Groth16 proof client-side, then submit it to an on-chain Anchor program that verifies it in roughly 200k compute units using Solana's alt_bn128 syscalls. The proof attests to a statement ("I hold at least 100 SOL") without revealing the underlying data.
Why ZK proofs on Solana
- Light-speed verification — on-chain verification settles in a single ~400ms slot.
- Privacy by default — public inputs stay public; everything else never leaves your device.
- Composable — any Anchor program can verify a zkHelios proof via CPI.
Core concepts
- Proof — a ~256-byte Groth16 proof over the BN254 curve.
- Circuit — defines what is proven (balance, ownership, age, membership, custom).
- Verifier program — the Anchor program that checks proofs and records attestations as PDAs.
Hello, proof
ts
import { ZkHelios } from "@zkhelios/sdk";
const zk = new ZkHelios({ cluster: "mainnet-beta", wallet });
// Prove you hold >= 100 SOL without revealing the balance
const proof = await zk.proveBalance({ min: 100 });
const { signature } = await zk.submitProof(proof);New here? Jump to the Quickstart to generate and verify your first proof in five minutes.
Use cases
- Private token transfers and balance attestations
- Anonymous credential verification
- Sybil-resistant airdrops
- Private DAO voting
- KYC without doxxing