Nostr Wallet Connect (NWC) объяснено
NWC связывает ваш Nostr клиент и ваш Lightning кошелек. Это позволяет вашей ленте отправлять zaps без встроенного кошелька. Как работает сопряжение.
До появления Nostr Wallet Connect каждый Nostr клиент должен был строить собственную интеграцию кошелька или вообще не иметь функциональности zaps. Это привело к двум плохим результатам: клиенты с zaps были вынуждены запускать кошелек, а клиенты, которые не хотели запускать кошелек, не могли поддерживать zaps.
NWC решил эту проблему, отделив кошелек от клиента. Кошелек — это отдельное приложение; клиент отправляет запросы на трату через сам Nostr; все выигрывают.
Если вы используете zaps на любом клиенте без встроенного кошелька, вы используете NWC, осознаёте вы это или нет. Это руководство делает механизм явным, чтобы вы поняли, что делает строка подключения, каковы её ограничения и как её отозвать.
TL;DR. NWC — это протокол (NIP-47) для того, чтобы Nostr клиент просил Lightning кошелек оплатить счета. Сопряжение — это строка, которая выглядит как
nostr+walletconnect://.... Строка предоставляет разрешение на трату в пределах настраиваемого бюджета. Любой кошелек может взаимодействовать с NWC с любым NWC-совместимым клиентом, поэтому сопряжение работает во всей экосистеме.
Когда будете готовы, заберите адрес @nostr.blog
Проблема до NWC
До NWC клиент Nostr, который хотел поддерживать zaps, имел три плохих варианта.
Вариант 1: Встроить кошелек в клиент. Управлять Lightning каналами, обеспечивать хранение средств, быть компанией-кошельком. Большинство клиентов не могли позволить себе инженерные затраты.
Вариант 2: Попросить у пользователя его nsec и учетные данные кошелька. Подписывать события клиентом и отправлять запросы оплаты счетов прямо в API кошелька. Это означало, что клиент видел API ключ кошелька, что является кошмаром безопасности.
Вариант 3: Не поддерживать zaps. Некоторые клиенты выбрали этот путь, что делало их менее полезными.
NWC разъединяет кошелек от клиента, используя сам Nostr как канал сигнализации. Клиент никогда не видит учетные данные кошелька. Кошелек никогда не должен знать ничего специфичного для Nostr, кроме как принимать запросы.
Как работает протокол
NWC определен в NIP-47. Процесс:
- Кошелек генерирует строку подключения. Содержит URL реле Nostr, публичный ключ, на который слушает кошелек, и общий секрет для шифрования.
- Пользователь вставляет строку в клиент. Или сканирует QR код. Так или иначе, клиент теперь знает, куда отправлять запросы.
- Клиент отправляет зашифрованные запросы на трату через Nostr. "Оплати этот счет за 1000 sats" идет в зашифрованном событии на публичный ключ кошелька в указанное реле.
- Кошелек получает запрос и платит. Если сумма находится в пределах бюджета подключения, кошелек немедленно платит счет.
- Кошелек отвечает с результатом. Зашифрованное событие Nostr обратно клиенту: платеж успешен или не удался, вот доказательство.
Все это происходит менее чем за секунду. Клиент никогда не работает с Lightning напрямую; он просто разговаривает с Nostr. Кошелек никогда не должен понимать социальные функции Nostr; он просто слушает запросы на трату.
Что содержит строка подключения
Типичная строка NWC:
nostr+walletconnect://abc123def456...?relay=wss://relay.example.com&secret=xyz789...
Три части.
Публичный ключ. Слушающий идентификатор кошелька на Nostr. Клиент отправляет запросы этому публичному ключу.
Реле. Где слушает кошелек. Клиент и кошелек оба подключаются к этому реле для обмена сообщениями.
Секрет. Используется для шифрования сообщений между клиентом и кошельком, чтобы реле видело только зашифрованный текст.
Вместе эти три значения предоставляют клиенту разрешение отправлять команды на трату в кошелек. Реле — это почтовый ящик; публичный ключ — это адрес; секрет — это замок.
Бюджет и разрешения
Каждое подключение NWC имеет ограничения, установленные кошельком при создании подключения.
- Максимальная сумма за одну платеж. Обычно 10 000–100 000 sats в зависимости от того, что вы установили. Трата большей суммы требует свежего одобрения.
- Максимальная сумма в день/неделю/месяц. Катящийся бюджет, который пополняется по расписанию.
- Дата истечения. Некоторые кошельки автоматически истекают подключения через определенный период; другие оставляют их открытыми до отзыва.
- Разрешенные методы. Некоторые кошельки позволяют вам предоставить только "оплатить счет", отрицая "узнать баланс" или "перечислить транзакции."
Бюджет означает, что даже если строка подключения утечет, ущерб ограничен. Злоумышленник не может истощить весь кошелек; он может потратить до лимита, после чего кошелек отказывает в дальнейших запросах, пока вы не пополните лимит или не создадите новое подключение.
Настройка 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 по сравнению со встроенными кошельками.
Портативность. Вы можете переключать Nostr клиенты без переключения кошельков. Ваш баланс, история и каналы остаются на месте; новый клиент просто связывается с тем же кошельком через новое подключение NWC.
Специализация. Разработчики кошельков сосредоточены на инфраструктуре Lightning; разработчики клиентов сосредоточены на социальном UX. Каждая сторона становится лучше в своей области, и взаимодействие работает во всех комбинациях.
Граница безопасности. Клиент никогда не имеет учетные данные кошелька. Ошибочный клиент в худшем случае может отправить неправильные счета; он не может истощить кошелек или экспортировать seed фразу.
Единственный случай, когда встроенный явно лучше, — это для пользователей, которые хотят максимально беззаботное подключение. Клиент со встроенным кошельком помогает пользователю начать отправлять zaps на один шаг быстрее, чем сопряжение внешнего кошелька. Вот почему регистрация на nostr.blog включает кошелек по умолчанию, а пользователи все еще могут позже связать внешние кошельки через NWC, если они предпочитают.
Отзыв подключения NWC
Если вы потеряли устройство, перестали использовать клиент или хотите ротировать учетные данные, отозовите подключение со стороны кошелька.
- Откройте кошелек.
- Найдите подключение в списке настроек.
- Нажмите отозвать или удалить.
- Строка подключения больше не работает; любой клиент, держащий ее, получает "несанкционированно" при следующем запросе.
Это мгновенно. В отличие от API ключей, которые вы можете случайно выложить в репозиторий GitHub, подключения NWC могут быть отменены в секунды и никакие сеансы не сохраняются. Это значительное свойство безопасности.
Общие проблемы NWC
"Время соединения истекло." Реле в строке NWC недостижимо из вашей сети, или кошелек отключен. Проверьте, что приложение кошелька открыто и подключено; некоторые кошельки требуют, чтобы приложение было активно для ответа.
"Платеж не удался" несмотря на действительный счет. Каналы кошелька могут не иметь ликвидности для маршрутизации платежа. Это проблема уровня Lightning, не специфичная для NWC. Попробуйте другую сумму или другое время.
"Доступ запрещен." Бюджет подключения исчерпан, подключение истекло или тип запроса не входит в разрешенные методы. Проверьте настройки подключения кошелька.
"Клиент не может обнаружить кошелек." После вставки клиент зависает. Закройте и откройте клиент заново; некоторые клиенты кэшируют состояние подключения и перепроверяют только при запуске.
Куда идет NWC
NIP-47 не является окончательным. Активная работа в 2026 году охватывает:
- Более богатые разрешения. Более детальные, чем "может потратить до X за период," с правилами для каждого получателя или для каждой суммы.
- Маршрутизация многокошельков. Клиент, связанный с несколькими кошельками, выбирает лучший для каждого платежа на основе баланса, комиссии или маршрута.
- Лучшие отчеты об ошибках. Стандартизированные коды ошибок, чтобы клиенты могли показывать полезные сообщения при сбое платежей.
- Поддержка кошелька в автономном режиме. Текущий NWC предполагает, что обе стороны в сети; черновики позволяют ставить запросы в очередь, которые могут быть обработаны, когда кошелек переподключится.
Протокол достаточно стабилен для ежедневного использования в 2026 году и будет продолжать развиваться. Связывание кошелька сегодня — это одноминутная операция; ничего в текущем дизайне не сломается позже.
Частые вопросы
NWC — это то же самое, что подключение кошелька?
Безопасен ли NWC?
Может ли один кошелек подключиться к нескольким клиентам через NWC?
В чем разница между NWC и LNURL?
Нужен ли мне NWC для использования zaps на Nostr?
Читать дальше
Что такое zaps на Nostr? Биткоин-чаевые, открытые для всех
Zaps — это однокликовые платежи через Lightning с чаевыми в биткоинах, которые видны в лентах Nostr. Что это такое, как работает механизм квитанций и как отправлять или получать zaps.
6 мин чтенияКошельки и LightningКак отправить zap в Nostr: пошаговое руководство
Отправка первого zap занимает около двух минут после пополнения кошелька. Вот процесс настройки, сам процесс отправки и что делать, если zap не дошел.
5 мин чтенияКошельки и LightningLightning Network объяснен для пользователей Nostr
Второй уровень Bitcoin, который делает микротипы практичными. Как работает Lightning, почему Nostr использует его для zaps и что нужно для отправки и получения сатов.
7 мин чтения