NIP-29 群組

NIP-29 群組:只有成員可以寫入的封閉聊天空間,帶管理事件與中繼簽章的群組狀態快照。

啟用群組

  1. 執行 nostrfy genkey 以設定 relay.private_key (必需 — 沒有它就不會產生群組中繼資料)。
  2. 重新啟動中繼。

群組如何運作

群組由事件建立與管理。中繼從這些管理事件產生中繼簽章的快照,供用戶端顯示使用:

事件說明
kind:9007建立群組(建立者成為管理員)
kind:9000 / 9001新增成員(帶角色)/ 移除成員
kind:9002編輯中繼資料(名稱、說明、公開/私密……)
kind:9005刪除事件(管理)
kind:9008刪除群組(其儲存的事件被清除)
kind:9009建立邀請碼
kind:9010更新置頂清單
kind:9021 / 9022加入請求 / 離開請求

中繼簽章的快照

  • kind:39000 — 群組中繼資料(名稱、可見性設定……)
  • kind:39001 — 管理員清單
  • kind:39002 — 成員清單
  • kind:39005 — 置頂事件

群組可見性設定

標籤意義
private只有成員可以讀取訊息
restricted只有成員可以寫入
hidden中繼資料對非成員隱藏
closed加入請求不會自動批准(需要邀請碼)
livekit該群組有 LiveKit 影音房間

子群組

群組可以階層化 — 用 parent / child 標籤巢狀。循環會被 自動拒絕。

離開群組
任何成員 — 包括群組的最後一位管理員 — 都可以用 kind:9022 離開並被 自動移除;如果最後一位管理員離開,群組將沒有管理員。請先授予另一位管理員, 或用 kind:9008 刪除群組,或用中繼自己的金鑰(relay.private_key,即 NIP-11 self 公鑰) 簽署一條管理事件來還原無管理員的群組。具體做法見 疑難排解。