Skip to content

Zero-knowledge proofs ​

ValidFi's ZK layer lets a holder prove facts about a vaccination credential, such as "I hold a valid credential for vaccine X", without revealing the credential itself.

Stack: Circom 2, SnarkJS, Groth16, Poseidon hashing.

Source: zk/

Status ​

PhaseScopeStatus
1Utility circuits (comparators, range checks, Poseidon wrappers), Merkle membership proofs, test harness✅ Complete
2Date-range verification, vaccine type matchingPlanned
3Booster verification, main VaccinationProof circuitPlanned

Layout ​

zk/circuits/
├── utils/   comparators.circom, rangeCheck.circom, poseidon.circom
└── core/    verification circuits

Flow ​

  1. The issuer commits to the credential (a Poseidon hash), which is stored as proof_hash on-chain.
  2. The holder generates a Groth16 proof locally with SnarkJS from the private credential plus public inputs (vaccine type, date bounds).
  3. The verifier checks the proof against the on-chain commitment and learns only the boolean result.