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 会接纳其作者) |