Gerenciamento NIP-86
A API de gerenciamento JSON-RPC: moderação, listas de acesso, identidade do relay, papéis, códigos de convite e delegações de métodos, com autenticação Bearer ou NIP-98.
Ativação
NIP-86 é uma API JSON-RPC para gerenciar o relay. Ela precisa de um dos dois métodos de autenticação, caso contrário cada chamada é recusada:
| Método | Configuração |
|---|---|
| Token Bearer | Defina rpc.management_token e envie Authorization: Bearer
<token> |
| NIP-98 | Defina rpc.admin_pubkey e envie um evento de autenticação NIP-98 (kind 27235) assinado pela chave de administração em Authorization: Nostr <base64> — uma tag payload é obrigatória; cada evento é de uso único dentro da sua janela de 60 segundos |
Chamar a API
POST / com 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 | Descrição |
|---|---|---|
supportedmethods | [] | Lista de métodos suportados |
banpubkey | ["pubkey", "reason (optional)"] | Banir uma pubkey de publicar (também a remove da lista de permissão) |
unbanpubkey | ["pubkey"] | Desbanir uma pubkey |
listbannedpubkeys | [] | Listar pubkeys banidas e motivos |
allowpubkey | ["pubkey", "reason (optional)"] | Adicionar à lista de permissão (também remove o ban) |
unallowpubkey | ["pubkey"] | Remover da lista de permissão |
listallowedpubkeys | [] | Listar a lista de permissão |
allowkind / disallowkind | [kind] | Permitir / negar um kind |
listallowedkinds / listdisallowedkinds | [] | Listar kinds permitidos / negados |
changerelayname / changerelaydescription / changerelayicon | ["new value"] | Alterar o nome / descrição / ícone do relay (persistido no arquivo de configuração; retorna um erro quando o arquivo não pode ser escrito) |
createrole / editrole / deleterole | [id, label, description, color, order] | Gerenciamento de papéis NIP-43 (campos com tipo errado são rejeitados; excluir um papel inexistente retorna sucesso) |
assignrole / unassignrole | ["pubkey", "role id"] | Atribuir / remover um papel (uma concessão duplicada ou uma revogação inexistente retorna sucesso) |
assignmethod / unassignmethod | ["pubkey", "method"] | Conceder / revogar um método NIP-86 a uma pubkey não administradora — apenas métodos de moderação e leitura podem ser delegados |
listmethodassignees | [] | Listar concessões de métodos ([{pubkey, methods}]) |
blockip / unblockip | ["ip", "reason (optional)"] | Bloquear / desbloquear um IP (bloquear também encerra as conexões existentes) |
listblockedips | [] | Listar IPs bloqueados |
banevent | ["event id", "reason (optional)"] | Banir um evento (banir um id desconhecido pré-bane-o; também o remove da lista de permissão) |
allowevent | ["event id", "reason (optional)"] | Adicionar um evento à lista de permissão (também levanta o ban; permitir um id desconhecido pré-permite-o) |
unallowevent / unbanevent | ["event id"] | Remover um evento da lista de permissão / bloqueio (uma entrada inexistente retorna sucesso) |
listbannedevents | [] | Listar eventos banidos (uma busca com falha retorna um erro, nunca uma lista vazia) |
listallowedevents | [] | Listar eventos permitidos |
listeventsneedingmoderation | [] | Eventos a aguardar moderação (sempre vazio neste relay) |
listclaims | [] | Listar códigos de convite NIP-43 |
createclaim / deleteclaim | ["claim"] | Emitir / revogar um código de convite NIP-43 (um kind:28934 com um código listado admite o seu autor) |