Hackathon Abril 2026 — La Crypta

Verificá la identidad,
matá a los scammers

Perfiles verificables con badges de reputación sobre Nostr. Nunca más un come empanadas se hace pasar por alguien de la comunidad.

🛡️ Seguridad
🛡️ Auditado · 10/10 ataques bloqueados · NIP-98 obligatorio
0
Verificados
0
Badges
0
Eventos

El problema que resolvemos

En nuestra comunidad pasan scams reales. Los frenamos con identidad Nostr verificable.

❌ Sin Identity Hub

  • Los impostores pasan desapercibidos
  • Los scammers cambian el nombre un poquito y se camuflan
  • Los nuevos miembros no saben quién es legítimo
  • No hay forma de probar contribuciones reales
  • Los come empanadas andan sueltos 🥟

✅ Con Identity Hub

  • Identidad verificada con NIP-05 (usuario@lacrypta.ar)
  • Historial público de badges en los relays de Nostr
  • Puntaje de reputación basado en actividad real
  • Verificación instantánea de cualquier miembro
  • Come empanadas = 0 badges, al descubierto 🚫

Badges de reputación

Ganá badges con participación real. Construí confianza un evento a la vez.

📍

Asistencia

Prueba de asistencia a eventos de La Crypta. Vinculada al sistema POA-HDMP vía NIP-58.

🎤

Orador

Dio una charla o taller. Verificado por los organizadores del evento con emisión de badge.

👨‍💻

Contribuyente

Construyó algo para la comunidad. Código, contenido, herramientas o infraestructura.

Donante

Apoyó a La Crypta con zaps de Lightning. Verificado con recibos NIP-57.

Miembro verificado

Identidad confirmada por verificación DNS NIP-05. La base de la confianza.

🏆

Miembro Core

Contribuyente de largo plazo con varios badges. Los verdaderos animales cypherpunk de la jungla.

Vista previa de perfiles

Miembros de la comunidad con distintos niveles de reputación. Detectá al scammer.

🔥
Fierillo
fierillo@lacrypta.ar ✓
📍 24 eventos 🎤 Orador 👨‍💻 Contribuyente ⚡ Donante 🏆 Core
Reputación 97/100
🐺
Negr0
negr0@lacrypta.ar ✓
📍 18 eventos ⚡ Donante 👨‍💻 Contribuyente 🏆 Core
Reputación 88/100
🦊
Lai
lai@lacrypta.ar ✓
📍 15 eventos 🎤 Orador ✅ Verificado
Reputación 78/100
🌶️
Kerry_kaberga
kerry_kaberga@lacrypta.ar ✓
📍 6 eventos ⚡ Donante ✅ Verificado
Reputación 55/100
🦍
Agus Gorilla
agus@lacrypta.ar ✓
📍 12 eventos 🎤 Orador 👨‍💻 Contribuyente ⚡ Donante 🏆 Core
Reputación 92/100
⚠️ SPAMMER DETECTADO
🚫
Lapija del Negr0
not-verified@fake.com ✗
🚫 0 eventos 🚨 Sin NIP-05 🤡 Come empanadas
Reputación 3/100

💬 Integración con Discord

Extendé la verificación de identidad y los badges de reputación a Discord. Tres módulos listos para instalar — hacé click en cualquier tarjeta para ver la integración de un solo paso.

🤖

Verificación con bot de Discord

Autoverificá usuarios con identidad Nostr. Comandos para revisar perfiles y badges en tiempo real.

/verify satoshi@lacrypta.ar
/profile @user
/check-scammer <pubkey>
⚡ Verificación instantánea 🏅 Asignación automática de roles 📊 Reputación en vivo
🔗

Sincronización por webhook

Los cambios de badges se sincronizan con Discord al instante. El usuario gana un badge → el bot actualiza los roles automáticamente.

🎤 Badge de orador conseguido

@usuario recibe el rol "Orador" en Discord
⚙️ Sincronización en tiempo real 🎯 Sin actualizaciones manuales ✨ UX fluida
🔐

Verificación al ingresar

Los nuevos miembros deben verificar su identidad Nostr para acceder al servidor. Control de acceso contra scammers.

Nuevo usuario entra → Modal: verificar identidad
✅ Tiene badges → acceso total
⚠️ Sin badges → solo lectura
🛡️ Protección anti-scammer 📜 Verificación obligatoria ⚠️ Come empanadas bloqueados
Los tres módulos comparten la misma fuente de verdad del Nostr-hub.
El bot funciona por sí solo; el control de acceso requiere instalar primero el bot.

🛡️ Seguridad y pentest

La infraestructura de identidad es tan confiable como su endpoint más débil. Auditamos este proyecto antes de entregarlo — cada hallazgo CRITICAL y HIGH fue cerrado.

10/10
Escenarios de ataque bloqueados
0
Critical / High sin resolver
NIP-98
Obligatorio en endpoints de escritura

🧪 Resultados del pentest — endpoint register

# Ataque Resultado Estado
A1Registrar sin cabecera Authorization401✓ bloqueado
A2Suplantación de identidad (auth pubkey ≠ body.pubkey)403✓ bloqueado
A3Manipular el body después de firmar401✓ bloqueado
A4Replay (evento con más de 60s)401✓ bloqueado
A5Reclamar nombre reservado (“admin”)403✓ bloqueado
A6displayName demasiado largo (200 chars)400✓ bloqueado
A7CSRF form-encoded (simple request)415✓ bloqueado
A8Flood de IP (12 requests rápidos)429✓ throttle aplicado
A9Nombre empieza con “.” (bypass de regex)400✓ bloqueado
A10pubkey mal formada (no es hex-64)400✓ bloqueado
🔐

Autenticación NIP-98

Se requiere un evento firmado kind 27235 en POST /api/register. El servidor valida la firma, la coincidencia de URL, la coincidencia de método, el hash del body, la ventana de replay de ±60s y que event.pubkey === body.pubkey.

⏱️

Rate limiting

Ventana deslizante: 10 reqs / 10 min por IP y 3 registros / hora por pubkey. Mata el squatting automatizado.

🚫

Nombres reservados

24 handles protegidos: admin, root, lacrypta, satoshi, support, api… lista completa en SECURITY.md.

📏

Límites de entrada

Regex estricta en el nombre, pubkey hex de 64 chars, displayName ≤ 64 chars, body ≤ 2 KB. Content-Type debe ser application/json.

🛡️

Hardening HTTP

CSP, HSTS (preload de 2 años), X-Frame-Options DENY, X-Content-Type-Options nosniff, Referrer-Policy, Permissions-Policy. Cache-Control: no-store en todas las respuestas de la API.

📦

Cadena de suministro

nostr-tools fijado a la versión exacta 2.7.2 (sin caret). ADMIN_KEY comparada con crypto.timingSafeEqual. Planeado: bundlear las dependencias cripto con Vite.

📄 Leer el pentest completo 🔒 Política de seguridad

Creá tu perfil

Conectá tu identidad Nostr y empezá a construir reputación.

@lacrypta.ar

2-32 caracteres, minúscula. Este será tu handle verificable.

Tu NIP-05 se sirve desde /.well-known/nostr.json para que cualquier cliente Nostr te pueda verificar.

Directorio de la comunidad

Miembros verificados de La Crypta con sus badges de reputación.

Cargando miembros verificados desde los relays de Nostr...

Verificar a un miembro

Comprobá si alguien es realmente quien dice ser.