Share the proof. Keep the data. Inspiration Have you ever had to show your driver's license just to prove you were over 18, exposing your home address and exact birthdate in the process? Or uploaded a full student ID just to get a software discount? We realized that in the modern digital age, we constantly overshare sensitive personal data just to prove a single, binary fact (like "I am a student"). We were inspired by the growing movement towards data sovereignty and privacy-first architecture. We wanted to build a solution where users could prove statements about their identity without revealing the underlying data itself. What it does ProofPass is a privacy-preserving credential verification platform. It allows users to cryptographically prove that they meet certain criteria without exposing their actual personal information. Secure Onboarding: The user enters their sensitive data directly into their own device. Zero-Knowledge Generation: Instead of sending data to a server, ProofPass generates a cryptographic proof locally. Frictionless Verification: The app generates a dynamic QR code and a shareable Live Verification Link. When a verifier scans the code, they see a simple Valid or Invalid result. How we built it We focused heavily on a modern, single-page application architecture to ensure the UX was frictionless: Frontend: Built using React (Vite) and TypeScript. Styling & UI: Used Tailwind CSS alongside smooth Framer Motion animations to create a polished, Material-inspired interface. Cryptography / Mock-Backend: To simulate the Zero-Knowledge proof generation, we built a local adapter service. Here is a quick look at the logic we used to simulate the cryptographic delay and state generation: code TypeScript const generateProof = async (credential: Credential): Promise => { // Simulating cryptographic delay for ZK-proof generation await new Promise(resolve => setTimeout(resolve, 1500));
const proofId = zkp_${generateId()};
const proof: Proof = {
proofId,
credentialId: credential.id,
isValid: true,
generatedAt: Date.now(),
expiresAt: Date.now() + 5 * 60 * 1000 // Expires in 5 minutes
};
storage.saveProof(proof); return proof; }; Challenges we ran into One of our biggest challenges was UX translation for cryptography. Zero-Knowledge proofs involve complex mathematics—specifically, proving a statement is true without revealing the sensitive input . If the app felt too complex, users wouldn't trust it. We spent a significant amount of time refining the UI so it felt like a friendly consumer product rather than a highly technical developer tool. Accomplishments that we're proud of The "Consumer-Ready" UI: The animations are crisp, the layout is highly responsive, and the onboarding flow successfully abstracts away the complex cryptography. Privacy by Design: We adhered strictly to our core philosophy; the application is fully functional without a centralized database holding the raw user credentials. What we learned We learned that the biggest barrier to Web3 and privacy tech isn't necessarily the cryptography—it's the user interface. Building a bridge between complex security protocols and a seamless, everyday user experience is difficult but incredibly rewarding. What's next for ProofPass The immediate next step is to integrate a real blockchain SDK (like the Midnight Network) to handle the actual Zero-Knowledge proof generation and on-chain verification. We plan to expand the credential types beyond just Student Status to include age verification, residency proof, and income brackets.
Log in or sign up for Devpost to join the conversation.