project screenshot 1
project screenshot 2
project screenshot 3
project screenshot 4

Identifi

A Web3 identity app enabling users to verify age and humanity using Worldcoin and Self Protocol.

Identifi

Created At

ETHGlobal Taipei

Winner of

World

World - World Pool Prize

Prize Pool

Celo

Celo - Celo L2 Pool Prize

Prize Pool

Project Description

This project is a decentralized identity authentication platform that integrates Worldcoin and Self Protocol to provide privacy-preserving and verifiable identity credentials for users. It is designed primarily for Web3 applications that require proof of personhood (e.g., “human not bot”) or age verification (e.g., for gated access to features, communities, or financial services).

On the front end, users can choose between two authentication methods: 1. Worldcoin – Biometric proof of personhood via Orb scanning. 2. Self Protocol – Zero-knowledge (ZK) proof-based attestations for attributes like age, nationality, and social accounts, without disclosing personal data.

Users scan a QR code using the Self mobile app or authenticate with Worldcoin’s widget. Once verified, their credentials are sent to the backend, where cryptographic proofs are validated via smart contracts or node-side SDKs. The backend can also store non-replayable identifiers (like nullifiers) for added security.

This project is ideal for wallets, DAOs, or platforms requiring verifiable identity checks while preserving user privacy. It is built with Next.js, TypeScript, and uses the @worldcoin/idkit and @selfxyz/qrcode SDKs.

How it's Made

•	Next.js (App Router) – Handles client/server logic with edge functions for fast API interactions.
•	Worldcoin IDKit SDK (@worldcoin/idkit) – Integrates biometric proof of personhood (World ID) via the Orb, embedding their verification modal in our frontend.
•	Self Protocol QR SDK (@selfxyz/qrcode) – Generates QR codes for users to scan with the Self mobile app, enabling ZK-based age/social verifications.
•	Self Protocol Verifier (@selfxyz/core) – Used server-side to verify the ZK proofs submitted via the Self app.
•	Worldcoin Proof Verifier (verifyCloudProof) – Verifies the Worldcoin proof server-side to prevent replay or tampering.
•	UUID (uuid) – Generates per-session userId values for Self proof matching.
background image mobile

Join the mailing list

Get the latest news and updates