NIP-86 管理

JSON-RPC 管理 API:Bearer または NIP-98 認証によるモデレーション、アクセスリスト、リレー識別情報、ロール、招待クレーム、委任されたメソッド付与。

有効化

NIP-86 はリレーを管理するための JSON-RPC API です。次の2つの認証方法のいずれかが必要であり、そうでない場合はすべての呼び出しが拒否されます:

方法設定
Bearer トークンrpc.management_token を設定し、Authorization: Bearer <token> を送信する
NIP-98rpc.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)"]pubkey の投稿を禁止する(許可リストからも削除される)
unbanpubkey["pubkey"]pubkey の禁止を解除する
listbannedpubkeys[]禁止中の pubkey と理由を一覧表示する
allowpubkey["pubkey", "reason (optional)"]許可リストに追加する(禁止も解除される)
unallowpubkey["pubkey"]許可リストから削除する
listallowedpubkeys[]許可リストを一覧表示する
allowkind / disallowkind[kind]kind を許可 / 不許可にする
listallowedkinds / listdisallowedkinds[]許可 / 不許可の kind を一覧表示する
changerelayname / changerelaydescription / changerelayicon["new value"]リレー名 / 説明 / アイコンを変更する(設定ファイルに保存される。ファイルに書き込めない場合はエラーを報告する)
createrole / editrole / deleterole[id, label, description, color, order]NIP-43 ロール管理(型の誤ったフィールドは拒否される。存在しないロールの削除は成功する)
assignrole / unassignrole["pubkey", "role id"]ロールを割り当て / 割り当て解除する(重複した付与や存在しない取り消しも成功する)
assignmethod / unassignmethod["pubkey", "method"]管理者以外の pubkey に 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 がその作成者を承認します)
委任管理
rpc.admin_pubkey(および管理トークン)は、すべてのメソッドを持つルート権限のままです。その他の pubkey は NIP-98 で認証し、assignmethod で付与されたメソッドのみ実行できます(supportedmethods には自身のサブセットが表示されます)。権限、ロール、招待クレーム、リレー識別情報の管理は管理者のみのため、被付与者が権限を昇格させることはできません。禁止された pubkey は付与があっても拒否されます。
公開 POST / ルートで提供
NIP-86 RPC はリレーの公開 POST / ルートにマウントされます。変更は認証済み ID とともにレート制限付き監査ログ(1分あたり最大 600 エントリ)に記録されます。rpc.max_admin_body_bytes を超えるリクエストは 413 で拒否されます。