163 / 691NWC

Nostr Wallet Connect

Autoryzowane żądania aplikacji do portfela Lightning

Nostr Wallet Connect łączy aplikację z portfelem przez szyfrowane żądania; zakres dostępu określa usługa portfela.

Nostr Wallet Connect (NWC) to protokół NIP-47 do zdalnego sterowania portfelem Lightning przez przekaźniki Nostr. Przekaźniki przenoszą wiadomości, nie bitcoiny; protokołu może używać własny węzeł lub usługa powiernicza.

Aplikacja wysyła żądanie, usługa portfela je weryfikuje i wywołuje swój interfejs płatniczy. NWC nie określa, kto trzyma klucze bitcoin. Własny węzeł i portfel powierniczy mogą używać tego samego protokołu, ale różnią się zaufaniem i odzyskiwaniem. [NWC — NIP-47: Core protocol] [NWC — Project overview]

URI zawiera klucz publiczny usługi, przekaźnik i secret, czyli prywatny klucz połączenia klienta. To nie seed portfela, lecz pozwala podpisywać autoryzowane żądania. Kod QR lub kopia mogą dać dostęp innej aplikacji. Oddzielne klucze ograniczają łączenie poszczególnych połączeń. [NWC — NIP-47: Core protocol]

Publiczne zdarzenie info ogłasza możliwości usługi; get_info zwraca metody dostępne dla danego połączenia. Rdzeń obejmuje pay_invoice, make_invoice, lookup_invoice, get_balance i get_info. Historia, keysend i powiadomienia należą do opcjonalnych rozszerzeń. Obsługę i zgodę sprawdzaj osobno: nazwa metody nie daje ogólnego zezwolenia na płatności. [NWC — NIP-47: Core protocol] [NWC — Optional specifications] [NWC-02 — Notifications]

Info używa kind 13194, żądanie 23194, odpowiedź 23195. Znacznik p określa drugą stronę, a e w odpowiedzi wskazuje żądanie. Klient sprawdza podpis, oczekiwany klucz usługi, powiązanie i result_type. Sam odbiór zdarzenia z przekaźnika nie dowodzi wykonania polecenia. [NWC — NIP-47: Core protocol]

Kwoty i opłaty NIP-47 są w msat; 1000 msat to jeden satoshi. Pomylenie jednostek zmienia kwotę tysiąckrotnie. Udane pay_invoice zwraca preimage, błąd zawiera error. Utworzenie faktury przez make_invoice nie oznacza zapłaty; lookup_invoice pozwala sprawdzić stan. [NWC — NIP-47: Core protocol]

Obecne uzgadnianie preferuje nip44_v2; nip04 pozostaje dla zgodności, a brak znacznika encryption oznacza stary tryb. Samo NIP-44 nie zapewnia forward secrecy. Przekaźnik może widzieć rodzaje, znaczniki, klucze połączenia i czas. Główny klucz tożsamości użytkownika nie powinien obsługiwać połączenia NWC. [NWC — NIP-47: Core protocol] [Nostr — NIP-44: Encrypted payloads]

Żądania i odpowiedzi NWC są ulotnymi zdarzeniami. Niedostępny przekaźnik lub usługa offline mogą zgubić wiadomość; może też zaginąć tylko odpowiedź na już wykonaną płatność. Po timeout najpierw sprawdź stan przez lookup_invoice lub portfel. Cisza nie oznacza pewnej porażki, a nowe żądanie nie jest automatycznie bezpiecznym powtórzeniem. [NWC — NIP-47: Core protocol]

Usługa może ograniczyć metody, budżet lub ważność połączenia i unieważnić jego klucz. Musi egzekwować granice po swojej stronie, nie tylko na ekranie klienta. Usunięcie połączenia w aplikacji może pozostawić uprawnienia w portfelu. Cofnięcie dostępu blokuje przyszłe użycie, ale nie odwraca zakończonej płatności. [NWC — NIP-47: Core protocol]

Pełniejszy obraz uzyskasz, czytając to hasło razem z Nostr, Lightning Network, BOLT 11, Portfel, Klucz prywatny, Satoshi. Do tego hasła prowadzą również odsyłacze z Nostr, BOLT 11.

DOC · 001NWC — NIP-47: Core protocolSpecyfikacja ↗DOC · 002NWC — Project overviewŹródło pierwotne ↗DOC · 003NWC — Optional specificationsSpecyfikacja ↗DOC · 004Nostr — NIP-44: Encrypted payloadsSpecyfikacja ↗DOC · 005NWC-02 — NotificationsSpecyfikacja ↗
Najpierw źródła · To nie jest porada inwestycyjna