支援的 NIP 參考
nostrfy 實作的每個中繼端 NIP — 類型、說明與注意事項 — 以及 NIP-11 supported_nips 清單如何動態計算。
已實作的 NIP
| NIP | 說明 |
|---|---|
| 1 | 基礎協定(事件、訂閱) |
| 9 | 事件刪除 |
| 11 | 中繼資訊文件 |
| 13 | 工作量證明 |
| 17 | 私訊(kind 14 包裝在 kind 15 中;開啟 NIP-42 認證時,kind 1059 與臨時 kind 21059 禮物包裝僅向收件人提供) |
| 22 | 留言(kind 1111,透過 #e 索引討論串化) |
| 26 | 委派事件簽章 |
| 28 | 公開聊天(用戶端側:作為一般事件儲存與提供,不公佈) |
| 29 | 基於中繼的群組 |
| 32 | 標籤(kind 1985,#l/#L 已索引) |
| 33 | 參數化可替換事件 |
| 34 | git 相關(類型 1617-1619、1621、1622、1630-1633、30617/30618 — 透過 relay.enabled_git 選用啟用,預設關閉) |
| 40 | 過期時間戳 |
| 42 | 用戶端認證 |
| 43 | 中繼存取中繼資料(角色)— 類型 33534/13534/8000/8001 加上臨時 28934/28935/28936;中繼簽章的中繼資料受 AUTH 門控。邀請碼透過 NIP-86 createclaim/deleteclaim 簽發;攜帶已列碼的 kind:28934 會接納其作者 |
| 45 | 結果計數(COUNT) |
| 46 | Nostr Connect |
| 47 | Nostr Wallet Connect |
| 50 | 搜尋能力(全文,依相關性排序) |
| 57 | 閃電 Zap(類型 9734/9735) |
| 59 | 禮物包裝(僅向收件人提供) |
| 62 | 消除請求 |
| 65 | 中繼清單中繼資料 |
| 66 | 中繼探索與存活(類型 30166/10166 儲存與提供;自動發布 kind 30166) |
| 67 | EOSE 完整性提示 |
| 70 | 受保護事件 |
| 77 | Negentropy 同步(失敗的替換會依 NIP-77 用 NEG-ERR 關閉該 id) |
| 78 | 應用特定資料(kind 30078,受 AUTH 門控) |
| 84 | 精選 |
| 85 | 可信斷言(類型 30382/30383/30384/30385/10040,可定址) |
| 86 | 中繼管理 API |
| 87 | Cashu 與 Fedimint 公告(類型 38000/38172/38173) |
| 88 | 投票 |
| 94 | 檔案中繼資料(kind 1063) |
| 98 | HTTP 認證 |
| A3 | 支付目標(kind 10133,可替換),草案;會被提供但不在 supported_nips 中公佈 |
Blossom(BUD-01/02)不是 NIP,也不在 NIP-11 文件中公佈 — 它作為
獨立檔案伺服器執行在 [blossom] 主機名稱上。詳情見 Blossom 檔案伺服器頁面。
動態 NIP 公佈
supported_nips 清單不是靜態的:當某個 NIP 定義的所有類型都被中繼的
存取控制拒絕時,它就會從清單中移除。
blocked_kinds— 封鎖某個 NIP 的所有類型會隱藏它(例如封鎖 kind 5 會隱藏 NIP-09)。只封鎖部分類型則保留該 NIP。allowed_kinds— 類型只有被列出才被接受;所有類型都未列出的 NIP 會被隱藏。reject_ephemeral— 不在 NIP 強制豁免清單 (22242、27235、28934/28935/28936、24133、23194/23195、24242、21059) 中的臨時類型會被拒絕,因此依賴它們的 NIP 會被隱藏。- 前置條件 — NIP-29、NIP-43 與 NIP-66 依賴中繼簽章的事件,沒有
relay.private_key時會被隱藏;NIP-86 在未設定rpc.management_token或rpc.admin_pubkey時會被隱藏(否則每次 管理呼叫都被拒絕)。 - 沒有專用類型的 NIP(
1、11、13、26、33、40、45、50、67、70、77)在啟用時始終公佈。
執行階段所做的變更 — NIP-86 allowkind/disallowkind,或對 reject_ephemeral 的 SIGHUP 重載 — 會在下一次 NIP-11 取得中體現。 enabled_nips/disabled_nips 仍然需要重新啟動。