Nostr Wallet Connect (NWC) هو بروتوكول NIP-47 للتحكم عن بعد بمحفظة Lightning عبر خوادم Nostr. تنقل الخوادم الرسائل لا البيتكوين نفسه؛ ويمكن أن تستخدمه عقدة شخصية أو خدمة حفظ.
يرسل التطبيق الطلب، فتتحقق منه خدمة المحفظة وتستدعي واجهة الدفع. لا يحدد NWC مَن يحتفظ بمفاتيح البيتكوين. لذلك قد تستخدم عقدة شخصية ومحفظة حفظ البروتوكول نفسه مع اختلاف الثقة وإمكانات الاستعادة. [NWC — NIP-47: Core protocol] [NWC — Project overview]
يتضمن URI الاتصال المفتاح العام للخدمة وخادم الترحيل وsecret، أي المفتاح الخاص باتصال العميل. ليس seed المحفظة، لكنه يتيح توقيع الطلبات المأذونة. قد يمنح QR أو نسخة منه الوصول لتطبيق آخر. تقلل المفاتيح المنفصلة لكل اتصال إمكانية ربط الاتصالات. [NWC — NIP-47: Core protocol]
يعلن حدث info العام إمكانات الخدمة؛ ويعيد get_info الطرق المتاحة للاتصال المحدد. يشمل الأساس pay_invoice وmake_invoice وlookup_invoice وget_balance وget_info. السجل وkeysend والتنبيهات إضافات اختيارية. تحقق من الدعم والإذن بصورة منفصلة؛ فاسم الطريقة ليس موافقة عامة على الدفع. [NWC — NIP-47: Core protocol] [NWC — Optional specifications] [NWC-02 — Notifications]
يستخدم Info النوع kind 13194، والطلب 23194، والرد 23195. يحدد الوسم p الطرف المقابل، ويشير e في الرد إلى الطلب. يفحص العميل التوقيع ومفتاح الخدمة المتوقع وارتباط الطلب وresult_type. مجرد استلام حدث من خادم الترحيل لا يثبت تنفيذ الأمر. [NWC — NIP-47: Core protocol]
مبالغ ورسوم NIP-47 بوحدة msat؛ وتساوي 1000 msat وحدة satoshi واحدة. خلط الوحدات يغير المبلغ ألف مرة. يعيد pay_invoice الناجح قيمة preimage، والرد الفاشل error. إنشاء فاتورة عبر make_invoice لا يعني دفعها؛ ويمكن معرفة حالتها بواسطة lookup_invoice. [NWC — NIP-47: Core protocol]
يفضل التفاوض الحالي nip44_v2؛ ويبقى nip04 القديم للتوافق، وغياب وسم encryption يعني النمط القديم. لا يوفر NIP-44 وحده forward secrecy. قد يرى خادم الترحيل الأنواع والوسوم ومفاتيح الاتصال والتوقيت. لا ينبغي استخدام مفتاح هوية المستخدم الرئيسي لاتصال NWC. [NWC — NIP-47: Core protocol] [Nostr — NIP-44: Encrypted payloads]
طلبات NWC وردوده أحداث عابرة. قد يضيع الطلب بسبب خادم غير متاح أو خدمة غير متصلة؛ وقد يضيع فقط رد دفعة اكتملت بالفعل. بعد timeout تحقق أولًا عبر lookup_invoice أو المحفظة. الصمت ليس فشلًا مؤكدًا، والطلب الجديد ليس إعادة محاولة آمنة تلقائيًا. [NWC — NIP-47: Core protocol]
يمكن للخدمة تقييد الطرق أو الميزانية أو الصلاحية وإلغاء مفتاح الاتصال. يجب أن تفرض الخدمة الحدود، لا شاشة العميل وحدها. حذف الاتصال في التطبيق قد يترك الإذن قائمًا لدى المحفظة. يمنع الإلغاء الاستخدام المستقبلي لكنه لا يعكس دفعة مكتملة. [NWC — NIP-47: Core protocol]
للحصول على صورة أوضح، اقرأ هذا المدخل مع Nostr, Lightning Network, BOLT 11, محفظة, مفتاح خاص, Satoshi. تشير إلى هذا المدخل أيضًا Nostr, BOLT 11.