Nostrの暗号化DM(NIP-04)でOpenClawを使うイメージ

【最新版】NostrでOpenClawを使う方法(暗号化DM:NIP-04)

Nostr

ステータス:任意のプラグイン(デフォルトでは無効)。

Nostr は分散型のソーシャルネットワーキング向けプロトコルです。このチャネルにより、OpenClaw は NIP-04 を使って暗号化されたダイレクトメッセージ(DM)を受信し、返信できるようになります。

インストール(必要になったときに)

オンボーディング(推奨)

  • オンボーディング(openclaw onboard)と openclaw channels add では、任意チャネルのプラグインも一覧に表示されます。
  • Nostr を選択すると、必要に応じてプラグインのインストールを促されます。

インストールのデフォルト挙動:

  • Dev チャネル + git checkout が利用可能:ローカルのプラグインパスを使用します。
  • Stable/Beta:npm からダウンロードします。

プロンプトで選択を上書きすることもできます。

手動インストール

openclaw plugins install @openclaw/nostr

ローカルチェックアウト(開発ワークフロー):

openclaw plugins install --link <path-to-openclaw>/extensions/nostr

プラグインをインストールまたは有効化したら、Gateway を再起動してください。

非対話(non-interactive)セットアップ

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

--use-env を使うと、NOSTR_PRIVATE_KEY を config に保存せず、環境変数に保持できます。

クイックセットアップ

  1. Nostr の鍵ペアを生成します(必要な場合):
    # nak を使用
    nak key generate
  2. config に追加します:
    {
      "channels": {
        "nostr": {
          "privateKey": "${NOSTR_PRIVATE_KEY}"
        }
      }
    }
  3. キーをエクスポートします:
    export NOSTR_PRIVATE_KEY="nsec1..."
  4. Gateway を再起動します。

設定リファレンス

主な設定キー:

  • privateKey(string、必須):nsec または hex 形式の秘密鍵
  • relays(string[]、デフォルト:["wss://relay.damus.io", "wss://nos.lol"]):Relay の URL(WebSocket)
  • dmPolicy(string、デフォルト:pairing):DM のアクセス制御ポリシー
  • allowFrom(string[]、デフォルト:[]):許可する送信者の pubkey
  • enabled(boolean、デフォルト:true):チャネルの有効/無効
  • name(string):表示名
  • profile(object):NIP-01 のプロフィールメタデータ

プロフィールメタデータ

プロフィールデータは NIP-01 の kind:0 イベントとして公開されます。 Control UI(Channels → Nostr → Profile)から管理するか、config に直接設定できます。

例:

{
  "channels": {
    "nostr": {
      "privateKey": "${NOSTR_PRIVATE_KEY}",
      "profile": {
        "name": "openclaw",
        "displayName": "OpenClaw",
        "about": "Personal assistant DM bot",
        "picture": "https://example.com/avatar.png",
        "banner": "https://example.com/banner.png",
        "website": "https://example.com",
        "nip05": "openclaw@example.com",
        "lud16": "openclaw@example.com"
      }
    }
  }
}

注意:

  • プロフィールの URL は https:// を使用する必要があります。
  • Relay からのインポートはフィールドをマージし、ローカルの上書きは保持されます。

アクセス制御

DM ポリシー

  • pairing(デフォルト):未知の送信者にはペアリングコードを返します。
  • allowlistallowFrom に含まれる pubkey のみ DM 可能。
  • open:公開 DM を受け付けます(allowFrom: ["*"] が必要)。
  • disabled:受信 DM を無視します。

Allowlist 例

{
  "channels": {
    "nostr": {
      "privateKey": "${NOSTR_PRIVATE_KEY}",
      "dmPolicy": "allowlist",
      "allowFrom": ["npub1abc...", "npub1xyz..."]
    }
  }
}

鍵フォーマット

受け付ける形式:

  • 秘密鍵:nsec... または 64 文字の hex
  • Pubkey(allowFrom):npub... または hex

Relay(リレー)

デフォルト:relay.damus.ionos.lol

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

ヒント:

  • 冗長性のため、2〜3 個の relay を推奨します。
  • relay を増やしすぎると、レイテンシや重複が増えます。
  • 有料 relay を使うと信頼性が上がることがあります。
  • ローカル relay もテスト用途には有用です(ws://localhost:7777)。

プロトコル対応

  • NIP-01:対応(基本イベント形式 + プロフィールメタデータ)
  • NIP-04:対応(暗号化 DM:kind:4
  • NIP-17:予定(ギフトラップ DM)
  • NIP-44:予定(バージョン付き暗号化)

テスト

ローカル relay

# strfry を起動
docker run -p 7777:7777 ghcr.io/hoytech/strfry
{
  "channels": {
    "nostr": {
      "privateKey": "${NOSTR_PRIVATE_KEY}",
      "relays": ["ws://localhost:7777"]
    }
  }
}

手動テスト

  1. ログからボットの pubkey(npub)を控えます。
  2. Nostr クライアント(Damus、Amethyst など)を開きます。
  3. ボットの pubkey 宛に DM を送ります。
  4. 返信が来ることを確認します。

トラブルシューティング

メッセージを受信できない

  • 秘密鍵が有効であることを確認します。
  • relay URL に到達でき、wss://(ローカルのみ ws://)であることを確認します。
  • enabledfalse になっていないことを確認します。
  • relay 接続エラーがないか Gateway ログを確認します。

返信を送信できない

  • relay が書き込みを受け付けているかを確認します。
  • アウトバウンドのネットワーク到達性を確認します。
  • relay のレート制限に注意します。

返信が重複する

  • 複数 relay を使っている場合に起き得ます。
  • メッセージは event ID で重複排除され、最初の配信だけが返信をトリガーします。

セキュリティ

  • 秘密鍵をコミットしないでください。
  • 鍵は環境変数で管理してください。
  • 本番のボットでは allowlist を検討してください。

制限(MVP)

  • DM のみ(グループチャットは非対応)。
  • メディア添付は非対応。
  • NIP-04 のみ(NIP-17 のギフトラップは予定)。

参考

BizClaw 導入支援

OpenClaw の構築を
まるごと代行します

Mac mini のセットアップから Slack・iMessage 連携まで、届いた日から使える状態でお届けします。

サービスを見る

関連記事

Read article
AIエージェントのメモリスタックとは?2026年に重要度が上がる理由をやさしく解説

AIエージェントのメモリスタックとは?2026年に重要度が上がる理由をやさしく解説

Read article
OpenClaw vs Hermes vs Claude、創業者はどれを選ぶべき?2026年版の実務比較

OpenClaw vs Hermes vs Claude、創業者はどれを選ぶべき?2026年版の実務比較

Read article
X公式MCPサーバーとは?AIエージェント運用で何が変わるのかを実務目線で解説

X公式MCPサーバーとは?AIエージェント運用で何が変わるのかを実務目線で解説