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