Configura Nostr en OpenClaw: Guía rápida de integración
¿Alguna vez has sentido que las APIs de las redes sociales tradicionales son una caja negra que cambia las reglas cuando quiere? Si buscas una forma de comunicarte que sea realmente tuya, sin intermediarios y bajo tu control, Nostr es la respuesta. Integrar este protocolo en tu Gateway te permite gestionar mensajes directos de forma privada y descentralizada.
Configurar Nostr no tiene por qué ser un dolor de cabeza. En esta guía te explico cómo activar este plugin para que tu instancia de OpenClaw pueda recibir y responder mensajes cifrados (DMs) usando el estándar NIP-04.
Estado: Plugin opcional (desactivado por defecto).
Nostr es un protocolo descentralizado para redes sociales. Este canal permite que OpenClaw reciba y responda mensajes directos (DMs) cifrados a través de NIP-04.
Instalación (bajo demanda)
Sección titulada «Instalación (bajo demanda)»Onboarding (recomendado)
Sección titulada «Onboarding (recomendado)»- El Onboarding (
openclaw onboard) yopenclaw channels addmuestran los plugins de canales opcionales. - Si seleccionas Nostr, se te pedirá instalar el plugin en ese momento.
Valores por defecto de instalación:
- Canal Dev + git checkout disponible: utiliza la ruta del plugin local.
- Stable/Beta: se descarga desde npm.
Siempre puedes cambiar esta elección en el prompt.
Instalación manual
Sección titulada «Instalación manual»openclaw plugins install @openclaw/nostrUsa un checkout local (flujos de trabajo de desarrollo):
openclaw plugins install --link <path-to-local-nostr-plugin>Reinicia el Gateway después de instalar o activar plugins.
Configuración no interactiva
Sección titulada «Configuración no interactiva»openclaw channels add --channel nostr --private-key "$NOSTR_PRIVATE_KEY"openclaw channels add --channel nostr --private-key "$NOSTR_PRIVATE_KEY" --relay-urls "wss://relay.damus.io,wss://relay.primal.net"Usa --use-env para mantener NOSTR_PRIVATE_KEY en el entorno en lugar de guardar la clave en la configuración.
Configuración rápida
Sección titulada «Configuración rápida»- Genera un par de claves de Nostr (si lo necesitas):
# Using naknak key generate- Añade a la configuración:
{ channels: { nostr: { privateKey: "${NOSTR_PRIVATE_KEY}", }, },}- Exporta la clave:
export NOSTR_PRIVATE_KEY="nsec1..."- Reinicia el Gateway.
Referencia de configuración
Sección titulada «Referencia de configuración»| Clave | Tipo | Por defecto | Descripción |
|---|---|---|---|
privateKey | string | requerido | Clave privada en formato nsec o hex |
relays | string[] | ['wss://relay.damus.io', 'wss://nos.lol'] | URLs de los Relays (WebSocket) |
dmPolicy | string | pairing | Política de acceso a DMs |
allowFrom | string[] | [] | Pubkeys de remitentes permitidos |
enabled | boolean | true | Activar/desactivar canal |
name | string | - | Nombre a mostrar |
profile | object | - | Metadatos de perfil NIP-01 |
Metadatos del perfil
Sección titulada «Metadatos del perfil»Los datos del perfil se publican como un evento NIP-01 kind:0. Puedes gestionarlos desde la Control UI (Channels -> Nostr -> Profile) o configurarlos directamente.
Ejemplo:
{ channels: { nostr: { privateKey: "${NOSTR_PRIVATE_KEY}", profile: { name: "openclaw", displayName: "OpenClaw", about: "Personal assistant DM bot", picture: "https://example.com/avatar.png", banner: "https://example.com/banner.png", website: "https://example.com", nip05: "openclaw@example.com", lud16: "openclaw@example.com", }, }, },}Notas:
- Las URLs del perfil deben usar
https://. - Al importar desde relays, se combinan los campos y se mantienen los ajustes locales.
Control de acceso
Sección titulada «Control de acceso»Políticas de DM
Sección titulada «Políticas de DM»- pairing (por defecto): los remitentes desconocidos reciben un código de emparejamiento.
- allowlist: solo las pubkeys en
allowFrompueden enviar DMs. - open: DMs entrantes públicos (requiere
allowFrom: ["*"]). - disabled: ignora los DMs entrantes.
Notas sobre la aplicación:
- La política del remitente se comprueba antes de verificar la firma y descifrar el NIP-04.
- Las respuestas de emparejamiento se envían sin procesar el cuerpo del DM original y los mensajes entrantes tienen límites de velocidad.
Ejemplo de allowlist
Sección titulada «Ejemplo de allowlist»{ channels: { nostr: { privateKey: "${NOSTR_PRIVATE_KEY}", dmPolicy: "allowlist", allowFrom: ["npub1abc...", "npub1xyz..."], }, },}Formatos de clave
Sección titulada «Formatos de clave»Formatos aceptados:
- Clave privada:
nsec...o hex de 64 caracteres. - Pubkeys (
allowFrom):npub...o hex.
Valores por defecto: relay.damus.io y nos.lol.
{ channels: { nostr: { privateKey: "${NOSTR_PRIVATE_KEY}", relays: ["wss://relay.damus.io", "wss://relay.primal.net", "wss://nostr.wine"], }, },}Consejos:
- Usa 2 o 3 relays para tener redundancia.
- Evita usar demasiados relays para no generar latencia o duplicados.
- Los relays de pago pueden mejorar la fiabilidad.
- Los relays locales funcionan bien para pruebas (
ws://localhost:7777).
Soporte del protocolo
Sección titulada «Soporte del protocolo»| NIP | Estado | Descripción |
|---|---|---|
| NIP-01 | Soportado | Formato de evento básico + metadatos |
| NIP-04 | Soportado | DMs cifrados (kind:4) |
| NIP-17 | Planeado | DMs tipo Gift-wrapped |
| NIP-44 | Planeado | Cifrado versionado |
Pruebas
Sección titulada «Pruebas»Relay local
Sección titulada «Relay local»# Start strfrydocker run -p 7777:7777 ghcr.io/hoytech/strfry{ channels: { nostr: { privateKey: "${NOSTR_PRIVATE_KEY}", relays: ["ws://localhost:7777"], }, },}Prueba manual
Sección titulada «Prueba manual»- Anota la pubkey (npub) del bot que aparece en los logs.
- Abre un cliente de Nostr (Damus, Amethyst, etc.).
- Envía un DM a la pubkey del bot.
- Verifica la respuesta.
Solución de problemas
Sección titulada «Solución de problemas»No se reciben mensajes
Sección titulada «No se reciben mensajes»- Verifica que la clave privada sea válida.
- Asegúrate de que las URLs de los relays sean accesibles y usen
wss://(ows://en local). - Confirma que
enabledno esté enfalse. - Revisa los logs del Gateway para ver errores de conexión con el relay.
No se envían respuestas
Sección titulada «No se envían respuestas»- Comprueba que el relay acepte escrituras y verifica la conectividad de salida.
- Vigila los límites de velocidad (rate limits) del relay.
Respuestas duplicadas
Sección titulada «Respuestas duplicadas»- Es algo esperado cuando usas múltiples relays.
- Los mensajes se deduplican por ID de evento; solo la primera entrega activa una respuesta.
Seguridad
Sección titulada «Seguridad»- Nunca subas tus claves privadas al repositorio.
- Usa variables de entorno para las claves.
- Considera usar
allowlistpara bots en producción. - La política de emparejamiento y lista permitida se aplica antes de descifrar, evitando trabajo criptográfico innecesario por remitentes desconocidos.
Limitaciones (MVP)
Sección titulada «Limitaciones (MVP)»- Solo mensajes directos (sin chats grupales ni archivos multimedia).
- Solo NIP-04 (NIP-17 gift-wrap planeado).
Relacionado
Sección titulada «Relacionado»- Channels Overview — todos los canales soportados
- Pairing — flujo de autenticación y emparejamiento de DM
- Groups — comportamiento de chats grupales y menciones
- Channel Routing — enrutamiento de sesiones para mensajes
- Security — modelo de acceso y endurecimiento
¿Necesitas ayuda para configurar tus relays o gestionar tus claves? Prueba nuestro AI Setup Assistant.
Siguientes pasos
Sección titulada «Siguientes pasos»OpenClaw Expert
Sigues atascado?
Si esta pagina no resolvio tu caso, pregunta a OpenClaw Expert para pasos concretos.