Grupos NIP-29

Grupos NIP-29: espaços de conversa fechados onde só membros podem escrever, com eventos de moderação e instantâneos do estado do grupo assinados pelo relay.

Ativar grupos

  1. Execute nostrfy genkey para definir relay.private_key (obrigatório — sem ele, os metadados do grupo não são gerados).
  2. Reinicie o relay.

Como funcionam os grupos

Os grupos são criados e moderados por eventos. A partir desses eventos de moderação, o relay gera instantâneos assinados pelo relay que os clientes usam para exibição:

EventoDescrição
kind:9007Criar grupo (o criador torna-se administrador)
kind:9000 / 9001Adicionar membro (com funções) / remover membro
kind:9002Editar metadados (nome, descrição, público/privado, ...)
kind:9005Excluir evento (moderação)
kind:9008Excluir grupo (seus eventos armazenados são purgados)
kind:9009Criar código de convite
kind:9010Atualizar lista de fixados
kind:9021 / 9022Pedido de entrada / pedido de saída

Instantâneos assinados pelo relay

  • kind:39000 — metadados do grupo (nome, configurações de visibilidade, ...)
  • kind:39001 — lista de administradores
  • kind:39002 — lista de membros
  • kind:39005 — eventos fixados

Configurações de visibilidade do grupo

TagSignificado
privateSó membros podem ler mensagens
restrictedSó membros podem escrever
hiddenMetadados ficam ocultos para não membros
closedPedidos de entrada não são aprovados automaticamente (códigos de convite obrigatórios)
livekitO grupo tem uma sala de áudio/vídeo LiveKit

Subgrupos

Os grupos podem ser hierárquicos — aninhados com tags parent / child. Ciclos são rejeitados automaticamente.

Sair de um grupo
Qualquer membro — incluindo o último administrador do grupo — pode sair com kind:9022 e é removido automaticamente; se o último administrador sair, o grupo fica sem administradores. Promova outro administrador primeiro, ou exclua o grupo com kind:9008, ou recupere um grupo sem administrador assinando um evento de moderação com a própria chave do relay (relay.private_key, a pubkey self do NIP-11). Veja solução de problemas para o passo a passo.