ETHGlobal New Delhi 2024 Submission
Building trust for developers through privacy-preserving identity verification and intelligent voting mechanics. Finally, a reputation system that respects your privacy while fostering genuine collaboration.
Developer reputation today is broken. Your GitHub stars don't translate to real opportunities, your credentials are scattered across platforms, and there's no way to prove your skills without compromising privacy. Plus, traditional systems ignore cultural context and offer zero monetization.
HackerRep fixes this with three key innovations:
๐ Privacy-First Identity:
- Zero-Knowledge Credentials: Prove qualifications without exposing documents
- Selective Disclosure: Share only necessary demographic markers
- On-Chain Verification: Tamper-proof reputation without personal data exposure
๐ Cultural Intelligence:
- Regional Focus: Indian nationality requirement for authentic local ecosystem
- Mentorship Incentives: Age-based voting power encourages senior-junior guidance
- Gender Diversity: 2ร voting power for cross-gender interactions promotes inclusion
๐ฐ Monetizable Reputation:
- Boosted Paid Voting: Users can pay to amplify their votes (receivers get share)
- Reputation Staking: Stake reputation for higher voting power
- Skill Verification Marketplace: Monetize verified credentials and expertise
- Mentorship Rewards: Earn tokens for guiding junior developers
// zkPDF Integration for Credential Verification
const verifyDegree = async (degreePDF) => {
const zkProof = await generateZKProof(degreePDF, {
extractFields: ['university', 'degree', 'graduation_year'],
preservePrivacy: true
});
// Earn reputation points without exposing transcript details
return { reputationBoost: 150, verificationLevel: 'Academic' };
};Value: Universities, employers, and clients can verify qualifications instantly without accessing sensitive documents.
// Advanced Voting Power Calculation
const calculateVotingPower = (voter, target) => {
let power = 10; // Base power
// Age-based mentorship incentives
if (voter.age > target.age + 5) power = 15; // Senior mentoring junior
if (voter.age < target.age - 5) power = 7; // Junior feedback to senior
// Cross-gender collaboration bonus
if (voter.gender !== target.gender) power *= 2;
return power; // Range: 7-30 points
};Value: Creates natural mentorship dynamics and promotes gender diversity in tech communities.
// Boosted Paid Voting System (Future Implementation)
const submitBoostedVote = async (voterWallet, targetWallet, paymentAmount) => {
const basePower = calculateVotingPower(voter, target);
const boostedPower = basePower * (1 + paymentAmount / 100); // Payment amplifies vote
// Revenue sharing: 70% to receiver, 20% to protocol, 10% to validators
const receiverShare = paymentAmount * 0.7;
const protocolFee = paymentAmount * 0.2;
const validatorReward = paymentAmount * 0.1;
return { votingPower: boostedPower, earnings: receiverShare };
};Value: Developers can monetize their reputation while voters can amplify important endorsements.
- ๐ธ Boosted Paid Voting: Pay to amplify votes, receivers earn revenue share
- ๐ฏ Reputation Staking: Stake reputation tokens for higher voting power
- ๐ Premium Verification: Fast-track verification for professional credentials
- ๐ Achievement NFTs: Mint reputation milestones as tradeable NFTs
- ๐ Skill Verification Marketplace: Sell verified expertise to clients
- ๐จโ๐ซ Mentorship Platform: Paid mentoring with reputation-based matching
- ๐ค Collaboration Matching: AI-powered team formation based on complementary skills
- ๐ Reputation Analytics: Advanced insights and portfolio management
- ๐ Regional Expansion: Support for other countries/regions with localized voting
- ๐ข Enterprise Integration: Corporate reputation systems for HR and talent acquisition
- ๐ University Partnerships: Direct integration with academic institutions
- ๐ Cross-Chain Reputation: Reputation portability across multiple blockchains
- ๐ฎ Gamification Layer: Reputation-based challenges and competitions
- ๐๏ธ Community Governance: Reputation-weighted voting for platform decisions
- ๐ฑ Mobile App: Native mobile experience with NFC verification
- ๐ค AI Reputation Assistant: Personalized career guidance based on reputation data
๐ฅ Healthcare: Verify medical credentials while preserving patient privacy ๐๏ธ Government: Citizen reputation for public service allocation ๐ Education: Student achievement verification across institutions ๐ผ Corporate: Employee skill verification and internal reputation systems ๐ช E-commerce: Seller reputation with privacy-preserving transaction history ๐จ Creative Industries: Artist/creator reputation with portfolio verification
The following sections demonstrate how our real-world vision is implemented through cutting-edge Web3 technologies, targeting three major hackathon tracks with a total prize pool of $20,500.
โ Full Self Protocol Onchain SDK Integration on Celo Mainnet
- Custom Smart Contract:
HackerRepSelfVerification.soldeployed at0xF54C11EbC39905dd88496E098CDEeC565F79a696 - Contract Verification: Verified on Celoscan with full source code transparency
โ Innovative Demographic Data Utilization
- Real ZK Proof Verification: Extracts
nationality,gender, andagefrom Aadhaar/Passport proofs - Multi-Layer Data Usage: Each demographic field serves a unique purpose in our voting algorithm
- Privacy-Preserving Extraction: Only essential demographic markers stored on-chain
โ Advanced Use Case - Culturally-Aware Voting System
// Custom verification hook extracts demographic data
function customVerificationHook(
ISelfVerificationRoot.GenericDiscloseOutputV2 memory output,
bytes memory userData
) internal override {
// Extract nationality for voting eligibility
string memory nationality = extractNationality(output.disclosedData);
// Extract age for seniority-based voting power
uint256 age = extractAge(output.disclosedData);
// Extract gender for cross-gender collaboration incentives
string memory gender = extractGender(output.disclosedData);
// Store demographics for advanced voting logic
userDemographics[user] = UserDemographics({
nationality: nationality,
gender: gender,
age: age,
isVerified: true,
verifiedAt: block.timestamp
});
}โ Technical Excellence
- Event Listeners: Real-time synchronization between contract and backend
- Robust Architecture: Polling-based event system handles network instability
- Production Deployment: Live on Celo mainnet with comprehensive testing
๐ฏ Why This Wins the Self Protocol Track:
๐ Technical Excellence:
- Advanced SDK Integration: Custom
HackerRepSelfVerificationcontract with sophisticated demographic extraction - Production Deployment: Live on Celo mainnet with verified contract code
- Robust Architecture: Event listeners, polling systems, and real-time synchronization
- Aadhaar Support: Full support for India's national ID system (newly launched by Self Protocol)
๐ก Innovation Beyond Basic Verification:
- Multi-Purpose Data Usage: Each demographic field (nationality, age, gender) serves unique algorithmic purposes
- Cultural Intelligence: First blockchain reputation system with nationality-aware mechanics
- Social Engineering: Uses ZK-verified demographics to solve real diversity/mentorship problems
- Scalable Framework: Can be extended to other regions and use cases
๐ Real-World Impact:
- Addresses Gender Gap: Actively incentivizes male-female professional interactions in tech
- Promotes Mentorship: Age-based voting power creates natural senior-junior guidance
- Prevents Sybil Attacks: ZK verification ensures authentic demographic data
- Local Ecosystem Focus: Indian nationality requirement builds genuine regional developer community
๐ฌ Technical Depth:
- Custom Solidity Implementation: Not just using basic Self SDK - built sophisticated extraction logic
- Privacy-Preserving: Only extracts essential demographic markers, no personal data
- Event-Driven Architecture: Real-time contract-to-database synchronization
- Production Testing: Comprehensive testing across all voting scenarios with real demographic data
โ zkPDF Stack Integration for ZK Proof Generation
- Academic Credential Verification: Users upload degree certificates, transcripts as PDFs
- Professional License Proofs: Generate ZK proofs from professional certifications
- Client-Side Privacy: All proof generation happens without exposing document contents
- Remote Proving: Utilizes zkPDF prover network - no full server deployment required
โ Unified ZK Registry System Implementation
// Unified credential verification across multiple document types
const generateZKProof = async (documentType: 'degree' | 'certification' | 'transcript') => {
// zkPDF integration for document proof generation
const zkProof = await zkPDFProver.generateProof({
document: uploadedPDF,
proofType: documentType,
extractFields: ['institution', 'degree', 'graduation_year'],
preservePrivacy: true // Only extract necessary fields
});
// Store ZK proof hash on-chain for verification
await updateUserCredentials(walletAddress, {
[`${documentType}_proof`]: zkProof.proofHash,
[`${documentType}_score`]: calculateCredentialScore(zkProof.extractedData)
});
};โ Multi-Format Document Support
- PDF Certificates: Degree certificates, professional licenses
- Academic Transcripts: Grade verification without exposing specific courses
- Professional Certifications: Industry certifications (AWS, Google Cloud, etc.)
- Unified Scoring: All document types contribute to unified reputation score
๐ฏ Why This Wins the Ethereum Foundation Track:
๐ง Infrastructure Excellence:
- Client-Side Privacy: All sensitive document processing happens locally
- Unified Registry: Single system handles degrees, certifications, transcripts
- zkPDF Integration: Proper use of zkPDF stack without server deployment
- Scalable Architecture: Can handle multiple document formats and institutions
๐ก๏ธ Privacy Innovation:
- Selective Disclosure: Only extract necessary fields (institution, degree type, year)
- Document Privacy: Original PDFs never leave user's device
- ZK Proof Verification: On-chain verification without exposing document contents
- Professional Qualification Sharing: Prove credentials without revealing sensitive details
๐ Real-World Application:
- Academic Verification: Universities can verify degrees without accessing full transcripts
- Professional Licensing: Employers verify certifications without seeing personal details
- Reputation Building: Academic achievements contribute to blockchain reputation
- Anti-Fraud: ZK proofs prevent fake credential claims
- โ ENS-First User Experience: Primary identity system throughout the platform
- โ Dynamic ENS Resolution: Automatic ENS name fetching and display prioritization
- โ ENS-Based Search: Users can search by ENS names across the platform
- โ Portable Identity: ENS names carry reputation across different features
- โ Social Layer: ENS integration in voting, leaderboards, and connections
- โ Fallback System: Graceful degradation to wallet addresses when ENS unavailable
HackerRep is a Multi-Track Advanced Reputation System that transforms the vision above into reality through:
๐๏ธ Layer 1 - Privacy-Preserving Credentials (Ethereum Foundation Track):
- zkPDF Integration: Generate ZK proofs from academic PDFs without exposing sensitive data
- Unified Registry: Single system for degrees, certifications, professional licenses
- Client-Side Privacy: Document processing happens locally, only proof hashes stored on-chain
๐ก๏ธ Layer 2 - Cultural Intelligence Engine (Self Protocol Track):
- Demographic Extraction: ZK-verified nationality, age, gender from Aadhaar/Passport
- Voting Eligibility: Indian nationality requirement creates authentic regional ecosystem
- Social Mechanics: Age and gender data power sophisticated voting algorithms
๐ Layer 3 - Decentralized Identity & Monetization (ENS Track):
- ENS-First Architecture: Reputation tied to human-readable names, not wallet addresses
- Monetizable Voting: Future paid voting system with revenue sharing
- Portable Reputation: Identity and achievements follow ENS names across platforms
Unlike projects that implement single features, HackerRep creates synergistic value where each layer enhances the others:
// Example: Complete User Verification Flow
const completeVerification = async (user) => {
// Layer 1: Verify academic credentials with zkPDF
const academicProof = await verifyDegree(user.degreePDF);
// Layer 2: Extract demographics with Self Protocol
const demographics = await selfVerify(user.aadhaarProof);
// Layer 3: Create ENS-based reputation profile
const reputationProfile = await createENSProfile({
ensName: user.ensName,
academicScore: academicProof.score,
demographics: demographics,
votingPower: calculateInitialVotingPower(demographics)
});
return reputationProfile; // Complete, verifiable, monetizable identity
};๐ฏ Result: A developer can prove their IIT degree (Layer 1), verify their Indian nationality and demographics (Layer 2), and build a monetizable reputation under their ENS name (Layer 3) - all while preserving privacy and preventing gaming.
Our revolutionary voting system leverages Self Protocol's verified demographic data to create a culturally-intelligent reputation mechanism:
๐ฏ Core Innovation: Three-Tier Demographic Utilization
1. ๐ฎ๐ณ Nationality as Gatekeeper (Eligibility Layer)
// Only Indian developers can vote - ensures cultural authenticity
const canVote = user.nationality === 'INDIA' && user.self_verified === true;- Purpose: Creates focused Indian developer ecosystem
- Benefit: Prevents vote manipulation from outside regions
- Hackathon Relevance: ETHGlobal New Delhi - local developer focus
2. ๐ฅ Age as Seniority Indicator (Power Calculation Layer)
// Age difference > 5 years creates mentor-mentee dynamics
if (Math.abs(voterAge - votedForAge) > 5) {
const seniorPower = 15; // Experienced developers
const juniorPower = 7; // Emerging developers
// Respects experience while empowering newcomers
}- Purpose: Natural mentorship hierarchy in tech community
- Benefit: Senior developers' endorsements carry more weight
- Innovation: Balances experience with fresh perspectives
3. โ๏ธ Gender as Diversity Catalyst (Multiplier Layer)
// Cross-gender voting gets 2ร power - promotes inclusion
if (voterGender !== votedForGender && bothAreVerified) {
finalVotingPower *= 2; // Incentivizes diverse collaboration
}- Purpose: Actively promotes gender diversity in tech
- Benefit: Male-female professional interactions get amplified
- Social Impact: Addresses gender imbalance in blockchain/tech
๐ Unique Voting Power Combinations:
- Senior Male โ Junior Female: 30 points (15 ร 2) - Maximum mentorship impact
- Junior Female โ Senior Male: 14 points (7 ร 2) - Empowered reverse feedback
- Same Gender, Age Advantage: 15 points - Traditional seniority respect
- Cross-Gender, Similar Age: 20 points (10 ร 2) - Peer collaboration bonus
- Similar Demographics: 10 points - Base democratic power
๐ฏ Real-World Benefits:
- Mentorship Incentives: Senior developers encouraged to guide juniors
- Gender Inclusion: Cross-gender interactions actively rewarded
- Cultural Authenticity: Indian nationality ensures genuine local participation
- Anti-Gaming: ZK verification prevents demographic spoofing
- Balanced Power: No single demographic dominates the system
// HackerRepSelfVerification.sol - Custom Self Protocol Integration
contract HackerRepSelfVerification is SelfVerificationRoot {
struct UserDemographics {
string nationality;
string gender;
uint256 age;
bool isVerified;
uint256 verifiedAt;
}
function customVerificationHook(
ISelfVerificationRoot.GenericDiscloseOutputV2 memory output,
bytes memory userData
) internal override {
// Extract real demographic data from ZK proof
// Store on-chain for voting power calculations
}
}Contract Address: 0xF54C11EbC39905dd88496E098CDEeC565F79a696 (Celo Mainnet)
function calculateVotingPower(
voterAge: number,
voterReputation: number,
voterGender: string,
votedForAge: number,
votedForReputation: number,
votedForGender: string
): { power: number, breakdown: string } {
let basePower = 10;
// Age/reputation advantage system
const ageDiff = Math.abs(voterAge - votedForAge);
const repDiff = Math.abs(voterReputation - votedForReputation);
if (repDiff > 50) {
basePower = voterReputation > votedForReputation ? 15 : 7;
} else if (ageDiff > 5) {
basePower = voterAge > votedForAge ? 15 : 7;
}
// Cross-gender 2x multiplier
const isCrossGender = voterGender !== votedForGender &&
['MALE', 'FEMALE'].includes(voterGender) &&
['MALE', 'FEMALE'].includes(votedForGender);
return {
power: isCrossGender ? basePower * 2 : basePower,
breakdown: `${basePower}${isCrossGender ? ' ร 2 cross-gender' : ''}`
};
}Our implementation goes far beyond basic identity verification - we extract and utilize demographic data from Self Protocol's ZK proofs to create a sophisticated, culturally-aware reputation system:
๐ Data Extraction Process:
- Aadhaar/Passport ZK Verification: Users scan QR code with Self app
- On-chain Proof Verification: Custom
HackerRepSelfVerificationcontract validates ZK proof - Demographic Data Extraction: Contract extracts
nationality,gender, andagefrom verified proof - Privacy Preservation: Only essential demographic markers stored - no personal identifiers
๐ฎ๐ณ Nationality as Voting Eligibility Barrier:
- Indian-Only Voting: Only users with verified
nationality: "INDIA"can cast votes - Sybil Resistance: Self Protocol's ZK verification prevents fake nationality claims
- Cultural Context: Focuses on Indian developer ecosystem for hackathon relevance
- Scalable Framework: Can be extended to other regions/nationalities
โก Age & Gender for Advanced Voting Mechanics:
Age-Based Seniority System:
// Age difference creates natural mentorship hierarchy
if (Math.abs(voterAge - votedForAge) > 5) {
// Senior developers (higher age) get 15 voting power
// Junior developers (lower age) get 7 voting power
// Creates respect for experience while empowering newcomers
}Cross-Gender Collaboration Incentives:
// 2ร voting power for male-female interactions
if (voterGender !== votedForGender &&
['MALE', 'FEMALE'].includes(voterGender)) {
votingPower *= 2; // Encourages diverse collaboration
}๐ Unique Benefits This Provides:
- Cultural Authenticity: Indian nationality requirement ensures genuine local developer participation
- Mentorship Incentives: Age-based voting power encourages senior-junior interactions
- Gender Diversity: Cross-gender voting bonus promotes inclusive developer communities
- Anti-Gaming: ZK verification prevents demographic spoofing
- Privacy-First: Demographic data extracted without exposing personal information
- Dynamic Power Calculation: Voting strength based on age, reputation, and gender differences
- Cross-Gender Incentives: 2ร voting power for male-female interactions
- Seniority Advantages: Age and reputation differences create voting hierarchies
- Permanent Impact: All votes permanently affect reputation scores
- Anti-Gaming: Self Protocol verification prevents sybil attacks
- Level 1: Basic ZK-verified reputation (GitHub + Academic)
- Level 3: Self Protocol verified users with voting-based rankings
- ENS Integration: Primary display names with fallback to wallet addresses
- Real-time Updates: Leaderboards reflect voting activity immediately
- Primary Identity: ENS names prioritized throughout platform
- Search Integration: Find users by ENS names
- Social Features: ENS-based connections and interactions
- Portable Reputation: Identity and reputation tied to ENS names
- Connect wallet and register
- Link GitHub for code reputation
- Add academic credentials
- Generate Level 1 ZK-verified reputation
- Click "Self Verify" in dashboard
- Scan QR code with Self app
- Complete Aadhaar/Passport verification
- Demographic data extracted and stored on-chain
- Voting eligibility activated (Indian nationality required)
- Browse leaderboard of verified users
- Vote with calculated power based on demographics
- Reputation permanently updated
- Rankings reflect voting-based reputation
- Next.js 14 with App Router
- TypeScript for type safety
- Tailwind CSS for styling
- Wagmi for wallet integration
- ENS SDK for name resolution
- Next.js API Routes
- Supabase PostgreSQL database
- Real-time Event Listeners for contract synchronization
- Celo Mainnet deployment
- Self Protocol SDK for demographic ZK verification
- zkPDF Stack for academic credential proof generation
- Custom Solidity Contract for demographic data handling
- Foundry for contract development and deployment
- Remote Proving Network for client-side privacy
- zkPDF Integration - Unified ZK registry system for academic credentials
- Client-Side Privacy - Document processing without server deployment
- Remote Proving - Utilizes zkPDF prover network for ZK proof generation
- Multi-Format Support - Handles degrees, certifications, transcripts
- Privacy Infrastructure - Selective disclosure without exposing document contents
- Implement Self onchain SDK - Custom contract deployed on Celo mainnet
- Proof needs to work - Full ZK verification flow functional
- Interesting use case - Advanced voting power based on demographic data
- Aadhaar support - Supports both Passport and Aadhaar verification
- Privacy preservation - Only necessary demographic data extracted
- Creative ENS integration - ENS-first identity system with social features
- Obvious product improvement - ENS makes user experience significantly better
- Functional demo - Full working implementation, not hardcoded values
- Open source code - Complete codebase available on GitHub
- HackerRepSelfVerification:
0xF54C11EbC39905dd88496E098CDEeC565F79a696(Celo Mainnet) - Verified on Celoscan: โ Contract verification complete
- Level 3 Leaderboard:
/api/leaderboard-level3 - Voting System:
/api/votes - Self Verification Sync:
/api/self/sync-verification - ENS User Search:
/api/users/search
โ
Cross-gender age disadvantage: 14 points (7 ร 2)
โ
Cross-gender age advantage: 30 points (15 ร 2)
โ
Same gender age advantage: 15 points
โ
Base power cross-gender: 20 points (10 ร 2)
โ
Reputation permanently affected by votes
โ
Leaderboard correctly ranks by voting-based reputation- โ 9 Self Protocol verified users in system
- โ Contract accessible and functional on Celo mainnet
- โ All API endpoints responding correctly
- โ ENS integration working across platform
- โ Event listeners synchronizing contract data
- Custom Self Protocol Integration: Beyond basic verification - extracts and uses demographic data for advanced logic
- Sophisticated Voting Algorithm: Multi-factor power calculation with cross-gender incentives
- Real-time Contract Synchronization: Polling-based event listeners for robust data sync
- ENS-First Architecture: Identity system built around ENS names with graceful fallbacks
- Cross-Gender Collaboration Incentives: 2ร voting power encourages diverse interactions
- Seniority-Based Hierarchy: Age and reputation create natural mentorship dynamics
- Privacy-Preserving Demographics: ZK proofs enable demographic-aware features without privacy loss
- Anti-Gaming Mechanisms: Self Protocol verification prevents sybil attacks
- Node.js 18+
- Supabase account
- Self Protocol app (iOS/Android)
- Celo wallet with CELO tokens
# Clone repository
git clone https://github.com/devhb1/hackerrep
cd hackerrep
# Install dependencies
npm install
# Setup environment variables
cp .env.example .env.local
# Add your Supabase URL, API keys, etc.
# Run database migrations
# Execute HACKERREP_COMPLETE_MIGRATION.sql in Supabase dashboard
# Start development server
npm run devHackerRep is a privacy-first reputation system for developers that combines zkPDF credential verification, Self Protocol identity, and ENS integration.
๏ฟฝ zkPDF Reputation System:
- Academic credential verification with zero-knowledge proofs
- GitHub contribution scoring with privacy preservation
- Unified reputation calculation based on verifiable achievements
๐ก๏ธ Self Protocol Integration:
- Demographic verification for India-only access
- Age and gender extraction for intelligent voting mechanics
- Privacy-preserving identity with selective disclosure
๐ ENS Identity Layer:
- ENS-first user interface with automatic name resolution
- Wallet-based authentication with ENS priority display
- Decentralized reputation tied to blockchain identity
Made with ๐ฅ by devhb