OpenClaw Nostr 頻道
透過選用外掛將 OpenClaw 連接到 Nostr 去中心化網路。此整合讓您的 AI 助理能夠在任何 Nostr relay 上接收和回覆 NIP-04 加密 DM,無需中心化伺服器、無需註冊帳號,只需一組密碼金鑰對和 relay 連線即可。非常適合重視隱私、需要抗審查和自主主權的部署場景。
Nostr 支援功能
文字訊息
支援
媒體與檔案
不支援
表情回應
支援
討論串
不支援
語音訊息
不支援
群組聊天
不支援
Nostr 前置條件
- 已安裝並運行 OpenClaw Gateway
- 一組 Nostr 金鑰對(nsec 或十六進位格式的私鑰)——可使用 'nak key generate' 產生
- 至少一個可透過 WebSocket 存取的 Nostr relay(例如 wss://relay.damus.io)
- 伺服器上已安裝 Node.js 18+
Nostr 快速設定
安裝 Nostr 外掛
執行 'openclaw plugins install @openclaw/nostr' 來新增 Nostr 頻道。也可以使用 'openclaw onboard' 或 'openclaw channels add',然後從外掛清單中選擇 Nostr。安裝完成後請重新啟動 Gateway。
產生金鑰對並進行設定
使用 'nak key generate' 產生 Nostr 金鑰對。將私鑰設定為環境變數(export NOSTR_PRIVATE_KEY="nsec1..."),並在 openclaw.json 設定中使用 ${NOSTR_PRIVATE_KEY} 引用它。
啟動並傳送測試 DM
使用 'openclaw start' 重新啟動 Gateway。在啟動日誌中找到您的機器人公鑰(npub)。開啟任意 Nostr 用戶端(例如 Damus、Amethyst、Primal),向機器人的 npub 傳送加密 DM。如果使用預設的配對策略,請透過 CLI 核准傳送者。
Nostr 設定範例
{
"channels": {
"nostr": {
"privateKey": "${NOSTR_PRIVATE_KEY}",
"relays": [
"wss://relay.damus.io",
"wss://nos.lol"
],
"dmPolicy": "pairing"
}
}
}Nostr 深入了解
架構概覽
外掛安裝
金鑰產生與管理
{
"channels": {
"nostr": {
"privateKey": "${NOSTR_PRIVATE_KEY}"
}
}
}Relay 設定
{
"channels": {
"nostr": {
"relays": [
"wss://relay.damus.io",
"wss://nos.lol",
"wss://relay.nostr.band"
]
}
}
}DM 策略
{
"channels": {
"nostr": {
"dmPolicy": "allowlist",
"allowFrom": [
"npub1abc...xyz",
"npub1def...uvw"
]
}
}
}個人資料中繼資料 (NIP-01)
{
"channels": {
"nostr": {
"profile": {
"name": "openclaw-bot",
"display_name": "OpenClaw AI Assistant",
"about": "AI-powered assistant on Nostr. DM me!",
"picture": "https://example.com/bot-avatar.png",
"nip05": "bot@yourdomain.com"
}
}
}
}加密與協定支援
使用本機 Relay 進行測試
{
"channels": {
"nostr": {
"relays": ["ws://localhost:7777"],
"dmPolicy": "open",
"allowFrom": ["*"]
}
}
}Nostr 設定參考
| Key | Type | Default | Description |
|---|---|---|---|
| privateKey | string | (required) | Nostr 私鑰,nsec(Bech32)或 64 字元十六進位格式。請使用環境變數引用。 |
| relays | string[] | ["wss://relay.damus.io", "wss://nos.lol"] | 要連接的 Nostr relay WebSocket URL 清單 |
| dmPolicy | string | "pairing" | DM 存取控制策略:'pairing'、'allowlist'、'open' 或 'disabled' |
| allowFrom | string[] | [] | 允許向機器人傳送訊息的公鑰(npub 或十六進位格式),適用於 dmPolicy 為 'allowlist' 時 |
| enabled | boolean | true | 啟用或停用 Nostr 頻道 |
| name | string | "" | 此頻道實例的顯示名稱 |
| profile.name | string | "" | 作為 NIP-01 中繼資料發布的機器人使用者名稱 |
| profile.display_name | string | "" | 作為 NIP-01 中繼資料發布的完整顯示名稱 |
| profile.about | string | "" | 作為 NIP-01 中繼資料發布的機器人個人簡介/說明 |
| profile.picture | string | "" | 作為 NIP-01 中繼資料發布的頭像圖片 URL(需使用 HTTPS) |
| profile.banner | string | "" | 作為 NIP-01 中繼資料發布的橫幅圖片 URL(需使用 HTTPS) |
| profile.website | string | "" | 作為 NIP-01 中繼資料發布的網站 URL |
| profile.nip05 | string | "" | NIP-05 驗證識別碼(例如 'bot@yourdomain.com') |
| profile.lud16 | string | "" | 用於接收 zaps 的 Lightning 地址 |
Nostr 私鑰,nsec(Bech32)或 64 字元十六進位格式。請使用環境變數引用。
要連接的 Nostr relay WebSocket URL 清單
DM 存取控制策略:'pairing'、'allowlist'、'open' 或 'disabled'
允許向機器人傳送訊息的公鑰(npub 或十六進位格式),適用於 dmPolicy 為 'allowlist' 時
啟用或停用 Nostr 頻道
此頻道實例的顯示名稱
作為 NIP-01 中繼資料發布的機器人使用者名稱
作為 NIP-01 中繼資料發布的完整顯示名稱
作為 NIP-01 中繼資料發布的機器人個人簡介/說明
作為 NIP-01 中繼資料發布的頭像圖片 URL(需使用 HTTPS)
作為 NIP-01 中繼資料發布的橫幅圖片 URL(需使用 HTTPS)
作為 NIP-01 中繼資料發布的網站 URL
NIP-05 驗證識別碼(例如 'bot@yourdomain.com')
用於接收 zaps 的 Lightning 地址
Nostr 常見問題
Nostr 故障排除
Relay 連線可能失敗,或傳送者發布到的 relay 與機器人訂閱的 relay 不同。
私鑰不是有效的 nsec(Bech32)或 64 字元十六進位格式,或環境變數未設定。
機器人設定的 relay 與接收者用戶端的 relay 沒有重疊,因此事件無法傳播。
外掛安裝後 Gateway 未重新啟動,或安裝靜默失敗。