A revolutionary dating app that combines privacy-first identity verification with anonymous matching using Self Protocol and zero-knowledge proofs. Experience meaningful connections without compromising your privacy.
- Zero-Knowledge Proofs: Verify identity without exposing personal data
- Self Protocol Integration: Industry-leading privacy-preserving verification
- Sybil Resistance: Prevent duplicate identities using cryptographic nullifiers
- Age Verification: Confirm age requirements without revealing birth date
- Country Verification: Check nationality without exposing location
- Sanctions Screening: Private screening against sanctions lists
- Aura Point System: Progressive profile reveal based on compatibility
- Swipe Deck Interface: Intuitive matching with privacy protection
- Compatibility Scoring: AI-powered matching without data exposure
- Anonymous Messaging: Chat before revealing personal information
- Photo Verification: Secure image storage with IPFS integration
- React Native + Expo: Cross-platform mobile development
- TypeScript: Type-safe development experience
- Capacitor Integration: Native mobile app capabilities
- Blockchain Ready: Smart contract integration for verification storage
- IPFS Storage: Decentralized image and data storage
- Local Build Support: Build without cloud dependencies
- Frontend: React Native, Expo, TypeScript
- Identity: Self Protocol, Zero-Knowledge Proofs
- Storage: IPFS, AsyncStorage
- Blockchain: Ethereum, Polygon, Ethers.js
- Mobile: Capacitor, Android Studio
- Crypto: SnarkJS, Noble Curves
- Node.js (v18 or higher)
- Android Studio (for Android builds)
- Xcode (for iOS builds, macOS only)
- Git
-
Clone the repository
git clone https://github.com/yourusername/zklove.git cd zklove -
Install dependencies
npm install
-
Set up environment variables
cp env.example .env.local # Edit .env.local with your configuration -
Start development server
npm start
# Development build
npm run android
# Production build
npm run build:local:android:release# Development build (macOS only)
npm run ios
# Production build
npm run build:local:ios# Development server
npm run web
# Production build
npm run build:production| Platform | Status | Build Command |
|---|---|---|
| Android | β Supported | npm run build:local:android |
| iOS | β Supported | npm run build:local:ios |
| Web | β Supported | npm run build:production |
Create a .env.local file:
# Self Protocol Configuration
SELF_PROTOCOL_API_KEY=your_api_key
SELF_PROTOCOL_BASE_URL=https://api.selfprotocol.com
# Blockchain Configuration
BLOCKCHAIN_NETWORK=polygon_mumbai
RPC_URL=https://polygon-mumbai.g.alchemy.com/v2/your_key
PRIVATE_KEY=your_private_key
# IPFS Configuration
IPFS_GATEWAY_URL=https://ipfs.io/ipfs/
PINATA_API_KEY=your_pinata_key
PINATA_SECRET_KEY=your_pinata_secret
# App Configuration
APP_NAME=zkLove
APP_VERSION=1.0.0- Get API Key: Sign up at Self Protocol
- Configure Verification: Set up your verification requirements
- Test Integration: Use the provided test scripts
zklove/
βββ app/ # Expo Router pages
βββ components/ # React components
β βββ dating/ # Dating-specific components
β βββ verification/ # Identity verification components
β βββ ui/ # Reusable UI components
βββ services/ # Business logic services
βββ types/ # TypeScript type definitions
βββ circuits/ # Zero-knowledge proof circuits
βββ contracts/ # Smart contracts
βββ android/ # Android native project
βββ assets/ # Images and static assets
βββ scripts/ # Build and deployment scripts
- Identity Verification: Prove identity without revealing personal data
- Age Verification: Confirm age without exposing birth date
- Country Verification: Verify nationality without location data
- Sybil Resistance: Prevent duplicate accounts using nullifier hashes
- Local Processing: Biometric data processed locally
- Encrypted Storage: All sensitive data encrypted at rest
- No Data Collection: No personal information stored on servers
- Selective Disclosure: Users control what information to share
# Run linting
npm run lint
# Test verification flow
npm run test-verification
# Clear cache
npm run clear-cache# Android APK
npm run build:local:android:release
# iOS App
npm run build:local:ios
# Web App
npm run build:production# Deploy to EAS (optional)
npm run build:android
npm run build:iosWe welcome contributions! Please see our Contributing Guidelines for details.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Made with β€οΈ for privacy-first connections on Web3.
zkLove - Where privacy meets passion π