@openclaw/nostr),讓 OpenClaw 能透過 Nostr 中繼站接收並回覆 NIP-04 加密的私訊。每個閘道限用一個帳號;僅支援私訊。
安裝
openclaw onboard)和 openclaw channels add 會從共用頻道目錄顯示 Nostr。
非互動式設定
--use-env 可將 NOSTR_PRIVATE_KEY 保留在環境中,而不將金鑰儲存在設定中(僅限預設帳號)。
快速設定
- 產生 Nostr 金鑰對(如有需要):
- 新增至設定:
- 匯出金鑰:
- 重新啟動閘道。
設定參考
個人檔案中繼資料
個人檔案資料會以 NIP-01kind:0 事件發布。你可以從控制介面(頻道 -> Nostr -> 個人檔案)進行管理,或直接在設定中指定。
範例:
- 個人檔案 URL 必須使用
https://。 - 從中繼站匯入時會合併欄位,並保留本機覆寫值。
存取控制
私訊政策
- 配對(預設):未知傳送者會收到配對碼。
- 允許清單:只有
allowFrom中的公開金鑰可以傳送私訊。 - 開放:允許公開接收私訊(需要
allowFrom: ["*"])。 - 停用:忽略收到的私訊。
- 在套用傳送者政策和進行 NIP-04 解密之前,會先驗證收到事件的簽章,因此偽造事件會提早遭到拒絕。
- 系統傳送配對回覆時,不會解密或處理原始私訊內容。
- 收到的私訊會受到速率限制(全域及個別傳送者),且過大的承載資料會在解密前遭到捨棄。
允許清單範例
金鑰格式
接受的格式:- 私密金鑰:
nsec...或 64 個字元的十六進位值 - 公開金鑰(
allowFrom):npub...或十六進位值
中繼站
預設值:relay.damus.io 和 nos.lol。
- 使用 2-3 個中繼站以提供備援。
- 避免使用過多中繼站(會造成延遲和重複)。
- 付費中繼站可提升可靠性。
- 本機中繼站適合用於測試(
ws://localhost:7777)。
通訊協定支援
測試
本機中繼站
手動測試
- 從閘道記錄或
openclaw channels status記下機器人的公開金鑰(十六進位;如有需要,請在你的用戶端轉換為 npub)。 - 開啟 Nostr 用戶端(Amethyst、Damus 等)。
- 向機器人的公開金鑰傳送私訊。
- 確認回覆。
疑難排解
未收到訊息
- 確認私密金鑰有效。
- 確認中繼站 URL 可連線,並使用
wss://(本機則使用ws://)。 - 確認
enabled不是false。 - 檢查閘道記錄中是否有中繼站連線錯誤。
無法傳送回覆
- 檢查中繼站是否接受寫入。
- 確認對外連線能力。
- 留意中繼站速率限制。
重複回覆
- 使用多個中繼站時,這是預期行為。
- 訊息會依事件 ID 去除重複項目;只有第一次傳遞會觸發回覆。
安全性
- 絕對不要提交私密金鑰。
- 使用環境變數儲存金鑰。
- 對於正式環境機器人,請考慮使用
allowlist。 - 在套用傳送者政策前會先驗證簽章,且傳送者政策會在解密前強制執行,因此偽造事件會提早遭到拒絕,而未知傳送者無法強制系統執行完整的密碼學運算。
限制(MVP)
- 僅支援私訊(不支援群組聊天)。
- 不支援媒體附件。
- 僅支援 NIP-04(已規劃 NIP-17 禮物包裝)。