
SelfMate
on-chain identity + decentralized storage for authentic connections ππ
Demo
About
## π What is SelfMate? SelfMate is a revolutionary decentralized dating platform that solves the critical problems of traditional dating apps: fake profiles, catfishing, underage users, and centralized data control. By leveraging cutting-edge Web3 technologies, SelfMate creates a trustworthy ecosystem where only verified humans can participate in meaningful connections. ### The Problem We Solve Traditional dating apps suffer from: - **Fake Profiles & Catfishing**: Anyone can create profiles with stolen photos and false information - **Underage Users**: Inadequate age verification allows minors to access adult platforms - **Data Privacy**: Centralized servers store sensitive personal data, vulnerable to breaches - **Geographic Restrictions**: Limited control over user access based on compliance requirements - **Lack of Trust**: No way to verify someone's authenticity beyond self-reported information ### Our Solution SelfMate addresses these issues through: 1. **Mandatory Identity Verification**: Every user must complete real identity verification through Self Protocol before accessing the platform. This includes: - Government document verification (passport, national ID) - Biometric verification to prevent duplicate accounts - Age verification ensuring all users are 18+ - Geographic compliance with automatic country-based restrictions 2. **Blockchain-Based Trust**: Smart contracts on Ethereum manage user verification status, creating an immutable record that cannot be faked or manipulated. Once verified, a user's status is permanently recorded on-chain. 3. **Decentralized Data Storage**: Unlike traditional apps that store your photos and personal data on centralized servers, SelfMate uses the Walrus Network (a decentralized storage solution) to store user profiles. This means: - No single point of failure - Users maintain control over their data - Enhanced privacy and security - Resistance to censorship 4. **Zero Fake Profiles**: The combination of biometric verification, blockchain records, and document verification makes it virtually impossible to create fake profiles or multiple accounts. ### How It Works 1. **Wallet Connection**: Users connect their Ethereum wallet (MetaMask, etc.) to establish their on-chain identity 2. **Identity Verification**: Complete Self Protocol's rigorous identity verification process 3. **Smart Contract Registration**: Upon successful verification, users are registered as "verified humans" in the smart contract 4. **Profile Creation**: Users create their dating profile, which is encrypted and stored on the Walrus decentralized network 5. **Verified Matching**: Users can only see and interact with other verified humans, ensuring authentic connections 6. **Decentralized Dating**: Swipe, match, and connect with confidence knowing every profile is real and verified ### Target Audience SelfMate is designed for: - **Digital Nomads**: People who travel frequently and need trusted connections worldwide - **Privacy-Conscious Daters**: Individuals who want control over their personal data - **Security-First Users**: People who prioritize safety and authenticity in online dating - **Web3 Enthusiasts**: Early adopters who believe in decentralized solutions - **Quality-Focused Daters**: Those tired of fake profiles and superficial connections This isn't just a dating app with crypto payments - it's a complete reimagining of how online dating can work when built on trustless, decentralized infrastructure.
How it's made
### Architecture & Design Philosophy SelfMate represents a complete reimagining of dating apps built from the ground up with Web3-native principles. Rather than retrofitting blockchain features onto a traditional app, we designed every component to leverage decentralized infrastructure for trust, privacy, and user control. ### Core Technology Integration #### 1. Self Protocol - Zero-Knowledge Identity Verification **Challenge**: How do you verify real humans without compromising privacy? **Solution**: We integrated Self Protocol's cutting-edge zero-knowledge identity verification system that allows users to prove they are real, verified humans over 18 without revealing their actual identity documents to our platform. **Implementation Details**: - Users scan government-issued documents (passport, national ID) using Self's mobile app - Biometric verification prevents duplicate accounts - Zero-knowledge proofs verify age (18+) and nationality without exposing raw data - Custom verification config restricts access from specific countries for compliance - Integration with `@selfxyz/core` and `@selfxyz/qrcode` for seamless UX **Notable Hack**: We created a custom `SelfVerificationRoot` contract that extends Self Protocol's base verification to add dating-specific logic like user counting and admin controls while maintaining the zero-knowledge properties. #### 2. Walrus Network - Decentralized Profile Storage **Challenge**: How do you store sensitive dating profiles without centralized servers? **Solution**: We use Walrus Network (Mysten Labs' decentralized storage solution) to store all user profile data, photos, and metadata in a fully decentralized manner. **Implementation Details**: - Profile photos and data are uploaded to Walrus via custom API routes (`/api/walrus/upload`) - Walrus returns a unique blob ID for each stored object - Blob IDs are stored on-chain in our `IdentityStorage.sol` contract - Retrieval happens through Walrus aggregators for high availability - Content addressing ensures data integrity and immutability **Notable Hack**: We built a hybrid storage system where minimal metadata lives on-chain (just blob IDs and basic flags) while all rich content lives on Walrus, giving us the best of both worlds - blockchain immutability with decentralized storage scalability. #### 3. Multi-Chain Smart Contract Architecture **Challenge**: Different protocols work best on different chains. **Solution**: We deployed a multi-chain architecture optimizing each component for its ideal network: - **Main Dating Contract (`nomaddating.sol`)**: Deployed on Celo Sepolia at `0xd5e4a7b1f649603fb87e5635b168c003e4face83` - Handles Self Protocol verification - Manages verified user registry - Lower gas costs for frequent operations - **Identity Storage Contract (`IdentityStorage.sol`)**: Deployed on Ethereum Sepolia - Stores Walrus blob ID mappings - More secure for identity-critical data - Better integration with existing DeFi ecosystem #### 4. Next.js Full-Stack Web3 Application **Frontend Architecture**: - **Next.js 15.5.4** with React 19 for server-side rendering and API routes - **TailwindCSS 4.0** for responsive, mobile-first design - **Framer Motion** for smooth Tinder-like swipe animations - **Wagmi 2.17.5** + **RainbowKit** for Web3 wallet integration **Backend Architecture**: - Custom API routes handle complex Web3 interactions - JWT authentication for session management post-verification - Server-side contract interactions using ethers.js - Real-time event listening for blockchain updates **Notable Hack**: We created a unified context system that manages Web3 state, user verification status, and app navigation in a single reactive store, eliminating prop drilling and ensuring consistent state across components. ### Technical Challenges & Solutions #### 1. Cross-Chain User Experience **Problem**: Users shouldn't need to understand they're interacting with multiple blockchains. **Solution**: Built a unified Web3 service layer that automatically switches networks and handles cross-chain operations transparently. #### 2. Privacy vs. Matching Algorithm **Problem**: How do you match people without exposing their data? **Solution**: We store basic matching criteria (age range, nationality preferences) on-chain in a privacy-preserving way, while keeping detailed profiles on Walrus. The matching algorithm runs client-side with encrypted data. #### 3. Mobile-First Web3 UX **Problem**: Web3 wallets are notoriously difficult on mobile. **Solution**: Implemented RainbowKit with mobile-optimized wallet connections and QR code fallbacks. Added progressive Web3 enhancement where core features work without wallet connection. #### 4. Data Consistency Across Decentralized Systems **Problem**: Ensuring profile updates propagate correctly across Walrus and blockchain. **Solution**: Implemented an eventual consistency model with client-side caching and background sync processes.