Gestion NIP-86
L’API de gestion JSON-RPC : modération, listes d’accès, identité du relais, rôles, codes d’invitation et délégations de méthodes, avec authentification Bearer ou NIP-98.
Activation
NIP-86 est une API JSON-RPC pour gérer le relais. Elle nécessite l’une des deux méthodes d’authentification, sinon chaque appel est refusé :
| Méthode | Configuration |
|---|---|
| Jeton Bearer | Définissez rpc.management_token et envoyez Authorization: Bearer
<token> |
| NIP-98 | Définissez rpc.admin_pubkey et envoyez un événement d’authentification NIP-98 (kind 27235) signé par la clé admin dans Authorization: Nostr <base64> — un tag payload est requis ; chaque événement est à usage unique dans sa fenêtre de 60 secondes |
Appeler l’API
POST / avec 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":[]}'Méthodes
| Méthode | Paramètres | Description |
|---|---|---|
supportedmethods | [] | Liste des méthodes prises en charge |
banpubkey | ["pubkey", "reason (optional)"] | Bannir une pubkey de la publication (la retire aussi de la liste d’autorisation) |
unbanpubkey | ["pubkey"] | Débannir une pubkey |
listbannedpubkeys | [] | Lister les pubkeys bannies et les motifs |
allowpubkey | ["pubkey", "reason (optional)"] | Ajouter à la liste d’autorisation (débannit aussi) |
unallowpubkey | ["pubkey"] | Retirer de la liste d’autorisation |
listallowedpubkeys | [] | Lister la liste d’autorisation |
allowkind / disallowkind | [kind] | Autoriser / interdire un kind |
listallowedkinds / listdisallowedkinds | [] | Lister les kinds autorisés / interdits |
changerelayname / changerelaydescription / changerelayicon | ["new value"] | Changer le nom / la description / l’icône du relais (persisté dans le fichier de configuration ; signale une erreur si le fichier ne peut pas être écrit) |
createrole / editrole / deleterole | [id, label, description, color, order] | Gestion des rôles NIP-43 (les champs mal typés sont rejetés ; supprimer un rôle manquant réussit) |
assignrole / unassignrole | ["pubkey", "role id"] | Attribuer / retirer un rôle (une attribution en double ou une révocation manquante réussit) |
assignmethod / unassignmethod | ["pubkey", "method"] | Accorder / révoquer une méthode NIP-86 à une pubkey non-admin — seules les méthodes de modération et de lecture peuvent être déléguées |
listmethodassignees | [] | Lister les délégations de méthodes ([{pubkey, methods}]) |
blockip / unblockip | ["ip", "reason (optional)"] | Bloquer / débloquer une IP (le blocage coupe aussi les connexions existantes) |
listblockedips | [] | Lister les IP bloquées |
banevent | ["event id", "reason (optional)"] | Bannir un événement (bannir un id inconnu le pré-bannit ; le retire aussi de la liste d’autorisation) |
allowevent | ["event id", "reason (optional)"] | Ajouter un événement à la liste d’autorisation (lève aussi le bannissement ; autoriser un id inconnu le pré-autorise) |
unallowevent / unbanevent | ["event id"] | Retirer un événement de la liste d’autorisation / de bannissement (une entrée manquante réussit) |
listbannedevents | [] | Lister les événements bannis (une recherche échouée renvoie une erreur, jamais une liste vide) |
listallowedevents | [] | Lister les événements autorisés |
listeventsneedingmoderation | [] | Événements en attente de modération (toujours vide sur ce relais) |
listclaims | [] | Lister les codes d’invitation NIP-43 |
createclaim / deleteclaim | ["claim"] | Émettre / révoquer un code d’invitation NIP-43 (un kind:28934 portant un code listé admet son auteur) |