Sistema de identidad con Zero Knowledge Proofs para Stellar Network.
Plataforma de identidad digital que permite a los usuarios realizar KYC una vez y generar pruebas Zero Knowledge reutilizables para múltiples anchors de Stellar, sin revelar datos personales.
- KYC único: Captura de documento (DNI) y biometría (huella/WebAuthn)
- Pruebas ZK: Generación de pruebas que demuestran edad, nacionalidad e identidad única
- Privacy-first: Datos encriptados y fragmentados con Shamir Secret Sharing
- PWA Mobile-first: Optimizado para dispositivos móviles
- Stellar Integration: Almacenamiento on-chain y verificación con Soroban
- Node.js >= 18
- pnpm >= 8.11.0
- Instalar pnpm (si no lo tienes):
npm install -g pnpm@8.11.0- Clonar el repositorio:
git clone <repository-url>
cd Hackathon- Instalar dependencias:
pnpm install- Configurar variables de entorno:
cp .env.example .env
# Editar .env con tus credenciales- Iniciar desarrollo:
pnpm devLa aplicación estará disponible en http://localhost:3000
.
├── apps/
│ ├── web/ # Next.js PWA Application
│ │ ├── app/ # App Router (pages & layouts)
│ │ ├── components/ # React components
│ │ │ ├── ui/ # Shadcn/ui components
│ │ │ ├── camera/ # Camera capture component
│ │ │ ├── biometric/ # Biometric authentication
│ │ │ ├── zk/ # ZK proof generation UI
│ │ │ └── encryption/ # Encryption utilities UI
│ │ ├── lib/ # Utilities
│ │ ├── hooks/ # React hooks
│ │ └── store/ # Zustand store
│ └── contracts/ # Soroban smart contracts
│
├── packages/
│ ├── types/ # TypeScript types compartidos
│ ├── crypto/ # Utilidades de encriptación
│ ├── zk-circuits/ # Circuitos Circom para ZK
│ └── stellar-utils/ # Helpers para Stellar
│
└── docs/ # Documentación
- Framework: Next.js 14 con App Router
- UI: Tailwind CSS + Shadcn/ui
- Estado: Zustand
- Web3: Stellar SDK + Freighter
- ZK: SnarkJS + Circom
- Biométrico: WebAuthn API
- Runtime: Vercel Edge Functions
- Storage: Supabase (PostgreSQL)
- Cache: Upstash Redis
- IPFS: web3.storage
- Red: Stellar Testnet
- Wallet: Freighter
- Smart Contracts: Soroban (Rust)
# Desarrollo
pnpm dev # Inicia servidor de desarrollo
# Build
pnpm build # Construye para producción
# Linting
pnpm lint # Ejecuta linter
# Formato
pnpm format # Formatea código con Prettier
# Limpieza
pnpm clean # Limpia node_modules y .turbo- Frontend UI/UX: Angie
- Base de Datos & Encryption: Denisse
- Componente Cámara: Isa
- Biometría & WebAuthn: Karu
- Zero Knowledge Circuits: Anouk
Usuario → Captura DNI → Extracción datos →
→ Captura biométrica → Generación pruebas ZK →
→ Encriptación + Fragmentación → Distribución
- Age Proof: Demuestra ser mayor de 18 años
- Nationality Proof: Demuestra nacionalidad argentina
- Identity Proof: Demuestra DNI único
Los datos se fragmentan en 5 partes (threshold 3 de 5):
- IndexedDB (navegador)
- Stellar Data Entry (on-chain)
- Supabase (encrypted column)
- Redis (TTL 90 días)
- IPFS (encrypted + pinning)
Ver .env.example para la lista completa de variables necesarias:
- Stellar: Network y Horizon URL
- Supabase: URL y API key
- IPFS: Web3.storage token
- Redis: Upstash URL y token
main: Código en produccióndevelop: Código en desarrollofeature/*: Nuevas característicasfix/*: Correcciones de bugs
feat: Nueva característica
fix: Corrección de bug
docs: Cambios en documentación
style: Cambios de formato
refactor: Refactorización de código
test: Añadir tests
chore: Tareas de mantenimiento
MIT
- ✅ Setup monorepo + PWA base
- 🔄 Integración cámara + WebAuthn
- 🔄 Mock data generator
- ⏳ Circuitos ZK básicos
- ⏳ Integración SnarkJS
- ⏳ Stellar testnet setup
- ⏳ UI/UX pulido
- ⏳ Fragmentación + encriptación
- ⏳ Demo flow completo
- ⏳ Testing + bugs
- ⏳ Presentación + video
- ⏳ Deploy a Vercel