通过 NIP-04 加密私信接入去中心化 Nostr 协议。当前仅支持私信(DM),不支持群聊和媒体附件。
安装
openclaw plugins install @openclaw/nostr快速配置
-
生成 Nostr 密钥对:
nak key generate -
配置:
{
channels: {
nostr: {
privateKey: "${NOSTR_PRIVATE_KEY}",
},
},
}- 导出密钥:
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"配置参考
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
privateKey | string | 必填 | nsec 或 64 位十六进制格式 |
relays | string[] | ['wss://relay.damus.io', 'wss://nos.lol'] | Relay URL |
dmPolicy | string | pairing | DM 访问策略 |
allowFrom | string[] | [] | 允许的发送者公钥 |
访问控制
pairing(默认):未知发送者收到配对码allowlist:仅allowFrom中的公钥可发 DMopen:公开 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
- 使用环境变量存储密钥
- 入站事件签名在发送者策略和解密前验证,伪造事件会被提前拒绝
相关链接
- channel-pairing — DM 配对流程
- channel-routing — 消息路由机制