zkzkHeliosDocs

Account model

The PDAs the zkHelios verifier program uses to store config, circuits, users, and proofs.

Program-derived addresses

text
VerifierConfig   seeds: ["verifier_config"]                   (singleton)
CircuitRegistry  seeds: ["circuit", circuit_id u32 LE]        (per circuit)
UserAccount      seeds: ["user", authority]                   (per user)
ProofAccount     seeds: ["proof", authority, nonce u64 LE]    (per proof)

ProofAccount

Each verified proof writes a ProofAccount attestation:

rust
pub struct ProofAccount {
    pub authority: Pubkey,
    pub circuit_id: u32,
    pub proof_type: ProofType,
    pub public_inputs: Vec<[u8; 32]>, // max 8
    pub proof_hash: [u8; 32],
    pub verified: bool,
    pub verified_at: i64,
    pub slot_verified: u64,
    pub bump: u8,
}

Rent

Proof accounts are rent-exempt and owned by the verifier program. The author can close their own ProofAccount to reclaim rent once it's no longer needed.