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

Menshen

An app that converts selfies to sybil-resistant NFTs, using zk SNARKs to preserve privacy. Unlike other solutions, it requires no gov-issued IDs or lengthy setup ceremonies, and is accessible to 85% of humans.

Menshen

Created At

ETHBogotá

Winner of

trophy

🔟 Optimism — Top 10 Deployed

Project Description

More info here: https://drive.google.com/file/d/16PJQpjQ7BdcD4enRo5nEO4esy-qMSQH5/view?usp=sharing

Menshen provides sybil resistant proof-of-personhood NFTs, and is built for everyone. It does this by allowing anyone with a smartphone camera or webcam to mint a Menshen ID that uniquely identifies them as human. Users do this by taking a selfie, and the next time they go through this flow, they will not be able to mint an NFT if their selfie matches one Menshen has already seen. What makes Menshen unique is that it can do this without ever storing or sending the selfie itself to any central servers or third parties, allowing users to remain anonymous (at least to the extent their devices are well protected!)

Different solutions to sybil attacks are all subject to tradeoffs between privacy, security, and accessibility. Menshen optimizes for accessibility first, then privacy, so that anyone in the world can create a portable identity for themselves, even if they've been left behind by traditional institutions.

How it's Made

I used the Ethereum Foundation's Semaphore Protocol for all the ZK libraries that handles verifying identities and group membership with hashed face scans, and OpenZeppelin contracts as the templates for both the NFT minting contract and the ZK contract.

For the front-end I used some simple React boilerplate, and I set up a small local web server with nodejs and express, though most of the functionality is on the client or on-chain.

I also started deploying it on Optimisim to qualify for the "govTech & Community Infrastructure" prize pool but only managed to get one deployed: 0xb96b7d24a3311818ce8b2598d7a07e3d7497bcfa

Was running into a gas bug with the other one at 5AM on sunday

background image mobile

Join the mailing list

Get the latest news and updates