Search projects, hackathons, sponsors and tech

    ← All projects

    Pupille

    The Pupille iOS app uses secure hardware and World to prove that a pic was taken by a verified human

    Demo

    About

    Pupille is a native iOS capture and verification protocol for photos authored by unique humans. During enrollment, PupilleKit creates a persistent P-256 signing key inside the iPhone Secure Enclave and an Apple App Attest key. A World IDKit Proof of Human is generated with a signal that commits to the user’s pseudonymous handle and device public key. The backend verifies the World proof, its uniqueness/nullifier, and the Apple attestation before issuing an Ed25519-signed profile certificate. Photos can only enter the protocol through `PupilleCameraView`, which returns a controlled `CapturedPhoto`. When publishing, Pupille computes the SHA-256 hash of the exact JPEG bytes and caption, requests a one-time backend challenge, creates a fresh App Attest assertion, and asks Face ID to authorize the Secure Enclave signature. The backend independently recomputes the commitment, verifies the challenge, assertion, profile signature, and certified World identity, then issues a signed capture certificate containing the originating app ID. The proof is embedded directly inside the JPEG as a tagged APP11 segment containing the profile certificate, capture certificate, caption, and author signature. Verification does not trust a database “verified” flag: PupilleKit, our dependency-free TypeScript package, CLI, and browser verifier independently remove the proof segment, hash the original image bytes, validate both certificates and signatures, check the caption and author binding, and optionally enforce a list of trusted capture applications. Editing one pixel, changing the caption, relabelling the author, or copying the proof onto another image causes verification to fail. Inspired by Succinct’s ZCAM and designed as a path toward C2PA Content Credentials, the project includes the polished Pupille social proof-of-concept, a reusable Swift SDK, a web verifier, and a mock Amazon integration where verified-human customers can attach authenticated photos to product reviews with only a few SDK calls. The proof establishes byte integrity, attested app capture, device-key authorship, and World ID Proof of Human.

    How it's made

    We built Pupille to make authentic camera capture portable, human-verified and AI-resistant. We turn World ID’s Proof of Human into a reusable trust layer for authentic digital media, giving the World ecosystem a concrete new use case across social platforms, marketplaces, journalism, and user-generated content. Our iOS proof-of-concept captures a photo, hashes its exact bytes, signs the capture with a Secure Enclave key authorized by Face ID, and uses Apple App Attest to prove it came from our genuine app. World IDKit adds a privacy-preserving Proof of Human, binding one unique human to each pseudonymous profile. Our backend verifies the World ID and Apple evidence, then issues signed certificates that travel with each photo. We extracted this pipeline into a reusable Swift SDK and demonstrated its portability by integrating it into a mock Amazon app, where customers can attach cryptographically verified, human-authored photos to product reviews with only a few lines of code.