Справочник поддерживаемых NIP

Все NIP на стороне релея, реализованные в nostrfy — kinds, замечания и оговорки — и как динамически вычисляется список supported_nips в NIP-11.

Реализованные NIP

NIPОписание
1Базовый протокол (события, подписки)
9Удаление событий
11Документ с информацией о релее
13Доказательство работы
17Приватные DM (kind 14, обёрнутый в kind 15; gift wrap kind 1059 и эфемерный kind 21059 выдаются только получателю, когда включена аутентификация NIP-42)
22Комментарии (kind 1111, треды через индекс #e)
26Делегированное подписание событий
28Публичный чат (на стороне клиента: хранится и отдаётся как обычные события, не рекламируется)
29Группы на основе релея
32Метки (kind 1985, индексы #l/#L)
33Параметризованные заменяемые события
34git (kinds 1617-1619, 1621, 1622, 1630-1633, 30617/30618 — включается через relay.enabled_git, по умолчанию выключено)
40Метка истечения срока
42Аутентификация клиента
43Метаданные доступа релея (роли) — kinds 33534/13534/8000/8001 плюс эфемерные 28934/28935/28936; подписанные релеем метаданные закрыты AUTH. Инвайт-коды выдаются через NIP-86 createclaim/deleteclaim; kind:28934 с указанным кодом допускает своего автора
45Подсчёт результатов (COUNT)
46Nostr Connect
47Nostr Wallet Connect
50Возможность поиска (полнотекстовый, с сортировкой по релевантности)
57Lightning-запы (kinds 9734/9735)
59Gift wrap (выдача только получателю)
62Запрос на удаление
65Метаданные списка релеев
66Обнаружение релеев и доступность (kinds 30166/10166 хранятся и отдаются; публикует собственный kind 30166)
67Подсказка полноты EOSE
70Защищённые события
77Синхронизация Negentropy (неудачная замена закрывает id с NEG-ERR по NIP-77)
78Данные приложений (kind 30078, закрыто AUTH)
84Выдержки
85Доверенные утверждения (kinds 30382/30383/30384/30385/10040, адресуемые)
86API управления релеем
87Анонсы Cashu и Fedimint (kinds 38000/38172/38173)
88Опросы
94Метаданные файлов (kind 1063)
98HTTP-аутентификация
A3Платёжные цели (kind 10133, заменяемый), черновик; обслуживается, но не рекламируется в supported_nips

Blossom (BUD-01/02) — не NIP и не рекламируется в документе NIP-11 — он обслуживается как отдельный файловый сервер на хосте [blossom]. Подробности см. на странице файлового сервера Blossom.

Динамическая реклама NIP

Список supported_nips не статичен: NIP удаляется из него, когда каждый kind, определённый этим NIP, отклоняется контролем доступа релея.

  • blocked_kinds — блокировка всех kinds какого-либо NIP скрывает его (например, блокировка kind 5 скрывает NIP-09). Блокировка лишь некоторых kinds сохраняет NIP.
  • allowed_kinds — kind принимается только если он перечислен; NIP, все kinds которого не перечислены, скрывается.
  • reject_ephemeral — эфемерные kinds, которых нет в обязательном списке исключений (22242, 27235, 28934/28935/ 28936, 24133, 23194/23195, 24242, 21059), отклоняются, поэтому зависящие от них NIP скрываются.
  • Предусловия — NIP-29, NIP-43 и NIP-66 зависят от подписанных релеем событий и скрыты без relay.private_key; NIP-86 скрыт, если не заданы rpc.management_token или rpc.admin_pubkey (иначе каждый управляющий вызов отклоняется).
  • NIP без выделенных kinds (1, 11, 13, 26, 33, 40, 45, 50, 67, 70, 77) всегда рекламируются, когда включены.

Изменения в процессе работы — NIP-86 allowkind/disallowkind или перезагрузка SIGHUP для reject_ephemeral — отражаются при следующем запросе NIP-11. enabled_nips/disabled_nips по-прежнему требуют перезапуска.