インストール (オンデマンド)
オンボーディング (推奨)
- オンボーディングウィザード (
openclaw onboard) やopenclaw channels addでは、オプションのチャネルプラグインが一覧表示されます。 - Nostr を選択すると、必要に応じてプラグインをインストールするように求められます。
- dev チャンネル + git チェックアウトが利用可能: ローカルのプラグインパスを使用します。
- stable/beta チャンネル: npm からダウンロードします。
手動インストール
クイックセットアップ
- Nostr のキーペアを生成します (必要な場合):
- 構成ファイルに追加します:
- キーを環境変数としてエクスポートします:
- ゲートウェイを再起動します。
構成リファレンス
| キー | 型 | デフォルト | 説明 |
|---|---|---|---|
privateKey | string | 必須 | nsec または 16 進形式の秘密鍵 |
relays | string[] | ['wss://relay.damus.io', 'wss://nos.lol'] | リレー URL (WebSocket) |
dmPolicy | string | pairing | DM アクセスポリシー |
allowFrom | string[] | [] | 許可された送信者の公開鍵 |
enabled | boolean | true | チャネルの有効/無効 |
name | string | - | 表示名 |
profile | object | - | NIP-01 プロフィールメタデータ |
プロフィールメタデータ
プロフィールデータは NIP-01kind:0 イベントとして公開されます。コントロール UI (Channels -> Nostr -> Profile) から管理するか、構成ファイルで直接設定できます。
構成例:
- プロフィールの URL には
https://を使用する必要があります。 - リレーからインポートすると、フィールドがマージされ、ローカルの上書き設定が保持されます。
アクセス制御
DM ポリシー
- pairing (デフォルト): 未知の送信者にはペアリングコードが送信されます。
- allowlist:
allowFromに含まれる公開鍵のみが DM を送信できます。 - open: パブリックな受信 DM を許可します (
allowFrom: ["*"]が必要)。 - disabled: 受信 DM を無視します。
許可リストの例
キーの形式
以下の形式を受け入れます:- 秘密鍵:
nsec...または 64 文字の 16 進数 - 公開鍵 (
allowFrom):npub...または 16 進数
リレー (Relays)
デフォルト設定:relay.damus.io および nos.lol。
- 冗長性のために 2〜3 個のリレーを使用してください。
- リレーが多すぎると遅延や重複の原因となるため避けてください。
- 有料リレーを使用すると信頼性が向上する場合があります。
- テストにはローカルリレーが適しています (
ws://localhost:7777)。
プロトコルのサポート
| NIP | ステータス | 説明 |
|---|---|---|
| NIP-01 | サポート済み | 基本的なイベント形式 + プロフィールメタデータ |
| NIP-04 | サポート済み | 暗号化 DM (kind:4) |
| NIP-17 | 計画中 | ギフト包装 (Gift-wrapped) DM |
| NIP-44 | 計画中 | バージョン管理された暗号化 |
テスト
ローカルリレー
手動テスト
- ログからボットの公開鍵 (npub) をメモします。
- Nostr クライアント (Damus, Amethyst 等) を開きます。
- ボットの公開鍵に DM を送信します。
- 応答を確認します。
トラブルシューティング
メッセージを受信できない
- 秘密鍵が有効であることを確認してください。
- リレーの URL が到達可能であり、
wss://(ローカルの場合はws://) を使用していることを確認してください。 enabledがfalseになっていないか確認してください。- ゲートウェイのログでリレーの接続エラーを確認してください。
応答を送信できない
- リレーが書き込みを受け入れているか確認してください。
- アウトバウンドの接続性を確認してください。
- リレーのレート制限に注意してください。
応答が重複する
- 複数のリレーを使用している場合、重複は想定内の動作です。
- メッセージはイベント ID によって重複排除されます。最初のアクティベーションのみが応答をトリガーします。
セキュリティ
- 秘密鍵を決してコミットしないでください。
- キーの管理には環境変数を使用してください。
- 本番用のボットには
allowlistの使用を検討してください。
制限事項 (MVP)
- ダイレクトメッセージのみ (グループチャットは不可)。
- メディアの添付は未サポート。
- NIP-04 のみ (NIP-17 のギフト包装は計画中)。