@openclaw/nostr), который позволяет OpenClaw получать зашифрованные личные сообщения NIP-04 через ретрансляторы Nostr и отвечать на них. Одна учетная запись на Gateway; только личные сообщения.
Установка
openclaw onboard) и openclaw channels add отображают Nostr из общего каталога каналов после установки плагина.
Неинтерактивная настройка
--use-env, чтобы хранить NOSTR_PRIVATE_KEY в окружении, а не сохранять ключ в конфигурации (только для учетной записи по умолчанию).
Быстрая настройка
- Создайте пару ключей Nostr (если необходимо):
- Добавьте в конфигурацию:
- Экспортируйте ключ:
- Перезапустите Gateway.
Справочник по конфигурации
Метаданные профиля
Данные профиля публикуются как событие NIP-01kind:0. Управлять ими можно в Control UI (Channels -> Nostr -> Profile) или непосредственно в конфигурации.
Пример:
- URL-адреса профиля должны использовать
https://. - При импорте из ретрансляторов поля объединяются, а локальные переопределения сохраняются.
Управление доступом
Политики личных сообщений
- pairing (по умолчанию): неизвестные отправители получают код сопряжения.
- allowlist: личные сообщения могут отправлять только открытые ключи из
allowFrom. - open: общедоступные входящие личные сообщения (требуется
allowFrom: ["*"]). - disabled: игнорировать входящие личные сообщения.
- Подписи входящих событий проверяются до применения политики отправителей и расшифровки NIP-04, поэтому поддельные события отклоняются на раннем этапе.
- Ответы для сопряжения отправляются без расшифровки или обработки исходного содержимого личного сообщения.
- Частота входящих личных сообщений ограничивается глобально и для каждого отправителя, а сообщения слишком большого размера отбрасываются до расшифровки.
Пример списка разрешенных отправителей
Форматы ключей
Допустимые форматы:- Закрытый ключ:
nsec...или 64-символьный hex - Открытые ключи (
allowFrom):npub...или hex
Ретрансляторы
Значения по умолчанию:relay.damus.io и nos.lol.
- Используйте 2–3 ретранслятора для резервирования.
- Избегайте слишком большого количества ретрансляторов из-за задержек и дублирования.
- Платные ретрансляторы могут повысить надежность.
- Локальные ретрансляторы подходят для тестирования (
ws://localhost:7777).
Поддержка протоколов
Тестирование
Локальный ретранслятор
Ручная проверка
- Найдите открытый ключ бота в журналах Gateway или в
openclaw channels status(hex; при необходимости преобразуйте его в npub в своем клиенте). - Откройте клиент Nostr (Amethyst, Damus и т. п.).
- Отправьте личное сообщение на открытый ключ бота.
- Убедитесь, что получен ответ.
Устранение неполадок
Сообщения не поступают
- Убедитесь, что закрытый ключ действителен.
- Убедитесь, что URL-адреса ретрансляторов доступны и используют
wss://(илиws://для локального подключения). - Убедитесь, что
enabledне имеет значенияfalse. - Проверьте журналы Gateway на наличие ошибок подключения к ретрансляторам.
Ответы не отправляются
- Убедитесь, что ретранслятор принимает запись.
- Проверьте исходящее подключение.
- Проверьте, не применяет ли ретранслятор ограничения частоты запросов.
Дублирующиеся ответы
- Это ожидаемо при использовании нескольких ретрансляторов.
- Сообщения дедуплицируются по идентификатору события; ответ формируется только при первой доставке.
Безопасность
- Никогда не добавляйте закрытые ключи в репозиторий.
- Используйте переменные окружения для ключей.
- Для рабочих ботов рассмотрите возможность использования
allowlist. - Подписи проверяются до применения политики отправителей, а политика отправителей применяется до расшифровки, поэтому поддельные события отклоняются на раннем этапе, а неизвестные отправители не могут принудительно запустить полный набор криптографических операций.
Ограничения (MVP)
- Только личные сообщения (без групповых чатов).
- Медиавложения не поддерживаются.
- Поддерживается только NIP-04 (поддержка подарочной упаковки NIP-17 запланирована).
Связанные материалы
- Обзор каналов — все поддерживаемые каналы
- Сопряжение — аутентификация личных сообщений и процесс сопряжения
- Группы — поведение групповых чатов и ограничение по упоминаниям
- Маршрутизация каналов — маршрутизация сеансов для сообщений
- Безопасность — модель доступа и усиление защиты