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.