通过 NIP-04 加密私信接入去中心化 Nostr 协议。当前仅支持私信(DM),不支持群聊和媒体附件。

安装

openclaw plugins install @openclaw/nostr

快速配置

  1. 生成 Nostr 密钥对:nak key generate

  2. 配置:

{
  channels: {
    nostr: {
      privateKey: "${NOSTR_PRIVATE_KEY}",
    },
  },
}
  1. 导出密钥:export NOSTR_PRIVATE_KEY="nsec1..."

非交互式设置

openclaw channels add --channel nostr --private-key "$NOSTR_PRIVATE_KEY" \
  --relay-urls "wss://relay.damus.io,wss://relay.primal.net"

配置参考

配置项类型默认值说明
privateKeystring必填nsec 或 64 位十六进制格式
relaysstring[]['wss://relay.damus.io', 'wss://nos.lol']Relay URL
dmPolicystringpairingDM 访问策略
allowFromstring[][]允许的发送者公钥

访问控制

  • pairing(默认):未知发送者收到配对码
  • allowlist:仅 allowFrom 中的公钥可发 DM
  • open:公开 DM(需 allowFrom: ["*"])
{
  channels: {
    nostr: {
      privateKey: "${NOSTR_PRIVATE_KEY}",
      dmPolicy: "allowlist",
      allowFrom: ["npub1abc...", "npub1xyz..."],
    },
  },
}

Relay 配置

建议使用 2-3 个 relay 保证冗余,避免过多(增加延迟和重复):

{
  channels: {
    nostr: {
      relays: ["wss://relay.damus.io", "wss://relay.primal.net", "wss://nostr.wine"],
    },
  },
}

协议支持

NIP状态说明
NIP-01支持基础事件格式 + 个人资料
NIP-04支持加密 DM(kind:4)
NIP-17计划中Gift-wrapped DM
NIP-44计划中版本化加密

安全注意

  • 永远不要提交私钥到 git
  • 使用环境变量存储密钥
  • 入站事件签名在发送者策略和解密前验证,伪造事件会被提前拒绝

相关链接