Nostr Wallet Connect (NWC) 解説
NWC はあなたの Nostr クライアントと Lightning ウォレットを接続します。ウォレットが組み込まれていなくても、フィードから zap を送ることができます。ペアリングの仕組みを解説します。
Nostr Wallet Connect 以前は、すべての Nostr クライアントが独自のウォレット統合を構築するか、zap 機能なしで出荷する必要がありました。これにより 2 つの悪い結果が生じました。zap を出荷したクライアントはウォレットを実行するように強制され、ウォレットを実行したくないクライアントは zap をサポートできませんでした。
NWC はウォレットをクライアントから分離することでこれを修正しました。ウォレットはそれ自体のアプリです。クライアントは Nostr 自体を通じて支出リクエストを送信します。誰もが勝利します。
非組み込みウォレットクライアントで zap を使用する場合、あなたがそれについて考えているかどうかに関わらず、NWC を使用しています。このガイドはメカニズムを明示し、接続文字列が何をするのか、その制限は何か、そしてそれをどのように取り消すのかを理解できるようにします。
TL;DR. NWC は Nostr クライアントが Lightning ウォレットにインボイスを支払うよう要求するためのプロトコル (NIP-47) です。ペアリングは
nostr+walletconnect://...のような文字列です。この文字列は設定可能な予算までの支出許可を付与します。任意のウォレットが NWC 対応クライアントに NWC を話すことができるため、ペアリングはエコシステム全体で機能します。
準備ができたら、 @nostr.blog アドレスを取得
NWC 以前の問題
NWC 以前は、zap をサポートしたい Nostr クライアントには 3 つの悪いオプションがありました。
オプション 1: ウォレットをクライアントに組み込む。 Lightning チャネルを管理し、カストディを処理し、ウォレット会社になります。ほとんどのクライアントはエンジニアリングの余裕がありませんでした。
オプション 2: nsec とウォレット認証情報をユーザーに要求する。 クライアント側でイベントに署名し、ウォレット API に直接インボイス支払いリクエストを送信します。これはクライアントがウォレットの API キーを見ることを意味し、これはセキュリティの悪夢です。
オプション 3: zap をサポートしない。 一部のクライアントはこのパスを選択し、それらをあまり有用ではなくしました。
NWC は Nostr 自体をシグナリングチャネルとして使用することでウォレットをクライアントから分離します。クライアントはウォレット認証情報を見ません。ウォレットはリクエストを受信する方法を除いて、Nostr 固有の何かを知る必要はありません。
プロトコルの仕組み
NWC は NIP-47 で定義されています。フロー:
- ウォレットが接続文字列を生成します。 Nostr relay URL、ウォレットがリッスンする pubkey、暗号化用の共有シークレットが含まれます。
- ユーザーが文字列をクライアントに貼り付けます。 または QR コードをスキャンします。いずれにしても、クライアントはリクエストを送信する場所を知っています。
- クライアントが Nostr 経由で暗号化された支出リクエストを送信します。 「この 1000 sats のインボイスを支払う」は、指定されたリレーでウォレットのリッスン pubkey に暗号化されたイベントとして送信されます。
- ウォレットがリクエストを受信して支払います。 金額が接続の予算内であれば、ウォレットはすぐにインボイスを支払います。
- ウォレットが結果で返信します。 クライアントに返される暗号化された Nostr イベント:支払いが成功したか失敗したか、証明があります。
全体は 1 秒以内に発生します。クライアントは Lightning を直接処理しません。Nostr と通信するだけです。ウォレットは Nostr ソーシャル機能を理解する必要はありません。支出リクエストをリッスンするだけです。
接続文字列に含まれるもの
典型的な NWC 文字列:
nostr+walletconnect://abc123def456...?relay=wss://relay.example.com&secret=xyz789...
3 つの部分。
pubkey。 Nostr のウォレットのリッスン ID。クライアントはこの pubkey にリクエストを送信します。
relay。 ウォレットがリッスンしている場所。クライアントとウォレットの両方がこのリレーに接続してメッセージを交換します。
secret。 クライアントとウォレット間のメッセージを暗号化するために使用されるため、リレーは暗号文のみを見ます。
これら 3 つの値を合わせると、クライアントはウォレットに支出コマンドを送信する権限を持っています。リレーはメールボックスです。pubkey はアドレスです。secret はロックです。
予算と権限
すべての NWC 接続には、接続が作成されたときにウォレットによって設定された制限があります。
- 支払いあたりの最大金額。 通常は設定内容に応じて 10,000~100,000 sats。それ以上を支出するには新しい承認が必要です。
- 1 日/1 週間/1 か月あたりの最大金額。 スケジュールに従って補充される回転予算。
- 有効期限。 一部のウォレットは一定期間後に接続を自動的に期限切れにします。他のウォレットは取り消されるまでオープンにしておきます。
- 許可されたメソッド。 一部のウォレットでは「インボイス支払い」のみを付与でき、「残高参照」または「トランザクション一覧」を拒否します。
予算は、接続文字列がリークされた場合でも損害が制限されることを意味します。攻撃者がウォレット全体を消費することはできません。予算まで支出でき、その時点でウォレットは制限を補充するか新しい接続を生成するまでさらなるリクエストを拒否します。
NWC のセットアップ、ステップバイステップ
ウォレットを Nostr クライアントとペアリングする典型的なユーザーの具体的なフロー。
- Lightning ウォレットを開きます。 Wallet of Satoshi、Phoenix、Alby Hub、Zeus、またはその他の NWC 対応ウォレット。
- NWC 設定を見つけます。 設定メニューで「接続」「Nostr Wallet Connect」または「アプリ」を探します。すべてのウォレットはそれを少し異なる場所に配置します。
- 新しい接続を作成します。 どのアプリ用かを覚えておくため、名前を付けます。予算を設定します。
- 生成された NWC 文字列をコピーします。 または QR コードを取得します。
- Nostr クライアントを開きます。 設定に移動し、「Lightning ウォレット」または「Zap 設定」を見つけます。
- NWC 文字列を貼り付けるか QR をスキャンします。 クライアントが接続をテストします。
- 成功。 Zap ボタンが点灯し、次の zap はペアリングされたウォレットを通じて実行されます。
ペアリング後、クライアントが「接続失敗」を表示する場合、最も一般的な原因はリレー不一致 (NWC 文字列内のリレーはクライアントが到達できないもの) またはファイアウォールが WebSocket 接続をブロックしていることです。
なぜこれが組み込みウォレットより優れているのか
組み込みウォレットよりも NWC に対する 3 つの実際の利点。
ポータビリティ。 ウォレットを切り替えずに Nostr クライアントを切り替えることができます。残高、履歴、チャネルはそのままで、新しいクライアントは新しい NWC 接続を通じて同じウォレットとペアリングするだけです。
特化。 ウォレット開発者は Lightning インフラストラクチャに焦点を当てます。クライアント開発者はソーシャル UX に焦点を当てます。各側は独自のドメインでより良くなり、相互運用性は組み合わせ全体で機能します。
セキュリティ境界。 クライアントはウォレット認証情報を持っていません。バグのあるクライアントは最悪の場合、間違ったインボイスを送信できます。ウォレットを消費したり、シードフレーズをエクスポートしたりすることはできません。
組み込みが明らかに優れている唯一のケースは、摩擦のないオンボーディングを望むユーザーです。バンドルされたウォレット付きのクライアントは、外部ウォレットのペアリングよりも 1 ステップ速くユーザーを zapping させます。これが nostr.blog サインアップがデフォルトでウォレットを含む理由であり、ユーザーが後で NWC 経由で外部ウォレットをペアリングすることもできます。
NWC 接続を取り消す
デバイスを紛失したり、クライアントの使用を中止したり、認証情報をローテーションしたい場合は、ウォレット側から接続を取り消します。
- ウォレットを開きます。
- 設定リストで接続を見つけます。
- 取り消すまたは削除をタップします。
- 接続文字列は機能しなくなります。それを保持しているクライアントは次のリクエストで「未認可」を取得します。
これは即座です。GitHub リポジトリにリークされた可能性のある API キーとは異なり、NWC 接続は数秒で中止でき、継続的なセッションは残りません。これは意味のあるセキュリティプロパティです。
一般的な NWC の問題
「接続タイムアウト。」 NWC 文字列内のリレーがネットワークから到達不可能であるか、ウォレットがオフラインです。ウォレットアプリが開いて接続されていることを確認します。一部のウォレットはアプリをアクティブにして応答する必要があります。
「支払い失敗」有効なインボイスにもかかわらず。 ウォレットのチャネルは支払いをルーティングするための流動性を欠いている可能性があります。これは Lightning レイヤーの問題であり、NWC 固有ではありません。別の金額または別の時刻を試してください。
「権限が拒否されました。」 接続の予算が消費されている、接続の有効期限が切れている、またはリクエストタイプが許可されたメソッドにないです。ウォレットの接続設定を確認します。
「クライアントがウォレットを検出できません。」 貼り付け後、クライアントがハングします。クライアントを閉じて再度開きます。一部のクライアントは接続状態をキャッシュし、起動時にのみ再確認します。
NWC の進む先
NIP-47 は最終的ではありません。2026 年のアクティブな作業は以下をカバーしています:
- より豊富な権限。 「X まで支出できる」より細かいもので、受信者ごとまたは金額ごとのルール。
- マルチウォレットルーティング。 複数のウォレットとペアリングされたクライアントは、残高、手数料、またはルートに基づいて各支払いに最適なものを選択します。
- エラー報告の改善。 支払いが失敗したときにクライアントが有用なメッセージを表示できるように、標準化されたエラーコード。
- オフラインウォレットのサポート。 現在の NWC は両方が オンラインであると想定しています。ドラフトではウォレットが再接続するときに決済するキューに入れられたリクエストを許可します。
プロトコルは 2026 年の毎日の使用に十分安定しており、進化し続けます。ウォレットをペアリングすることは今日、1 分の操作です。現在の設計については、後でで何も壊れることはありません。
よくある質問
NWC はウォレット接続と同じですか?
NWC は安全ですか?
1 つのウォレットが NWC 経由で複数のクライアントに接続できますか?
NWC と LNURL の違いは何ですか?
Nostr で zap を使用するために NWC が必要ですか?
関連記事
Nostrのzapとは?公開されるBitcoinチップ
ZapはNostrのフィードに表示されるワンクリックのBitcoin Lightningチップです。その仕組み、レシートのフロー、送受信の方法を解説します。
約13分で読めますウォレットとLightningNostrでzapを送る方法:ステップバイステップガイド
ウォレットに資金があれば、最初のzapを送るのに約2分かかります。セットアップ、実際のフロー、zapが届かない場合の対処法を説明します。
約11分で読めますウォレットとLightningNostr ユーザー向け Lightning Network 解説
ビットコインレイヤーが 1 セント未満のチップを実現。Lightning の仕組み、Nostr が zap に使う理由、sat を送受信するために必要なこと。
約15分で読めます