Skip to content
BlindMatch

BlindMatch

ZK verified, privacy first Tinder <3

Created on 22nd June 2025

•

BlindMatch

BlindMatch

ZK verified, privacy first Tinder <3

The problem BlindMatch solves

Traditional dating platforms suffer from fake profiles, black-box matching algorithms, data privacy issues, and superficial photo-based swiping. Users waste time on bots, have no control over their data, and lack transparency in how matches are determined.

Our Solution
Verified Identity with Self.xyz

Integration with Self Protocol for human verification
Eliminates bots and fake profiles through zero-knowledge proofs
Users prove they're real humans without revealing personal data

Transparent Interest-Based Matching

Smart contract with open-source matching algorithm
Users must select 4+ interests from 8 categories
Can only like users with 2+ shared interests
Compatibility scoring based on interest overlap

Data Ownership & Privacy

Wallet-controlled profiles and dating history
No central database to hack or exploit
Users own their data forever and can take it anywhere

Gas-Efficient Design

Interest storage optimized to 1 byte per user
Affordable on-chain interactions for real-world use
Transparent matching logic anyone can verify

Impact
For Users: Authentic connections based on genuine compatibility, complete data ownership, and transparency in matching.
For Ecosystem: Demonstrates practical Web3 social applications that solve real problems beyond just "putting it on blockchain."
Our onchain dating app transforms superficial swiping into meaningful connections by ensuring verified humans match based on shared interests, with complete algorithmic transparency.

Challenges we ran into

Self Protocol Integration Issues

  • Relayer Gas Errors
    The biggest hurdle was integrating Self Protocol's verification system. The Self relayer kept failing with "out of gas" errors when trying to relay zero-knowledge proofs from the frontend to our smart contract.
    The Problem:

Self.xyz relayer would accept proofs from the mobile app

But consistently failed when submitting transactions to our contract
Gas estimation was returning insufficient values
Proofs weren't reaching the blockchain despite successful generation

How I Solved It:

Increased gas limits manually in the contract calls
Simplified the verification function to reduce computation
Added fallback mechanisms for when relayer fails
Implemented direct wallet transactions as backup to relayer

Smart Contract Gas Optimization
Interest Storage Efficiency
Initially stored user interests as an array of strings, which was extremely gas-expensive for profile creation.
Solution: Switched to bitmask storage using uint8, reducing interest storage from ~800 gas per interest to just 8 bits total. This made profile creation affordable on mainnet.

Tracks Applied (2)

ZK Hack Berlin Winners

Our dating app leverages zero-knowledge proofs through Self Protocol to solve fundamental trust issues in online dating ...Read More

🏆 Best Self onchain SDK Integration

We’ve integrated Self.xyz to ensure every profile on our dating app is a real, unique human with verified name, country,...Read More
Self

Self

Cheer Project

Cheering for a project means supporting a project you like with as little as 0.0025 ETH. Right now, you can Cheer using ETH on Arbitrum, Optimism and Base.

Discussion

Builders also viewed

See more projects on Devfolio