Gestione NIP-86
L’API di gestione JSON-RPC: moderazione, liste di accesso, identità del relay, ruoli, codici di invito e deleghe di metodi, con autenticazione Bearer o NIP-98.
Abilitazione
NIP-86 è un’API JSON-RPC per gestire il relay. Richiede uno dei due metodi di autenticazione, altrimenti ogni chiamata viene rifiutata:
| Metodo | Configurazione |
|---|---|
| Token Bearer | Imposta rpc.management_token e invia Authorization: Bearer
<token> |
| NIP-98 | Imposta rpc.admin_pubkey e invia un evento di autenticazione NIP-98 (kind 27235) firmato dalla chiave admin in Authorization: Nostr <base64> — è richiesto un tag payload; ogni evento è monouso entro la sua finestra di 60 secondi |
Chiamare l’API
POST / con 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":[]}'Metodi
| Metodo | Parametri | Descrizione |
|---|---|---|
supportedmethods | [] | Elenco dei metodi supportati |
banpubkey | ["pubkey", "reason (optional)"] | Bannare una pubkey dalla pubblicazione (la rimuove anche dalla allowlist) |
unbanpubkey | ["pubkey"] | Rimuovere il ban di una pubkey |
listbannedpubkeys | [] | Elencare le pubkey bannate e i motivi |
allowpubkey | ["pubkey", "reason (optional)"] | Aggiungere alla allowlist (rimuove anche il ban) |
unallowpubkey | ["pubkey"] | Rimuovere dalla allowlist |
listallowedpubkeys | [] | Elencare la allowlist |
allowkind / disallowkind | [kind] | Consentire / vietare un kind |
listallowedkinds / listdisallowedkinds | [] | Elencare i kind consentiti / vietati |
changerelayname / changerelaydescription / changerelayicon | ["new value"] | Cambiare nome / descrizione / icona del relay (persistito nel file di configurazione; segnala un errore quando il file non può essere scritto) |
createrole / editrole / deleterole | [id, label, description, color, order] | Gestione dei ruoli NIP-43 (i campi con tipo errato vengono rifiutati; eliminare un ruolo mancante riesce) |
assignrole / unassignrole | ["pubkey", "role id"] | Assegnare / revocare un ruolo (una concessione duplicata o una revoca mancante riesce) |
assignmethod / unassignmethod | ["pubkey", "method"] | Concedere / revocare un metodo NIP-86 a una pubkey non admin — solo i metodi di moderazione e lettura sono delegabili |
listmethodassignees | [] | Elencare le concessioni di metodi ([{pubkey, methods}]) |
blockip / unblockip | ["ip", "reason (optional)"] | Bloccare / sbloccare un IP (il blocco interrompe anche le connessioni esistenti) |
listblockedips | [] | Elencare gli IP bloccati |
banevent | ["event id", "reason (optional)"] | Bannare un evento (bannare un id sconosciuto lo pre-banna; lo rimuove anche dalla allowlist) |
allowevent | ["event id", "reason (optional)"] | Aggiungere un evento alla allowlist (toglie anche il ban; consentire un id sconosciuto lo pre-consente) |
unallowevent / unbanevent | ["event id"] | Rimuovere un evento dalla allowlist/banlist (una voce mancante riesce) |
listbannedevents | [] | Elencare gli eventi bannati (una ricerca fallita restituisce un errore, mai una lista vuota) |
listallowedevents | [] | Elencare gli eventi consentiti |
listeventsneedingmoderation | [] | Eventi in attesa di moderazione (sempre vuoto su questo relay) |
listclaims | [] | Elencare i codici di invito NIP-43 |
createclaim / deleteclaim | ["claim"] | Emettere / revocare un codice di invito NIP-43 (un kind:28934 con un codice elencato ammette il suo autore) |