@openclaw/nostr) que permite que OpenClaw reciba y responda mensajes directos cifrados con NIP-04 a través de relés de Nostr. Una cuenta por Gateway; solo mensajes directos.
Instalar
openclaw onboard) y openclaw channels add muestran Nostr desde el catálogo compartido de canales una vez instalado el plugin.
Configuración no interactiva
--use-env para mantener NOSTR_PRIVATE_KEY en el entorno en lugar de almacenar la clave en la configuración (solo cuenta predeterminada).
Configuración rápida
- Genera un par de claves de Nostr (si es necesario):
- Añádelo a la configuración:
- Exporta la clave:
- Reinicia el Gateway.
Referencia de configuración
| Clave | Tipo | Predeterminado | Descripción |
|---|---|---|---|
privateKey | string | obligatorio | Clave privada en formato nsec o hexadecimal; se permiten referencias secretas |
relays | string[] | ['wss://relay.damus.io', 'wss://nos.lol'] | URLs de relés (WebSocket) |
dmPolicy | string | pairing | Política de acceso de mensajes directos |
allowFrom | string[] | [] | Pubkeys de remitentes permitidos |
enabled | boolean | true | Habilitar/deshabilitar canal |
name | string | - | Nombre para mostrar |
profile | object | - | Metadatos de perfil NIP-01 |
Metadatos de perfil
Los datos de perfil se publican como un evento NIP-01kind:0. Puedes administrarlos desde la interfaz de control (Canales -> Nostr -> Perfil) o definirlos directamente en la configuración.
Ejemplo:
- Las URLs de perfil deben usar
https://. - Importar desde relés fusiona campos y conserva las anulaciones locales.
Control de acceso
Políticas de mensajes directos
- pairing (predeterminada): los remitentes desconocidos reciben un código de emparejamiento.
- allowlist: solo las pubkeys en
allowFrompueden enviar mensajes directos. - open: mensajes directos entrantes públicos (requiere
allowFrom: ["*"]). - disabled: ignorar mensajes directos entrantes.
- Las firmas de eventos entrantes se verifican antes de la política de remitentes y del descifrado NIP-04, por lo que los eventos falsificados se rechazan temprano.
- Las respuestas de emparejamiento se envían sin descifrar ni procesar el cuerpo del mensaje directo original.
- Los mensajes directos entrantes tienen límite de tasa (global y por remitente), y las cargas sobredimensionadas se descartan antes del descifrado.
Ejemplo de allowlist
Formatos de clave
Formatos aceptados:- Clave privada:
nsec...o hexadecimal de 64 caracteres - Pubkeys (
allowFrom):npub...o hexadecimal
Relés
Predeterminados:relay.damus.io y nos.lol.
- Usa 2-3 relés para redundancia.
- Evita demasiados relés (latencia, duplicación).
- Los relés de pago pueden mejorar la confiabilidad.
- Los relés locales sirven para pruebas (
ws://localhost:7777).
Soporte de protocolo
| NIP | Estado | Descripción |
|---|---|---|
| NIP-01 | Compatible | Formato básico de evento + metadatos de perfil |
| NIP-04 | Compatible | Mensajes directos cifrados (kind:4) |
| NIP-17 | Planificado | Mensajes directos envueltos como regalo |
| NIP-44 | Planificado | Cifrado versionado |
Pruebas
Relé local
Prueba manual
- Anota la pubkey del bot desde los registros del Gateway o
openclaw channels status(hexadecimal; conviértela a npub en tu cliente si es necesario). - Abre un cliente de Nostr (Amethyst, Damus, etc.).
- Envía un mensaje directo a la pubkey del bot.
- Verifica la respuesta.
Solución de problemas
No recibe mensajes
- Verifica que la clave privada sea válida.
- Asegúrate de que las URLs de relés sean accesibles y usen
wss://(ows://para local). - Confirma que
enabledno seafalse. - Revisa los registros del Gateway en busca de errores de conexión con relés.
No envía respuestas
- Comprueba que el relé acepte escrituras.
- Verifica la conectividad saliente.
- Vigila los límites de tasa del relé.
Respuestas duplicadas
- Es esperable al usar varios relés.
- Los mensajes se deduplican por ID de evento; solo la primera entrega desencadena una respuesta.
Seguridad
- Nunca confirmes claves privadas en el repositorio.
- Usa variables de entorno para las claves.
- Considera
allowlistpara bots de producción. - Las firmas se verifican antes de la política de remitentes, y la política de remitentes se aplica antes del descifrado, por lo que los eventos falsificados se rechazan temprano y los remitentes desconocidos no pueden forzar trabajo criptográfico completo.
Limitaciones (MVP)
- Solo mensajes directos (sin chats grupales).
- Sin adjuntos multimedia.
- Solo NIP-04 (envoltorio tipo regalo de NIP-17 planificado).
Relacionado
- Descripción general de canales — todos los canales compatibles
- Emparejamiento — autenticación de mensajes directos y flujo de emparejamiento
- Grupos — comportamiento de chats grupales y control por menciones
- Enrutamiento de canales — enrutamiento de sesiones para mensajes
- Seguridad — modelo de acceso y endurecimiento