Groupes NIP-29

Groupes NIP-29 : espaces de discussion fermés où seuls les membres peuvent écrire, avec des événements de modération et des instantanés de l’état du groupe signés par le relais.

Activer les groupes

  1. Exécutez nostrfy genkey pour définir relay.private_key (requis — sans lui, les métadonnées de groupe ne sont pas générées).
  2. Redémarrez le relais.

Fonctionnement des groupes

Les groupes sont créés et modérés par des événements. À partir de ces événements de modération, le relais génère des instantanés signés par le relais que les clients utilisent pour l’affichage :

ÉvénementDescription
kind:9007Créer le groupe (le créateur devient admin)
kind:9000 / 9001Ajouter un membre (avec rôles) / retirer un membre
kind:9002Modifier les métadonnées (nom, description, public/privé, ...)
kind:9005Supprimer un événement (modération)
kind:9008Supprimer le groupe (ses événements stockés sont purgés)
kind:9009Créer un code d’invitation
kind:9010Mettre à jour la liste des épinglés
kind:9021 / 9022Demande d’adhésion / demande de départ

Instantanés signés par le relais

  • kind:39000 — métadonnées du groupe (nom, paramètres de visibilité, ...)
  • kind:39001 — liste des admins
  • kind:39002 — liste des membres
  • kind:39005 — événements épinglés

Paramètres de visibilité du groupe

TagSignification
privateSeuls les membres peuvent lire les messages
restrictedSeuls les membres peuvent écrire
hiddenLes métadonnées sont masquées aux non-membres
closedLes demandes d’adhésion ne sont pas approuvées automatiquement (codes d’invitation requis)
livekitLe groupe dispose d’un salon audio/vidéo LiveKit

Sous-groupes

Les groupes peuvent être hiérarchiques — imbriqués avec des tags parent / child. Les cycles sont rejetés automatiquement.

Quitter un groupe
Tout membre — y compris le dernier admin du groupe — peut partir avec kind:9022 et est automatiquement retiré ; si le dernier admin part, le groupe n’a plus d’admins. Nommez d’abord un autre admin, ou supprimez le groupe avec kind:9008, ou récupérez un groupe sans admin en signant un événement de modération avec la propre clé du relais (relay.private_key, la pubkey self de NIP-11). Voir dépannage pour la procédure.