Ir al contenido

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.

  • El Onboarding (openclaw onboard) y openclaw channels add muestran 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.

Ventana de terminal
openclaw plugins install @openclaw/nostr

Usa un checkout local (flujos de trabajo de desarrollo):

Ventana de terminal
openclaw plugins install --link <path-to-local-nostr-plugin>

Reinicia el Gateway después de instalar o activar plugins.

Ventana de terminal
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.

  1. Genera un par de claves de Nostr (si lo necesitas):
Ventana de terminal
# Using nak
nak key generate
  1. Añade a la configuración:
{
channels: {
nostr: {
privateKey: "${NOSTR_PRIVATE_KEY}",
},
},
}
  1. Exporta la clave:
Ventana de terminal
export NOSTR_PRIVATE_KEY="nsec1..."
  1. Reinicia el Gateway.
ClaveTipoPor defectoDescripción
privateKeystringrequeridoClave privada en formato nsec o hex
relaysstring[]['wss://relay.damus.io', 'wss://nos.lol']URLs de los Relays (WebSocket)
dmPolicystringpairingPolítica de acceso a DMs
allowFromstring[][]Pubkeys de remitentes permitidos
enabledbooleantrueActivar/desactivar canal
namestring-Nombre a mostrar
profileobject-Metadatos de perfil NIP-01

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.
  • pairing (por defecto): los remitentes desconocidos reciben un código de emparejamiento.
  • allowlist: solo las pubkeys en allowFrom pueden 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.
{
channels: {
nostr: {
privateKey: "${NOSTR_PRIVATE_KEY}",
dmPolicy: "allowlist",
allowFrom: ["npub1abc...", "npub1xyz..."],
},
},
}

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).
NIPEstadoDescripción
NIP-01SoportadoFormato de evento básico + metadatos
NIP-04SoportadoDMs cifrados (kind:4)
NIP-17PlaneadoDMs tipo Gift-wrapped
NIP-44PlaneadoCifrado versionado
Ventana de terminal
# Start strfry
docker run -p 7777:7777 ghcr.io/hoytech/strfry
{
channels: {
nostr: {
privateKey: "${NOSTR_PRIVATE_KEY}",
relays: ["ws://localhost:7777"],
},
},
}
  1. Anota la pubkey (npub) del bot que aparece en los logs.
  2. Abre un cliente de Nostr (Damus, Amethyst, etc.).
  3. Envía un DM a la pubkey del bot.
  4. Verifica la respuesta.
  • Verifica que la clave privada sea válida.
  • Asegúrate de que las URLs de los relays sean accesibles y usen wss:// (o ws:// en local).
  • Confirma que enabled no esté en false.
  • Revisa los logs del Gateway para ver errores de conexión con el relay.
  • Comprueba que el relay acepte escrituras y verifica la conectividad de salida.
  • Vigila los límites de velocidad (rate limits) del relay.
  • Es algo esperado cuando usas múltiples relays.
  • Los mensajes se deduplican por ID de evento; solo la primera entrega activa una respuesta.
  • Nunca subas tus claves privadas al repositorio.
  • Usa variables de entorno para las claves.
  • Considera usar allowlist para 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.
  • Solo mensajes directos (sin chats grupales ni archivos multimedia).
  • Solo NIP-04 (NIP-17 gift-wrap planeado).
  • 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.

OpenClaw

OpenClaw Expert

Sigues atascado?

Si esta pagina no resolvio tu caso, pregunta a OpenClaw Expert para pasos concretos.