NIP-86 管理
JSON-RPC 管理 API:審核、存取清單、中繼身分、角色、邀請碼與委派方法授權,支援 Bearer 或 NIP-98 認證。
啟用
NIP-86 是用於管理中繼的 JSON-RPC API。它需要兩種認證方式之一, 否則每次呼叫都會被拒絕:
| 方式 | 設定 |
|---|---|
| Bearer token | 設定 rpc.management_token 並傳送 Authorization: Bearer
<token> |
| NIP-98 | 設定 rpc.admin_pubkey 並傳送由管理員金鑰簽章的 NIP-98 認證事件
(kind 27235),放在 Authorization: Nostr <base64> 中 — 需要一個 payload 標籤;每個事件在其 60 秒視窗內只能使用一次 |
呼叫 API
POST /,使用 Content-Type: application/nostr+json+rpc:
sh
curl -X POST http://127.0.0.1:8080/ \
-H "Content-Type: application/nostr+json+rpc" \
-H "Authorization: Bearer YOUR_TOKEN" \
-d '{"method":"supportedmethods","params":[]}'方法
| 方法 | 參數 | 說明 |
|---|---|---|
supportedmethods | [] | 支援的方法清單 |
banpubkey | ["pubkey", "reason (optional)"] | 封鎖公鑰使其不能發布(同時將其從允許清單移除) |
unbanpubkey | ["pubkey"] | 解除封鎖公鑰 |
listbannedpubkeys | [] | 列出被封鎖的公鑰及原因 |
allowpubkey | ["pubkey", "reason (optional)"] | 加入允許清單(同時解除封鎖) |
unallowpubkey | ["pubkey"] | 從允許清單移除 |
listallowedpubkeys | [] | 列出允許清單 |
allowkind / disallowkind | [kind] | 允許 / 禁止某個類型 |
listallowedkinds / listdisallowedkinds | [] | 列出允許 / 禁止的類型 |
changerelayname / changerelaydescription / changerelayicon | ["new value"] | 變更中繼名稱 / 說明 / 圖示(持久化到設定檔;檔案無法寫入時回報錯誤) |
createrole / editrole / deleterole | [id, label, description, color, order] | NIP-43 角色管理(類型錯誤的欄位被拒絕;刪除不存在的角色會成功) |
assignrole / unassignrole | ["pubkey", "role id"] | 指派 / 取消指派角色(重複授予或撤銷不存在的角色會成功) |
assignmethod / unassignmethod | ["pubkey", "method"] | 向非管理員公鑰授予 / 撤銷 NIP-86 方法 — 只有審核與讀取方法可被授予 |
listmethodassignees | [] | 列出方法授權([{pubkey, methods}]) |
blockip / unblockip | ["ip", "reason (optional)"] | 封鎖 / 解除封鎖 IP(封鎖還會中斷現有連線) |
listblockedips | [] | 列出被封鎖 IP |
banevent | ["event id", "reason (optional)"] | 封鎖事件(封鎖未知 id 會預先封鎖;同時將其從允許清單移除) |
allowevent | ["event id", "reason (optional)"] | 將事件加入允許清單(同時解除封鎖;允許未知 id 會預先允許) |
unallowevent / unbanevent | ["event id"] | 從允許 / 封鎖清單移除事件(條目不存在也會成功) |
listbannedevents | [] | 列出被封鎖的事件(查詢失敗會顯示錯誤,絕不會傳回空清單) |
listallowedevents | [] | 列出允許的事件 |
listeventsneedingmoderation | [] | 等待審核的事件(此中繼上始終為空) |
listclaims | [] | 列出 NIP-43 邀請碼 |
createclaim / deleteclaim | ["claim"] | 簽發 / 撤銷 NIP-43 邀請碼(攜帶已列碼的 kind:28934 會接納其作者) |