Skip to content

iamomm-hack/StellarID

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

36 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

StellarID Logo

StellarID

Verify once. Prove everywhere.

A decentralized identity verification platform where users verify once and prove everywhere using Zero-Knowledge Proofs β€” without revealing personal data.

⚫ Black Belt Features β€’ Live Demo β€’ How It Works β€’ Tech Stack β€’ Features β€’ Architecture β€’ Getting Started


⚫ Black Belt Advanced Features

Level 6 - Production Ready | These advanced Stellar features demonstrate production-grade implementation

πŸ’Έ Fee Sponsorship (Gasless Transactions)

Users never pay gas fees! StellarID sponsors all transaction costs using Stellar's fee bump mechanism.

Feature Description
Zero-cost UX Users mint credentials without holding XLM
Fee Bump Transactions Sponsor account covers network fees
Transparent Tracking All sponsored transactions logged

Live API Endpoints:

GET https://stellarid-api.onrender.com/api/v1/fee-sponsor/info
GET https://stellarid-api.onrender.com/api/v1/fee-sponsor/status
πŸ“¦ Sample Response (click to expand)
{
  "feature": "Fee Sponsorship (Gasless Transactions)",
  "description": "StellarID sponsors transaction fees so users never pay gas",
  "benefits": [
    "Zero transaction costs for users",
    "Seamless credential minting experience",
    "No XLM required in user wallet for operations"
  ],
  "howItWorks": [
    "1. User initiates credential mint or proof generation",
    "2. StellarID builds the transaction",
    "3. Fee sponsor account covers all network fees",
    "4. User receives credential without paying anything"
  ],
  "technicalDetails": {
    "method": "Stellar Fee Bump Transactions",
    "maxFeePerTx": "100000 stroops (0.01 XLM)"
  }
}

πŸ” Multi-Signature Credential Approval

High-value credentials require multiple party approval before issuance β€” like a joint bank account.

Feature Description
N-of-M Signatures Configurable threshold (2-of-3, 3-of-5, etc.)
Distributed Trust No single point of failure
Audit Trail All signatures recorded on Stellar blockchain

Use Cases:

  • 🏒 Corporate identity: HR + Manager approval
  • πŸŽ“ Academic credentials: University + Department
  • πŸ“œ Professional licenses: Board + Examiner

Live API Endpoints:

GET  https://stellarid-api.onrender.com/api/v1/multisig/info
POST https://stellarid-api.onrender.com/api/v1/multisig/request
POST https://stellarid-api.onrender.com/api/v1/multisig/sign/:requestId
GET  https://stellarid-api.onrender.com/api/v1/multisig/request/:requestId
GET  https://stellarid-api.onrender.com/api/v1/multisig/pending
πŸ“¦ Sample Response (click to expand)
{
  "feature": "Multi-Signature Credential Approval",
  "description": "High-value credentials require multiple party approval before issuance",
  "benefits": [
    "Enhanced security for sensitive credentials",
    "Distributed trust - no single point of failure",
    "Audit trail of all approvals",
    "Configurable threshold (2-of-3, 3-of-5, etc.)"
  ],
  "useCases": [
    "Corporate identity verification (HR + Manager approval)",
    "Academic credentials (University + Department)",
    "Professional licenses (Board + Examiner)",
    "High-value financial credentials"
  ],
  "howItWorks": [
    "1. Initiator creates credential request with list of required signers",
    "2. Each signer reviews and signs the request",
    "3. When threshold is met, credential is automatically issued",
    "4. All signatures are recorded on Stellar blockchain"
  ]
}

⚑ Black Belt β€” Live Demo

Resource Link
🌐 Live App StellarID Live App
πŸ“Š User Feedback (30+ Users) Feedback Spreadsheet (Google Sheets)
πŸ” Testnet Explorer Stellar Expert
🐦 Community Post Twitter/X @omtdotcmd
πŸ” Security Checklist SECURITY.md
πŸ–₯️ Backend API https://stellarid-api.onrender.com

πŸ“Š Black Belt Checklist

RequirementStatusDetails
30+ active usersβœ…View 30+ User Wallet Sheet
Metrics dashboardβœ…Admin Dashboard β€” real-time analytics
Security checklistβœ…View SECURITY.md β€” JWT, Helmet.js, Rate Limiting, SQL injection prevention
Monitoring activeβœ…See Monitoring Section below
Data indexingβœ…See Data Indexing Section below
Full documentationβœ…This README + API Docs
Community contributionβœ…Twitter/X Post
Advanced Feature 1βœ…πŸ’Έ Fee Sponsorship (Gasless Transactions)
Advanced Feature 2βœ…πŸ” Multi-Signature Credential Approval
Advanced Feature 3βœ…πŸ”— LinkedIn OAuth Integration (Professional Identity)
30+ meaningful commitsβœ…View Commit History

πŸ“‘ Community Contribution

Posted about StellarID on Twitter/X to spread awareness about decentralized identity on Stellar.

πŸ”— Twitter/X Profile: https://x.com/omtdotcmd


πŸ–₯️ Monitoring Dashboard

StellarID uses Render's built-in logging and monitoring for production observability:

Metric Tool Details
Server Logs Render Dashboard Real-time request/error logs
Uptime Monitoring Render Health Check /health endpoint pinged every 30s
API Metrics Admin Dashboard DAU, credentials issued, proofs generated
Error Tracking Console + Render Logs All exceptions caught and logged

πŸ“Έ Screenshot: (Paste your Render logs screenshot here)

Health Check Endpoint (Live):

GET https://stellarid-api.onrender.com/health

πŸ“Š Data Indexing

StellarID indexes identity data across 3 layers:

1. PostgreSQL (Primary Database)

All credentials, users, proofs, and issuers stored with optimized indexes:

CREATE INDEX idx_credentials_user_id ON credentials(user_id);
CREATE INDEX idx_credentials_type ON credentials(credential_type);
CREATE INDEX idx_proofs_token ON proofs(share_token);
CREATE INDEX idx_users_stellar_address ON users(stellar_address);

2. Stellar Horizon API (Blockchain Indexing)

All on-chain credential transactions are queryable via Stellar Horizon:

# Admin wallet transactions
GET https://horizon-testnet.stellar.org/accounts/GBMQJ3G5LDWODZKUUQWGGT6NIKMM7KL5NLHVIG53WLNLWB27Z4AKH3F4

# Live Transaction History
GET https://horizon-testnet.stellar.org/accounts/GBMQJ3G5LDWODZKUUQWGGT6NIKMM7KL5NLHVIG53WLNLWB27Z4AKH3F4/transactions

# Operations (credential mints)
GET https://horizon-testnet.stellar.org/accounts/GBMQJ3G5LDWODZKUUQWGGT6NIKMM7KL5NLHVIG53WLNLWB27Z4AKH3F4/operations

πŸ”— View on Stellar Expert Explorer

3. IPFS (Decentralized Metadata)

Credential claim data is stored on IPFS via Pinata β€” content-addressed and tamper-proof.


πŸ”΅ Blue Belt Features (Previous Level)

⚑ Blue Belt β€” Live Demo

Resource Link
🌐 Live App StellarID Live App
πŸ“Š User Feedback (5+ Users) Feedback Spreadsheet (Google Sheets)
πŸ” Testnet Explorer Stellar Expert
πŸ–₯️ Backend API https://stellarid-api.onrender.com

πŸ”₯ The Problem

Every time you sign up for a service, you hand over your name, address, date of birth, income, government ID β€” to a database you don't control.

Problem Reality
Repeated KYC Users verify identity 10+ times across platforms. Same documents. Same friction. Every time.
Data Breaches 4.5 billion records exposed in 2024 alone. Your personal data is sitting in 50+ company databases.
No Ownership You don't own your identity. Platforms do. They sell it, lose it, or revoke it without consent.

The internet has a login system. It doesn't have an identity system.


πŸ’‘ The Solution

StellarID flips the model. Instead of sharing raw data, you generate a zero-knowledge proof β€” a cryptographic guarantee that something is true, without revealing the underlying data.

Before StellarID With StellarID
Share full passport to prove age Prove "I am over 18" β€” nothing else
Upload bank statements for income Prove "Income > $50K" β€” no numbers exposed
Re-verify on every new platform Verify once, prove anywhere, forever
Platform owns your data You own your identity

One verification. Infinite proofs. Zero data exposure.



πŸ“Έ Screenshots

Landing Page β€” Verify once. Prove everywhere.
StellarID Landing Page

Dashboard β€” Credential management & ZK proof generation
Dashboard

Admin Analytics β€” Real-time platform metrics & activity feed
Admin Dashboard

Verification Page β€” Public proof verification with badge
Verification Page

API Documentation β€” Interactive docs with code examples
API Docs


🧠 How It Works

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Connect    │────▢│   Verify     │────▢│   Get NFT       β”‚
β”‚   Wallet     β”‚     β”‚   Identity   β”‚     β”‚   Credential    β”‚
β”‚  (Freighter) β”‚     β”‚  (GitHub/KYC)β”‚     β”‚  (On-chain)     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                                   β”‚
                    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”
                    β”‚   Share      │◀────│   Generate       β”‚
                    β”‚   Proof      β”‚     β”‚   ZK Proof       β”‚
                    β”‚  (Link/PDF)  β”‚     β”‚  (Client-side)   β”‚
                    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

5 steps. Zero personal data transmitted. Fully verifiable on-chain.

  1. Connect β€” User connects their Stellar wallet via Freighter
  2. Verify β€” Complete identity verification through an issuer (e.g., GitHub OAuth)
  3. Receive β€” Get an NFT-based credential minted on Stellar (Soroban)
  4. Prove β€” Generate a ZK proof client-side (never sends raw data anywhere)
  5. Share β€” Share proof via link, PDF with QR code, or embeddable badge

πŸ› οΈ Tech Stack

Layer Technology Purpose
Frontend Next.js 14, React 18, TypeScript App shell, SSR, routing
Styling Tailwind CSS Utility-first responsive design
Backend Node.js, Express, TypeScript REST API, business logic
Database PostgreSQL Users, credentials, proofs, issuers
Cache Redis Session cache, analytics caching
Blockchain Stellar + Soroban Smart contracts, credential NFTs
ZK Proofs Circom + snarkjs ZK-SNARK circuit compilation & proving
Storage IPFS (Pinata) Decentralized credential metadata
Auth JWT + Stellar Wallet Wallet-based authentication
DevOps Docker, GitHub Actions CI/CD Containerization, automated testing

πŸ”₯ Key Features

πŸͺͺ Identity & Credentials

  • Wallet-based login β€” No passwords. Connect with Freighter wallet
  • NFT credentials β€” Verifiable on-chain credentials minted as Soroban NFTs
  • GitHub OAuth issuer β€” Verify developer identity via GitHub
  • Multi-type credentials β€” Age, income, residency, membership, and more

πŸ” Privacy & Proofs

  • ZK proof generation β€” Client-side proving with Circom/snarkjs (age, income, residency, membership circuits)
  • Selective disclosure β€” Prove specific claims without revealing underlying data
  • Downloadable PDF Certificates β€” Export verification as beautifully rendered PDFs containing embedded Scan-to-Verify QR codes (via pdfkit & qr-image)
  • Shareable verification β€” Public link for anyone to verify a proof's authenticity
  • Verification badge β€” βœ… VERIFIED or ❌ REVOKED status displayed publicly

πŸ›‘οΈ Security & Governance

  • Revocation system β€” On-chain credential revocation by issuers
  • Expiry management β€” Automatic credential expiry with cron enforcement
  • Admin analytics dashboard β€” Real-time platform metrics, 24h activity feed, top issuers
  • Rate limiting β€” API protection against abuse
  • Role-based access β€” Admin/user role separation

πŸ“‘ Integration

  • REST API β€” Full API for third-party verification integration
  • Modern docs β€” Interactive API documentation with code examples
  • Docker-ready β€” One-command deployment with Docker Compose

πŸš€ Advanced Features (Black Belt)

πŸ’Έ Fee Sponsorship (Gasless Transactions)

Users never pay gas fees! StellarID sponsors all transaction costs using Stellar's fee bump mechanism.

Feature Description
Zero-cost UX Users mint credentials without holding XLM
Fee Bump Transactions Sponsor account covers network fees
Transparent Tracking All sponsored transactions logged
# Check sponsor status
GET /api/v1/fee-sponsor/status

# Response
{
  "sponsor": {
    "address": "G...",
    "balance": "1000 XLM",
    "canSponsor": true,
    "transactionsRemaining": 100000
  }
}

πŸ” Multi-Signature Credential Approval

High-value credentials require multiple party approval before issuance.

Feature Description
N-of-M Signatures Configurable threshold (2-of-3, 3-of-5, etc.)
Distributed Trust No single point of failure
Audit Trail All signatures recorded on Stellar

Use Cases:

  • Corporate identity: HR + Manager approval
  • Academic credentials: University + Department
  • Professional licenses: Board + Examiner
# Create multi-sig request
POST /api/v1/multisig/request
{
  "credentialType": "corporate_identity",
  "requiredSigners": ["G...HR", "G...MANAGER"],
  "threshold": 2
}

# Sign request
POST /api/v1/multisig/sign/:requestId
{
  "signature": "..."
}

πŸ“‘ API Reference

Full REST API for programmatic access:

Method Endpoint Description Auth
POST /api/v1/auth/connect Connect wallet & get JWT β€”
GET /api/v1/auth/me Get current user profile πŸ” JWT
POST /api/v1/credentials Issue a new credential πŸ” JWT
GET /api/v1/credentials/my List user's credentials πŸ” JWT
POST /api/v1/verify Submit verification request πŸ” JWT
POST /api/v1/proofs Create shareable proof record πŸ” JWT
GET /api/v1/proofs/:token Public proof verification β€”
GET /api/v1/proofs/:token/pdf Download proof PDF β€”
GET /api/v1/issuers List registered issuers β€”
GET /api/v1/admin/stats Platform analytics πŸ” Admin
GET /api/v1/admin/activity Last 24h activity πŸ” Admin
GET /api/v1/admin/chart-data 30-day trend data πŸ” Admin
GET /api/v1/admin/top-issuers Top issuers by volume πŸ” Admin
GET /api/v1/fee-sponsor/status Fee sponsor account status β€”
GET /api/v1/fee-sponsor/info Fee sponsorship feature info β€”
POST /api/v1/fee-sponsor/request Request fee sponsorship πŸ” JWT
POST /api/v1/multisig/request Create multi-sig credential request πŸ” JWT
POST /api/v1/multisig/sign/:id Add signature to request πŸ” JWT
GET /api/v1/multisig/request/:id Get multi-sig request status πŸ” JWT
GET /api/v1/multisig/pending List pending requests πŸ” JWT
GET /api/v1/multisig/info Multi-sig feature info β€”

Full interactive docs available at /docs route.


⚑ Performance

Metric Value Notes
ZK Proof Generation ~0.87s Client-side, no server round-trip
API Response (cached) <100ms Redis-backed analytics queries
API Response (uncached) <300ms PostgreSQL with indexed queries
Contract Deployment ~5s Soroban testnet via Stellar CLI
Frontend Build ~8s Next.js 14 optimized production build
WASM Contract Size 12–17 KB Optimized with opt-level = "z"
PDF Generation <500ms Server-side with pdfkit + QR code

πŸ“Š Admin Dashboard & Proof System

Analytics Panel

A full SaaS-style admin dashboard showing real-time platform health:

Metric Description
Total Credentials All credentials issued across the platform
Total Proofs ZK proofs generated and verified
Active Users Registered wallet addresses
Success Rate Verification success percentage
30-Day Trend Interactive area chart (Recharts) with proofs + credentials
Last 24h Activity Real-time feed of recent verifications and issuances
Top Issuers Ranked table of most active credential issuers

Proof System

Feature How It Works
Generate Proof Client-side ZK-SNARK computation using snarkjs
Download PDF Generates a branded cryptographic certificate on-the-fly (pdfkit) with dynamic scan-to-verify QR codes (qr-image)
Share Link Public /verify/{token} page β€” anyone can verify the proof
Badge Display Green VERIFIED βœ… or Red REVOKED ❌ with status details

πŸ”— Smart Contracts (Stellar Testnet)

Three Soroban smart contracts deployed on Stellar Testnet:

Contract Purpose Contract ID
Credential NFT Mint, transfer, validate credential NFTs CBIO5S7UB6JVO337KTMHZPTRSXQLNPQPDAMCH57MBI6N2NDC4WWO3RYX
Revocation Registry On-chain credential revocation by issuers CDRPLFWJLBFX7O552DK4P5QUYXP2ZCUVLNEICLHWVTPVSL7WWXU5PRL3
Disclosure Contract Selective disclosure verification records CDRUH5UI7HSKRXWB3BOOT5CL5V7GWRYQ25AAOA3OLTYZYWRNA7JLZ4U2
# Verify on Stellar Explorer
https://stellar.expert/explorer/testnet/contract/CBIO5S7UB6JVO337KTMHZPTRSXQLNPQPDAMCH57MBI6N2NDC4WWO3RYX
https://stellar.expert/explorer/testnet/contract/CDRPLFWJLBFX7O552DK4P5QUYXP2ZCUVLNEICLHWVTPVSL7WWXU5PRL3
https://stellar.expert/explorer/testnet/contract/CDRUH5UI7HSKRXWB3BOOT5CL5V7GWRYQ25AAOA3OLTYZYWRNA7JLZ4U2

Contract Functions:

Credential NFT Revocation Registry Disclosure Contract
initialize initialize initialize
mint_credential revoke verify_and_record
get_credential is_revoked get_verification
is_valid get_revocation_record get_verification_history
revoke get_revocation_list
transfer
register_issuer
is_registered_issuer
get_owner_credentials

πŸ§ͺ Testnet Wallets

The following testnet wallets were used during development and testing:

Role Stellar Address
Admin GBMQJ3G5LDWODZKUUQWGGT6NIKMM7KL5NLHVIG53WLNLWB27Z4AKH3F4
Test User 1 (Satish) GDZWLHG6WBRYIGWE2JXJRI4LTXLWQSTBCSXK3XB6HLB2QOTS4DNXDSKP
Test User 2 (Mufti) GA5RKOAUAVEA5POB4HKI2HCIZ3K67SZYLUW5SOACOAKCNDSM4XLC5BPR
Test User 3 (Amit) GCUOCLOPD3I7ECINEXFOJVGFQFNJILYW26BERBCCQBQ7WHJMICHR2WPM
Test User 4 (Rajdeep) GB2CC6D3E3SXRJUPNJ43WGMFFYEN5CNP6NRY5L2S7NUDLEAZW5IMRVLK
Test User 5 (Manjeet) GDLQU6LOKWYX2EUNU7PNOK3IT27MEQD7FDR7EDWTWYVZ66HXSNKGAMO6

All wallets funded via Stellar Friendbot


πŸ—οΈ Architecture

graph TB
    subgraph Client["πŸ–₯️ Client Layer"]
        User["User (Browser)"]
        Wallet["Freighter Wallet"]
    end

    subgraph Frontend["⚑ Frontend (Next.js 14)"]
        UI["React UI + Tailwind"]
        ZK["ZK Prover (snarkjs)"]
        Store["Zustand State"]
    end

    subgraph Backend["πŸ”§ Backend (Express API)"]
        API["REST API"]
        Auth["JWT Auth"]
        AdminAPI["Admin Analytics"]
        ProofAPI["Proof Service"]
        PDF["PDF Generator"]
    end

    subgraph Data["πŸ’Ύ Data Layer"]
        PG["PostgreSQL"]
        Redis["Redis Cache"]
        IPFS["IPFS (Pinata)"]
    end

    subgraph Blockchain["⛓️ Stellar Blockchain"]
        Soroban["Soroban Runtime"]
        NFT["Credential NFT"]
        Revoke["Revocation Registry"]
        Disclose["Disclosure Contract"]
    end

    User -->|Connect| Wallet
    User -->|Interact| UI
    UI -->|API Calls| API
    UI -->|Generate Proof| ZK
    Wallet -->|Sign TX| Soroban

    API -->|Authenticate| Auth
    API -->|Query| PG
    API -->|Cache| Redis
    API -->|Store Metadata| IPFS
    API -->|Invoke| Soroban

    AdminAPI -->|Aggregate| PG
    AdminAPI -->|Cache| Redis
    ProofAPI -->|Store| PG
    ProofAPI -->|Generate| PDF

    Soroban --> NFT
    Soroban --> Revoke
    Soroban --> Disclose

    style Client fill:#1a1a2e,stroke:#7c3aed,color:#fff
    style Frontend fill:#0d0030,stroke:#00e676,color:#fff
    style Backend fill:#12003a,stroke:#7c3aed,color:#fff
    style Data fill:#0a0020,stroke:#00e676,color:#fff
    style Blockchain fill:#08001a,stroke:#a855f7,color:#fff
Loading

βš™οΈ Environment Setup

Backend .env (Already Configured)

The backend is configured to run on port 5555. Key settings:

# Server
PORT=5555
NODE_ENV=development
FRONTEND_URL=http://localhost:3000

# Database
DATABASE_URL=postgresql://stellarid_user:stellarid_pass@localhost:5432/stellarid_db

# Cache
REDIS_URL=redis://localhost:6379

# Authentication
JWT_SECRET=stellarid_local_dev_secret
JWT_EXPIRES_IN=7d

# Stellar
STELLAR_NETWORK=testnet
STELLAR_HORIZON_URL=https://horizon-testnet.stellar.org
STELLAR_PASSPHRASE=Test SDF Network ; September 2015

# Smart Contracts
CREDENTIAL_NFT_CONTRACT_ID=CBIO5S7UB6JVO337KTMHZPTRSXQLNPQPDAMCH57MBI6N2NDC4WWO3RYX
REVOCATION_CONTRACT_ID=CDRPLFWJLBFX7O552DK4P5QUYXP2ZCUVLNEICLHWVTPVSL7WWXU5PRL3
DISCLOSURE_CONTRACT_ID=CDRUH5UI7HSKRXWB3BOOT5CL5V7GWRYQ25AAOA3OLTYZYWRNA7JLZ4U2

# IPFS (Pinata)
IPFS_API_URL=https://api.pinata.cloud
IPFS_PROJECT_ID=<your_pinata_project_id>
IPFS_PROJECT_SECRET=<your_pinata_secret>

# GitHub OAuth
GITHUB_CLIENT_ID=Ov23limO4e1dWIJmQf4c
GITHUB_CLIENT_SECRET=<configured>
GITHUB_CALLBACK_URL=http://localhost:5555/api/v1/github-issuer/callback

Frontend .env (Already Configured)

NEXT_PUBLIC_API_URL=http://localhost:5555/api/v1

βœ… Development environment is already configured. Both .env files contain the correct settings.


πŸš€ Getting Started

Prerequisites

  • Node.js β‰₯ 18
  • PostgreSQL β‰₯ 14 (running on port 5432)
  • Redis β‰₯ 7 (running on port 6379)
  • Freighter Wallet (Chrome Extension)

Note: Database and Redis are typically already running in the development environment.

Quick Start

# Clone the repository
git clone https://github.com/iamomm-hack/StellarID.git
cd StellarID

# Backend setup
cd backend
npm install
npm run dev                   # Starts on http://localhost:5555

# Frontend setup (new terminal)
cd frontend
npm install
npm run dev                   # Starts on http://localhost:3000

Using the App

  1. Open Frontend: http://localhost:3000
  2. Connect Wallet: Click "Connect Wallet" β†’ Approve in Freighter
  3. Link GitHub: Click "Get GitHub Credential" β†’ Authorize with GitHub
  4. Request Credentials: Click "Request Credential" β†’ Select issuer & type
  5. Generate Proof: Click "Generate ZK Proof" on any credential
  6. Logout: Click "Logout" in the GitHub greeting banner

Architecture


πŸ‘₯ User Validation & Onboarding

As part of our MVP phase, we conducted live testing with 5 real testnet users to validate our ZK-identity flow.

User Feedback Summary

πŸ“Š Live Feedback Spreadsheet (Google Sheets)

Date Name Wallet Address Email UX Rating Favorite Feature Bugs/Errors Future Improvement
Mar 22, 2026 Satish jalan GDZWLHG6WBRYIGWE2JXJRI4LTXLWQSTBCSXK3XB6HLB2QOTS4DNXDSKP satishjalan9163@gmail.com 5/5 ZK Proof PDF None On-chain ZK-proof verification via Soroban smart contracts
Mar 22, 2026 Mufti Armaan GA5RKOAUAVEA5POB4HKI2HCIZ3K67SZYLUW5SOACOAKCNDSM4XLC5BPR flamecyborg5@gmail.com 5/5 PDF with QR Code None A small guide or tooltip for Freighter wallet connection
Mar 23, 2026 Amit Shah GCUOCLOPD3I7ECINEXFOJVGFQFNJILYW26BERBCCQBQ7WHJMICHR2WPM as3131257@gmail.com 5/5 Speed of proof generation None None
Mar 23, 2026 Rajdeep Dutta GB2CC6D3E3SXRJUPNJ43WGMFFYEN5CNP6NRY5L2S7NUDLEAZW5IMRVLK rajdeepdutta393@gmail.com 5/5 PDF report with QR code β€” practical and satisfying Dashboard loading lag β€” thought page stopped working Smoother dashboard loading with animation
Mar 24, 2026 Manjeet s. GDLQU6LOKWYX2EUNU7PNOK3IT27MEQD7FDR7EDWTWYVZ66HXSNKGAMO6 manjeetsharma0796@gmail.com 4/5 ZK Concept None More credentials to store

βœ… Completed Iteration (Post-Feedback)

Issue Identified: User Rajdeep Dutta noted that the "Dashboard takes a bit of time while loading credentials. At first I thought the page had stopped working."

Improvement Applied: We immediately implemented a modern Skeleton Loading System across the Dashboard. Instead of a blank screen or a single spinner, users now see structured placeholders that indicate data is being fetched, significantly improving the perceived performance.

πŸ”— Improvement Commit: feat: add skeleton loaders to improve dashboard UX


πŸ“ˆ Future Roadmap & Evolution

Based on the collected user feedback and our long-term vision, we have outlined the following evolution for StellarID:

Phase 1: Performance & UX Polish

  • Web Worker Proving: Move ZK-SNARK computation to a dedicated web worker to ensure the main UI thread remains 100% responsive.
  • Granular Progress Tracking: Implement a step-by-step progress indicator for the 3-stage verification (Querying β†’ Proving β†’ Uploading).

Phase 2: Ecosystem Expansion

  • Social Connectors: Expand identity issuers beyond GitHub to include LinkedIn, Twitter (X), and Discord.
  • Custom Claims: Allow platforms to request custom ZK-circuits (e.g., "Prove balance > 1000 XLM" without showing the amount).

Phase 3: Mobile & Enterprise

  • StellarID Mobile: A dedicated mobile app with biometric security (FaceID/Fingerprint) for instant on-the-go ZK verification.
  • Enterprise SDK: A plug-and-play SDK for corporate platforms to integrate StellarID verification with two lines of code.

🀝 Contributing

We welcome contributions from the community!

# Fork the repo
# Create your feature branch
git checkout -b feature/amazing-feature

# Commit your changes
git commit -m "feat: add amazing feature"

# Push to the branch
git push origin feature/amazing-feature

# Open a Pull Request

Please read our Contributing Guide for details on our code of conduct and development process.


πŸ“œ License

This project is licensed under the MIT License β€” see the LICENSE file for details.


πŸ“¬ Contact

Channel Link
GitHub @iamomm-hack
Twitter/X @omdotcmd
Email iamkumarom.edu@gmail.com

Built with ❀️ on Stellar
StellarID β€” Verify once. Prove everywhere.

About

StellarID is a privacy-first, decentralized identity platform built on Stellar & Soroban. It solves the privacy problem by allowing users to 'Verify Once, Prove Everywhere' using Zero-Knowledge (ZK) Proofs. Generate verifiable offline proofs and shareable PDF certificates without ever exposing your real personal data to third parties! πŸ›‘οΈ

Topics

Resources

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors