NIP-86-Verwaltung
Die JSON-RPC-Verwaltungs-API: Moderation, Zugriffslisten, Relay-Identität, Rollen, Einladungscodes und delegierte Methodenzuweisungen, mit Bearer- oder NIP-98-Authentifizierung.
Aktivieren
NIP-86 ist eine JSON-RPC-API zur Verwaltung des Relays. Sie benötigt eine von zwei Authentifizierungsmethoden, andernfalls wird jeder Aufruf abgelehnt:
| Methode | Einrichtung |
|---|---|
| Bearer-Token | Setzen Sie rpc.management_token und senden Sie Authorization: Bearer
<token> |
| NIP-98 | Setzen Sie rpc.admin_pubkey und senden Sie ein NIP-98-Auth-Event (Kind 27235), signiert mit dem Admin-Schlüssel, in Authorization: Nostr <base64> — ein payload-Tag ist erforderlich; jedes Event ist innerhalb seines 60-Sekunden-Fensters nur einmal verwendbar |
API aufrufen
POST / mit 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":[]}'Methoden
| Methode | Parameter | Beschreibung |
|---|---|---|
supportedmethods | [] | Liste der unterstützten Methoden |
banpubkey | ["pubkey", "reason (optional)"] | Einen Pubkey für das Veröffentlichen sperren (entfernt ihn auch von der Allowlist) |
unbanpubkey | ["pubkey"] | Einen Pubkey entsperren |
listbannedpubkeys | [] | Gesperrte Pubkeys und Gründe auflisten |
allowpubkey | ["pubkey", "reason (optional)"] | Zur Allowlist hinzufügen (hebt auch die Sperre auf) |
unallowpubkey | ["pubkey"] | Von der Allowlist entfernen |
listallowedpubkeys | [] | Die Allowlist auflisten |
allowkind / disallowkind | [kind] | Einen Kind erlauben / verbieten |
listallowedkinds / listdisallowedkinds | [] | Erlaubte / verbotene Kinds auflisten |
changerelayname / changerelaydescription / changerelayicon | ["new value"] | Relay-Namen / Beschreibung / Icon ändern (wird in die Konfigurationsdatei gespeichert; meldet einen Fehler, wenn die Datei nicht geschrieben werden kann) |
createrole / editrole / deleterole | [id, label, description, color, order] | NIP-43-Rollenverwaltung (falsch typisierte Felder werden abgelehnt; das Löschen einer fehlenden Rolle gelingt) |
assignrole / unassignrole | ["pubkey", "role id"] | Eine Rolle zuweisen / entziehen (eine doppelte Zuweisung oder fehlende Entziehung gelingt) |
assignmethod / unassignmethod | ["pubkey", "method"] | Eine NIP-86-Methode an einen Nicht-Admin-Pubkey vergeben / entziehen — nur Moderations- und Lesemethoden sind übertragbar |
listmethodassignees | [] | Methodenzuweisungen auflisten ([{pubkey, methods}]) |
blockip / unblockip | ["ip", "reason (optional)"] | Eine IP blockieren / entblockieren (Blockieren trennt auch bestehende Verbindungen) |
listblockedips | [] | Blockierte IPs auflisten |
banevent | ["event id", "reason (optional)"] | Ein Event sperren (das Sperren einer unbekannten ID sperrt sie vorab; entfernt sie auch von der Allow-Liste) |
allowevent | ["event id", "reason (optional)"] | Ein Event zur Allow-Liste hinzufügen (hebt auch die Sperre auf; das Erlauben einer unbekannten ID erlaubt sie vorab) |
unallowevent / unbanevent | ["event id"] | Ein Event von der Allow- / Ban-Liste entfernen (ein fehlender Eintrag gelingt) |
listbannedevents | [] | Gesperrte Events auflisten (eine fehlgeschlagene Suche meldet einen Fehler, niemals eine leere Liste) |
listallowedevents | [] | Erlaubte Events auflisten |
listeventsneedingmoderation | [] | Events, die auf Moderation warten (auf diesem Relay immer leer) |
listclaims | [] | NIP-43-Einladungscodes auflisten |
createclaim / deleteclaim | ["claim"] | Einen NIP-43-Einladungscode ausstellen / widerrufen (ein Kind:28934 mit einem gelisteten Code lässt seinen Autor zu) |