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

Snapthentic

Snaptenthic lets anyone prove photos are real humans using World ID. Snap, verify, earn.

Snapthentic

Created At

ETHGlobal Cannes

Winner of

World

World - World Pool Prize

Prize Pool

Project Description

We are running out of content on the internet to train new AI models — and at the same time, we need to ensure that new data sources are legitimate and not entirely AI-generated. World ID, although created to help solve this problem, is still underutilized.

Snaptenthic is the answer. It allows anyone to take photos via the World App interface, ensuring that the images are captured by real humans — verified at the app level + onchain. It also enables verification of those photos, even when shared through messengers and other channels (though support for all is still in progress due to time constraints).

Additionally, Snaptenthic lets us target others to take specific photos for AI companies via contests, enabling them to earn money (voting with World ID) while requiring only minimal fees to sustain the app. Finally, it allows those photos to be shared publicly — for example, on Twitter — solving the problem of promoting World ID through normal users, without relying on major capital from the Foundation or TFH.

In short words - it can keep World ID users really engaged and create social virality, while also solving problems of giant corporations via mass gamification.

How it's Made

Monorepo structure using Turborepo. The stack centers around Next.js with TypeScript, tRPC APIs, and Tailwind for styling. Frontend: React with server-side rendering, using MiniKit (wink wink) for wallet authentication. Users authenticate via wallet signatures. To create a profile, user performs incognito action - later verified in the backed. Backend: tRPC provides end-to-end type safety. Drizzle ORM manages a PostgreSQL database. NextAuth handles the wallet-based authentication flow. Blockchain: Custom Solidity smart contracts deployed on Worldchain Sepolia act as an immutable registry. Viem is used for blockchain interactions, automatically registering each verified photo on-chain. Storage: Supabase handles image storage with public URLs.

The particularly hacky parts: Custom Steganography Package: A custom implementation that embeds cryptographic signatures directly into image pixels using LSB (Least Significant Bit) manipulation. When users take a photo, the app:

  • compresses the image (maintaining quality),
  • generates a SHA-256 hash of the image data,
  • creates a wallet signature of that hash,
  • embeds the signature and metadata invisibly into the image pixels,
  • registers the signature on-chain,
  • if someone wants to verify the authenticity of a snap, we reverse the process: extract the embedded data using LSB steganography, verify the signature, and so on.

Even though the current implementation is far from ideal, I feel like it’s promising with a few polishments.

Flow Summary:

  • login with your wallet,
  • to create a profile, you must verify yourself via the incognito create-snapthentic-profile action,
  • once your profile is set, you can post snaps and participate in contests,
  • you can like, follow, and share snaps.
  • when snapping a photo, we generate a hash of the image and ask the user to sign it.
  • the photo, hash, and signature are sent to the backend.
  • the backend verifies the signature. If valid, we proceed to post the data (signature version, address, hash, and signature) on-chain to a dedicated dummy smart contract.
  • once the transaction is confirmed, we embed the transaction hash and related metadata into the photo using LSB steganography.

That’s it - the photo is now live and visible to others. While filling in the snap details, you can choose to enter it into a contest, making it subject to public voting.

The best snap in a given contest wins a predefined prize. To participate, users must pay a fixed entry fee - although payment isn’t implemented yet, so everything is free for now.

background image mobile

Join the mailing list

Get the latest news and updates