Skip to content

consta-app/consta

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Consta

Registro público donde periodistas, abogados, científicos y activistas de América Latina pueden crear declaraciones firmadas criptográficamente y ancladas en Bitcoin, dejando constancia de que no tienen intención de hacerse daño.

Si algo les ocurre, sus propias palabras permanecen como evidencia pública, fechada e inmutable.


¿Cómo funciona?

  1. El usuario genera una frase de 12 palabras (BIP-39) que deriva su par de claves Ed25519.
  2. Escribe su declaración y la sube a IPFS — el servidor nunca ve el texto.
  3. El backend emite un sello de tiempo RFC 3161 y ancla el hash en Bitcoin vía OpenTimestamps.
  4. La declaración queda pública y verificable por cualquier persona en /declaration/:id/verify.
  5. Opcionalmente, el usuario puede verificar su identidad con Didit (KYC biométrico). Los datos biométricos nunca tocan nuestros servidores; Didit los elimina inmediatamente tras la decisión.

Estructura del repositorio

consta/
├── packages/
│   ├── backend/    # API REST — Node.js + Express + PostgreSQL
│   └── frontend/   # Aplicación web — Next.js

Inicio rápido

npm install

# Backend
cp packages/backend/.env.example packages/backend/.env
# Edita packages/backend/.env con tus credenciales

# Frontend
cp packages/frontend/.env.example packages/frontend/.env.local
# Edita packages/frontend/.env.local con tus credenciales

# Ejecutar ambos en paralelo
npm run dev:backend   # http://localhost:3001
npm run dev:frontend  # http://localhost:3000

Stack

Capa Tecnología
Frontend Next.js 16, React 19, Tailwind CSS
Backend Node.js, Express 4
Base de datos PostgreSQL (Supabase en desarrollo, Railway en producción)
Autenticación JWT + Ed25519 (frase BIP-39)
Almacenamiento IPFS vía Pinata
Sello de tiempo RFC 3161 (FreeTSA)
Ancla blockchain OpenTimestamps (Bitcoin)
KYC Didit
Email Zavu

Deploy

  • Backend: Railway — conecta el repositorio, agrega el plugin PostgreSQL, configura las variables de entorno.
  • Frontend: Vercel — conecta el repositorio, configura NEXT_PUBLIC_API_URL.

Seguridad

  • El servidor nunca almacena IPs ni datos biométricos.
  • Todo el texto de las declaraciones vive en IPFS, no en la base de datos.
  • Las sesiones de Didit se eliminan de sus servidores en cuanto llega la decisión (Approved/Declined).
  • La identidad de un usuario no puede reconstruirse a partir de la base de datos.

Construido en 72 horas para hack@latam — track DEF/ACC.

About

Registro público donde periodistas, abogados, científicos y activistas de América Latina pueden crear declaraciones firmadas criptográficamente y ancladas en Bitcoin, dejando constancia de que no tienen intención de hacerse daño.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors