Gestión NIP-86
La API de gestión JSON-RPC: moderación, listas de acceso, identidad del relé, roles, códigos de invitación y delegaciones de métodos, con autenticación Bearer o NIP-98.
Habilitación
NIP-86 es una API JSON-RPC para gestionar el relé. Necesita uno de los dos métodos de autenticación, de lo contrario cada llamada es rechazada:
| Método | Configuración |
|---|---|
| Token Bearer | Configura rpc.management_token y envía Authorization: Bearer
<token> |
| NIP-98 | Configura rpc.admin_pubkey y envía un evento de autenticación NIP-98 (kind 27235) firmado por la clave de administración en Authorization: Nostr <base64> — se requiere una etiqueta payload; cada evento es de un solo uso dentro de su ventana de 60 segundos |
Llamar a la 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":[]}'Métodos
| Método | Parámetros | Descripción |
|---|---|---|
supportedmethods | [] | Lista de métodos admitidos |
banpubkey | ["pubkey", "reason (optional)"] | Banear una pubkey para que no publique (también la elimina de la lista de permitidos) |
unbanpubkey | ["pubkey"] | Desbanear una pubkey |
listbannedpubkeys | [] | Listar pubkeys baneadas y motivos |
allowpubkey | ["pubkey", "reason (optional)"] | Añadir a la lista de permitidos (también desbanea) |
unallowpubkey | ["pubkey"] | Eliminar de la lista de permitidos |
listallowedpubkeys | [] | Listar la lista de permitidos |
allowkind / disallowkind | [kind] | Permitir / denegar un kind |
listallowedkinds / listdisallowedkinds | [] | Listar kinds permitidos / denegados |
changerelayname / changerelaydescription / changerelayicon | ["new value"] | Cambiar el nombre / la descripción / el icono del relé (persistido en el archivo de configuración; informa de un error cuando el archivo no se puede escribir) |
createrole / editrole / deleterole | [id, label, description, color, order] | Gestión de roles NIP-43 (los campos con tipo incorrecto se rechazan; eliminar un rol inexistente tiene éxito) |
assignrole / unassignrole | ["pubkey", "role id"] | Asignar / retirar un rol (una concesión duplicada o una revocación inexistente tiene éxito) |
assignmethod / unassignmethod | ["pubkey", "method"] | Conceder / revocar un método NIP-86 a una pubkey no administradora — solo los métodos de moderación y lectura son delegables |
listmethodassignees | [] | Listar concesiones de métodos ([{pubkey, methods}]) |
blockip / unblockip | ["ip", "reason (optional)"] | Bloquear / desbloquear una IP (bloquear también corta las conexiones existentes) |
listblockedips | [] | Listar IPs bloqueadas |
banevent | ["event id", "reason (optional)"] | Banear un evento (banear un id desconocido lo pre-banea; también lo elimina de la lista de permitidos) |
allowevent | ["event id", "reason (optional)"] | Añadir un evento a la lista de permitidos (también levanta el baneo; permitir un id desconocido lo pre-permite) |
unallowevent / unbanevent | ["event id"] | Eliminar un evento de la lista de permitidos / baneados (una entrada inexistente tiene éxito) |
listbannedevents | [] | Listar eventos baneados (una búsqueda fallida devuelve un error, nunca una lista vacía) |
listallowedevents | [] | Listar eventos permitidos |
listeventsneedingmoderation | [] | Eventos pendientes de moderación (siempre vacío en este relé) |
listclaims | [] | Listar códigos de invitación NIP-43 |
createclaim / deleteclaim | ["claim"] | Emitir / revocar un código de invitación NIP-43 (un kind:28934 con un código listado admite a su autor) |