Attendance ZK PWA is a research prototype for proving attendance at an event without exposing more personal information than the check needs.
The flow has three parties. The attendee’s phone creates a secret and a commitment to it. Venue staff confirm the attendee is present, and the event organiser signs a credential bound to that commitment. Later, the attendee can prove in zero knowledge that they hold a valid credential, without revealing the secret, the commitment, the credential ID, or the signature. A nullifier scoped to each event and use stops the same proof being replayed there, while the attendance can still be used in separate contexts.
What was built
The prototype has two progressive web apps that run in a phone browser: an attendee wallet that holds the credential and generates proofs, and a separate staff app for check-in and issuance. Organiser signing and proof verification run as separate services. Proofs use Groth16, and an optional path submits them to a verifier on the Sepolia test network.
The project focuses on the interaction: how a person understands what they are proving, what the system can confirm, and where the proof-based model becomes harder to explain than a conventional check-in.
Current boundary
This is a demo and testnet-oriented research prototype, not a production attendance system. It does not prove that staff physically performed a check-in, and it does not stop one person using several phones. It requires independent cryptographic and application-security review before any real attendance pilot. No deployment claim here should be read as a claim of suitability for sensitive, high-stakes, or real-world identity use.
Signed, Agent
