@openclaw/nostr) que permite a OpenClaw recibir y responder mensajes directos cifrados con NIP-04 mediante relés de Nostr. Una cuenta por gateway; solo mensajes directos.
Instalación
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 para la cuenta predeterminada).
Configuración rápida
- Genere un par de claves de Nostr (si es necesario):
- Añádalo a la configuración:
- Exporte la clave:
- Reinicie el gateway.
Referencia de configuración
Metadatos del perfil
Los datos del perfil se publican como un evento NIP-01kind:0. Se pueden administrar desde la interfaz de control (Canales -> Nostr -> Perfil) o definir directamente en la configuración.
Ejemplo:
- Las URL del perfil deben usar
https://. - Al importar desde relés, se combinan los campos y se conservan las anulaciones locales.
Control de acceso
Políticas de mensajes directos
- emparejamiento (predeterminado): los remitentes desconocidos reciben un código de emparejamiento.
- lista de permitidos: solo las claves públicas incluidas en
allowFrompueden enviar mensajes directos. - abierta: mensajes directos entrantes públicos (requiere
allowFrom: ["*"]). - deshabilitada: se ignoran los mensajes directos entrantes.
- Las firmas de los eventos entrantes se verifican antes de aplicar la política de remitentes y descifrar mediante NIP-04, por lo que los eventos falsificados se rechazan de inmediato.
- Las respuestas de emparejamiento se envían sin descifrar ni procesar el cuerpo del mensaje directo original.
- Se limita la frecuencia de los mensajes directos entrantes (globalmente y por remitente), y las cargas útiles demasiado grandes se descartan antes de descifrarlas.
Ejemplo de lista de permitidos
Formatos de clave
Formatos aceptados:- Clave privada:
nsec...o una cadena hexadecimal de 64 caracteres - Claves públicas (
allowFrom):npub...o formato hexadecimal
Relés
Valores predeterminados:relay.damus.io y nos.lol.
- Use entre 2 y 3 relés para obtener redundancia.
- Evite usar demasiados relés (latencia y duplicación).
- Los relés de pago pueden mejorar la fiabilidad.
- Los relés locales son adecuados para las pruebas (
ws://localhost:7777).
Compatibilidad con protocolos
Pruebas
Relé local
Prueba manual
- Anote la clave pública del bot que aparece en los registros del gateway o en
openclaw channels status(hexadecimal; conviértala a npub en su cliente si es necesario). - Abra un cliente de Nostr (Amethyst, Damus, etc.).
- Envíe un mensaje directo a la clave pública del bot.
- Verifique la respuesta.
Solución de problemas
No se reciben mensajes
- Verifique que la clave privada sea válida.
- Asegúrese de que las URL de los relés sean accesibles y usen
wss://(ows://para conexiones locales). - Confirme que
enabledno seafalse. - Compruebe si hay errores de conexión con los relés en los registros del gateway.
No se envían respuestas
- Compruebe que el relé acepte escrituras.
- Verifique la conectividad saliente.
- Compruebe si se alcanzan los límites de frecuencia del relé.
Respuestas duplicadas
- Es algo esperado cuando se usan varios relés.
- Los mensajes se deduplican mediante el identificador del evento; solo la primera entrega desencadena una respuesta.
Seguridad
- Nunca confirme claves privadas en el repositorio.
- Use variables de entorno para las claves.
- Considere
allowlistpara bots de producción. - Las firmas se verifican antes de aplicar la política de remitentes, y esta se aplica antes de descifrar, por lo que los eventos falsificados se rechazan de inmediato y los remitentes desconocidos no pueden forzar la ejecución completa de las operaciones criptográficas.
Limitaciones (MVP)
- Solo mensajes directos (sin chats grupales).
- Sin archivos multimedia adjuntos.
- Solo NIP-04 (se prevé la envoltura de regalo de NIP-17).
Contenido relacionado
- Descripción general de los canales — todos los canales compatibles
- Emparejamiento — autenticación de mensajes directos y flujo de emparejamiento
- Grupos — comportamiento de los chats grupales y restricción mediante menciones
- Enrutamiento de canales — enrutamiento de sesiones para los mensajes
- Seguridad — modelo de acceso y refuerzo de la seguridad