NIP-86 管理
JSON-RPC 管理 API:Bearer または NIP-98 認証によるモデレーション、アクセスリスト、リレー識別情報、ロール、招待クレーム、委任されたメソッド付与。
有効化
NIP-86 はリレーを管理するための JSON-RPC API です。次の2つの認証方法のいずれかが必要であり、そうでない場合はすべての呼び出しが拒否されます:
| 方法 | 設定 |
|---|---|
| Bearer トークン | 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)"] | 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 がその作成者を承認します) |