SelfMate
on-chain identity + decentralized storage for authentic connections 🔐💕
Problem Statement
📖 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 SolveTraditional dating apps suffer from:Fake Profiles & Catfishing: Anyone can create profiles with stolen photos and false informationUnderage Users: Inadequate age verification allows minors to access adult platformsData Privacy: Centralized servers store sensitive personal data, vulnerable to breachesGeographic Restrictions: Limited control over user access based on compliance requirementsLack of Trust: No way to verify someone's authenticity beyond self-reported informationOur SolutionSelfMate addresses these issues through: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 accountsAge verification ensuring all users are 18+Geographic compliance with automatic country-based restrictionsBlockchain-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.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 failureUsers maintain control over their dataEnhanced privacy and securityResistance to censorshipZero 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 WorksWallet Connection: Users connect their Ethereum wallet (MetaMask, etc.) to establish their on-chain identityIdentity Verification: Complete Self Protocol's rigorous identity verification processSmart Contract Registration: Upon successful verification, users are registered as "verified humans" in the smart contractProfile Creation: Users create their dating profile, which is encrypted and stored on the Walrus decentralized networkVerified Matching: Users can only see and interact with other verified humans, ensuring authentic connectionsDecentralized Dating: Swipe, match, and connect with confidence knowing every profile is real and verifiedTarget AudienceSelfMate is designed for:Digital Nomads: People who travel frequently and need trusted connections worldwidePrivacy-Conscious Daters: Individuals who want control over their personal dataSecurity-First Users: People who prioritize safety and authenticity in online datingWeb3 Enthusiasts: Early adopters who believe in decentralized solutionsQuality-Focused Daters: Those tired of fake profiles and superficial connectionsThis 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.
Solution
Architecture & Design PhilosophySelfMate 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 Integration1. Self Protocol - Zero-Knowledge Identity VerificationChallenge: 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 appBiometric verification prevents duplicate accountsZero-knowledge proofs verify age (18+) and nationality without exposing raw dataCustom verification config restricts access from specific countries for complianceIntegration with@selfxyz/coreand@selfxyz/qrcodefor seamless UXNotable Hack: We created a customSelfVerificationRootcontract 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 StorageChallenge: 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 objectBlob IDs are stored on-chain in ourIdentityStorage.solcontractRetrieval happens through Walrus aggregators for high availabilityContent addressing ensures data integrity and immutabilityNotable 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 ArchitectureChallenge: 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 at0xd5e4a7b1f649603fb87e5635b168c003e4face83Handles Self Protocol verificationManages verified user registryLower gas costs for frequent operationsIdentity Storage Contract (IdentityStorage.sol): Deployed on Ethereum SepoliaStores Walrus blob ID mappingsMore secure for identity-critical dataBetter integration with existing DeFi ecosystem4. Next.js Full-Stack Web3 ApplicationFrontend Architecture:Next.js 15.5.4with React 19 for server-side rendering and API routesTailwindCSS 4.0for responsive, mobile-first designFramer Motionfor smooth Tinder-like swipe animationsWagmi 2.17.5+RainbowKitfor Web3 wallet integrationBackend Architecture:Custom API routes handle complex Web3 interactionsJWT authentication for session management post-verificationServer-side contract interactions using ethers.jsReal-time event listening for blockchain updatesNotable 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 & Solutions1. Cross-Chain User ExperienceProblem: 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 AlgorithmProblem: 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 UXProblem: 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 SystemsProblem: Ensuring profile updates propagate correctly across Walrus and blockchain.Solution: Implemented an eventual consistency model with client-side caching and background sync processes.
Hackathon
ETHGlobal New Delhi
2025