Grupos NIP-29

Grupos NIP-29: espacios de chat cerrados donde solo los miembros pueden escribir, con eventos de moderación e instantáneas del estado del grupo firmadas por el relé.

Habilitar grupos

  1. Ejecuta nostrfy genkey para establecer relay.private_key (obligatorio — sin él no se generan los metadatos del grupo).
  2. Reinicia el relé.

Cómo funcionan los grupos

Los grupos se crean y moderan mediante eventos. A partir de estos eventos de moderación, el relé genera instantáneas firmadas por el relé que los clientes usan para mostrar:

EventoDescripción
kind:9007Crear grupo (el creador se convierte en administrador)
kind:9000 / 9001Añadir miembro (con roles) / eliminar miembro
kind:9002Editar metadatos (nombre, descripción, público/privado, ...)
kind:9005Eliminar evento (moderación)
kind:9008Eliminar grupo (sus eventos almacenados se purgan)
kind:9009Crear código de invitación
kind:9010Actualizar lista de fijados
kind:9021 / 9022Solicitud de ingreso / solicitud de salida

Instantáneas firmadas por el relé

  • kind:39000 — metadatos del grupo (nombre, ajustes de visibilidad, ...)
  • kind:39001 — lista de administradores
  • kind:39002 — lista de miembros
  • kind:39005 — eventos fijados

Ajustes de visibilidad del grupo

EtiquetaSignificado
privateSolo los miembros pueden leer los mensajes
restrictedSolo los miembros pueden escribir
hiddenLos metadatos están ocultos para los no miembros
closedLas solicitudes de ingreso no se aprueban automáticamente (se requieren códigos de invitación)
livekitEl grupo tiene una sala de audio/video LiveKit

Subgrupos

Los grupos pueden ser jerárquicos — anidados con etiquetas parent / child. Los ciclos se rechazan automáticamente.

Salir de un grupo
Cualquier miembro — incluido el último administrador del grupo — puede salir con kind:9022 y se elimina automáticamente; si el último administrador sale, el grupo se queda sin administradores. Nombra primero a otro administrador, o elimina el grupo con kind:9008, o recupera un grupo sin administrador firmando un evento de moderación con la propia clave del relé (relay.private_key, la self pubkey de NIP-11). Consulta solución de problemas para ver cómo hacerlo.