Встроенный Plugin
Текущие выпуски OpenClaw поставляют Nostr как встроенный Plugin, поэтому обычным пакетированным сборкам не требуется отдельная установка.Более старые/пользовательские установки
- Onboarding (
openclaw onboard) иopenclaw channels addпо-прежнему показывают Nostr из общего каталога каналов. - Если ваша сборка исключает встроенный Nostr, установите npm-пакет напрямую.
Неинтерактивная настройка
--use-env, чтобы хранить NOSTR_PRIVATE_KEY в окружении, а не сохранять ключ в конфигурации.
Быстрая настройка
- Сгенерируйте пару ключей Nostr (если нужно):
- Добавьте в конфигурацию:
- Экспортируйте ключ:
- Перезапустите Gateway.
Справочник конфигурации
| Ключ | Тип | По умолчанию | Описание |
|---|---|---|---|
privateKey | string | обязательно | Приватный ключ в формате nsec или hex |
relays | string[] | ['wss://relay.damus.io', 'wss://nos.lol'] | URL реле (WebSocket) |
dmPolicy | string | pairing | Политика доступа к DM |
allowFrom | string[] | [] | Разрешенные pubkeys отправителей |
enabled | boolean | true | Включить/отключить канал |
name | string | - | Отображаемое имя |
profile | object | - | Метаданные профиля NIP-01 |
Метаданные профиля
Данные профиля публикуются как событие NIP-01kind:0. Ими можно управлять из интерфейса управления (Каналы -> Nostr -> Профиль) или задать напрямую в конфигурации.
Пример:
- URL профиля должны использовать
https://. - Импорт из реле объединяет поля и сохраняет локальные переопределения.
Контроль доступа
Политики DM
- pairing (по умолчанию): неизвестные отправители получают код pairing.
- allowlist: отправлять DM могут только pubkeys из
allowFrom. - open: публичные входящие DM (требует
allowFrom: ["*"]). - disabled: игнорировать входящие DM.
- Подписи входящих событий проверяются до политики отправителя и расшифровки NIP-04, поэтому поддельные события отклоняются на раннем этапе.
- Ответы pairing отправляются без обработки тела исходного DM.
- Входящие DM ограничиваются по частоте, а слишком большие payload отбрасываются до расшифровки.
Пример allowlist
Форматы ключей
Поддерживаемые форматы:- Приватный ключ:
nsec...или 64-символьный hex - Pubkeys (
allowFrom):npub...или hex
Реле
По умолчанию:relay.damus.io и nos.lol.
- Используйте 2-3 реле для резервирования.
- Избегайте слишком большого количества реле (задержка, дублирование).
- Платные реле могут повысить надежность.
- Локальные реле подходят для тестирования (
ws://localhost:7777).
Поддержка протокола
| NIP | Статус | Описание |
|---|---|---|
| NIP-01 | Поддерживается | Базовый формат событий + метаданные профиля |
| NIP-04 | Поддерживается | Зашифрованные DM (kind:4) |
| NIP-17 | Запланировано | DM в gift-wrap-обертке |
| NIP-44 | Запланировано | Версионированное шифрование |
Тестирование
Локальное реле
Ручной тест
- Запишите pubkey бота (npub) из логов.
- Откройте клиент Nostr (Damus, Amethyst и т. д.).
- Отправьте DM на pubkey бота.
- Проверьте ответ.
Устранение неполадок
Сообщения не приходят
- Проверьте, что приватный ключ действителен.
- Убедитесь, что URL реле доступны и используют
wss://(илиws://для локального). - Убедитесь, что
enabledне равноfalse. - Проверьте логи Gateway на ошибки подключения к реле.
Ответы не отправляются
- Проверьте, принимает ли реле запись.
- Проверьте исходящее подключение.
- Следите за ограничениями частоты на стороне реле.
Дублирующиеся ответы
- Ожидаемо при использовании нескольких реле.
- Сообщения дедуплицируются по ID события; только первая доставка вызывает ответ.
Безопасность
- Никогда не коммитьте приватные ключи.
- Используйте переменные окружения для ключей.
- Рассмотрите
allowlistдля production-ботов. - Подписи проверяются до политики отправителя, а политика отправителя применяется до расшифровки, поэтому поддельные события отклоняются на раннем этапе, а неизвестные отправители не могут принудительно запускать полный набор криптографических операций.
Ограничения (MVP)
- Только личные сообщения (без групповых чатов).
- Нет медиа-вложений.
- Только NIP-04 (gift-wrap NIP-17 запланирован).
Связанные материалы
- Обзор каналов — все поддерживаемые каналы
- Pairing — аутентификация DM и поток pairing
- Группы — поведение группового чата и ограничение по упоминаниям
- Маршрутизация каналов — маршрутизация сессий для сообщений
- Безопасность — модель доступа и усиление защиты