NIPsは、Nostr Implementation Possibilitiesの略称である。
本文書は、Nostr互換のリレーおよびクライアントソフトウェアによって実装されうるものを文書化するために存在している。
- NIP-01: 基本的なプロトコルフローの説明
- NIP-02: フォローリスト
- NIP-03: イベントに対するOpenTimestamps認証
- NIP-04: 暗号化されたダイレクトメッセージ --- 非推奨: NIP-44で代替されたため廃止
- NIP-05: Nostr鍵をDNSベースのインターネット識別子に結びつける
- NIP-06: ニーモニックシードフレーズからの基本的な鍵導出
- NIP-07: Webブラウザ向け
window.nostr
機能 - NIP-08: メンションへの対応 --- 非推奨: NIP-27で代替されたため廃止
- NIP-09: イベント(の)削除
- NIP-10: テキストイベントにおいて
e
タグおよびp
タグを使用する際の規約 - NIP-11: リレー情報ドキュメント
- NIP-13: Proof of Work
- NIP-14: テキストイベントにおける件名タグ
- NIP-15: Nostr Marketplace (for resilient marketplaces)
- NIP-18: リポスト
- NIP-19: bech32でエンコードされた情報
- NIP-21:
nostr:
URIスキーム - NIP-23: 長文投稿
- NIP-24: 追加のメタデータフィールドとタグ
- NIP-25: リアクション
- NIP-26: イベント署名の委任
- NIP-27: テキストノートへの参照
- NIP-28: パブリックチャット
- NIP-29: リレーに基づくグループ
- NIP-30: カスタム絵文字
- NIP-31: 未知のイベントに対する対処法
- NIP-32: ラベル付け
- NIP-34:
git
のもの - NIP-36: センシティブコンテンツ / コンテンツの警告
- NIP-38: ユーザーステータス
- NIP-39: プロフィールにおける外部アイデンティティ
- NIP-40: 有効期限タイムスタンプ
- NIP-42: リレーに対するクライアントの認証
- NIP-44: バージョンつき暗号化
- NIP-45: イベント計数
- NIP-46: Nostrコネクト
- NIP-47: Wallet Connect
- NIP-48: プロキシタグ
- NIP-49: 秘密鍵暗号化
- NIP-50: 検索機能
- NIP-51: リスト
- NIP-52: カレンダーイベント
- NIP-53: ライブアクティビティ
- NIP-56: 通報
- NIP-57: Lightning Zaps
- NIP-58: バッジ
- NIP-59: Gift Wrap
- NIP-65: リレーリストメタデータ
- NIP-72: Moderated Communities
- NIP-75: Zap Goals
- NIP-78: アプリケーション固有データ
- NIP-84: ハイライト
- NIP-89: 推奨アプリケーションハンドラ
- NIP-90: データ自動販売機
- NIP-92: Media Attachments
- NIP-94: ファイルメタデータ
- NIP-96: HTTPファイルストレージインテグレーション
- NIP-98: HTTP認証
- NIP-99: Classified Listings
kind | description | NIP |
---|---|---|
0 |
メタデータ | 01 |
1 |
短文ノート | 01 |
2 |
推奨リレー | 01 (deprecated) |
3 |
フォロー | 02 |
4 |
暗号化されたダイレクトメッセージ | 04 |
5 |
削除イベント | 09 |
6 |
リポスト | 18 |
7 |
リアクション | 25 |
8 |
バッジ・表彰 | 58 |
9 |
Group Chat Message | 29 |
10 |
Group Chat Threaded Reply | 29 |
11 |
Group Thread | 29 |
12 |
Group Thread Reply | 29 |
13 |
Seal | 59 |
16 |
汎用リポスト | 18 |
40 |
チャンネル作成 | 28 |
41 |
チャンネルメタデータ | 28 |
42 |
チャンネルメッセージ | 28 |
43 |
チャンネル投稿ミュート | 28 |
44 |
チャンネルユーザミュート | 28 |
1021 |
Bid | 15 |
1022 |
Bid confirmation | 15 |
1040 |
OpenTimestamps | 03 |
1059 |
Gift Wrap | 59 |
1063 |
ファイルメタデータ | 94 |
1311 |
ライブチャットメッセージ | 53 |
1617 |
Patches | 34 |
1621 |
Issues | 34 |
1622 |
Replies | 34 |
1971 |
問題トラッカー | nostrocket |
1984 |
通報 | 56 |
1985 |
ラベル | 32 |
4550 |
コミュニティ投稿の承認 | 72 |
5000 -5999 |
ジョブ要求 | 90 |
6000 -6999 |
ジョブ結果 | 90 |
7000 |
ジョブフィードバック | 90 |
9000 -9030 |
Group Control Events | 29 |
9041 |
Zap Goal | 75 |
9734 |
Zap要求 | 57 |
9735 |
Zap | 57 |
9802 |
ハイライト | 84 |
10000 |
ミュートリスト | 51 |
10001 |
ピン留めリスト | 51 |
10002 |
リレーリストメタデータ | 65 |
10003 |
ブックマークリスト | 51 |
10004 |
コミュニティリスト | 51 |
10005 |
パブリックチャットリスト | 51 |
10006 |
ブロック済みリレーリスト | 51 |
10007 |
検索リレーリスト | 51 |
10009 |
User groups | 51, 29 |
10015 |
興味・関心リスト | 51 |
10030 |
ユーザー絵文字リスト | 51 |
10096 |
ファイルストレージサーバーリスト | 96 |
13194 |
ウォレット情報 | 47 |
21000 |
Lightning Pub RPC | Lightning.Pub |
22242 |
クライアント認証 | 42 |
23194 |
ウォレット要求 | 47 |
23195 |
ウォレット応答 | 47 |
24133 |
Nostr Connect | 46 |
27235 |
HTTP認証 | 98 |
30000 |
フォローセット | 51 |
30001 |
汎用リスト | 51 |
30002 |
リレーセット | 51 |
30003 |
ブックマークセット | 51 |
30004 |
キュレーションセット | 51 |
30008 |
プロフィールバッジ | 58 |
30009 |
バッジ定義 | 58 |
30015 |
興味・関心セット | 51 |
30017 |
Create or update a stall | 15 |
30018 |
Create or update a product | 15 |
30019 |
Marketplace UI/UX | 15 |
30020 |
Product sold as an auction | 15 |
30023 |
長文投稿 | 23 |
30024 |
長文投稿の下書き | 23 |
30030 |
絵文字セット | 51 |
30063 |
Release artifact sets | 51 |
30078 |
アプリケーション固有データ | 78 |
30311 |
ライブイベント | 53 |
30315 |
ユーザーステータス | 38 |
30402 |
Classified Listing | 99 |
30403 |
Draft Classified Listing | 99 |
30617 |
Repository announcements | 34 |
31922 |
日付指定のカレンダーイベント | 52 |
31923 |
時刻指定のカレンダーイベント | 52 |
31924 |
カレンダー | 52 |
31925 |
要返信のカレンダーイベント | 52 |
31989 |
推奨ハンドラ | 89 |
31990 |
ハンドラ情報 | 89 |
34550 |
Community Definition | 72 |
39000-9 |
Group metadata events | 29 |
type | 説明 | NIP |
---|---|---|
EVENT |
イベントの配信 | 01 |
REQ |
イベントの要求と新規更新の購読 | 01 |
CLOSE |
既存の購読の中止 | 01 |
AUTH |
認証イベント | 42 |
COUNT |
イベント計数要求 | 45 |
type | description | NIP |
---|---|---|
EOSE |
クライアントへのすべての保存済みイベントの送信完了通知 | 01 |
EVENT |
クライアントから要求されたイベントの送信 | 01 |
NOTICE |
クライアントへの人間可読なメッセージ | 01 |
OK |
クライアントへのイベント配信成功通知 | 01 |
CLOSED |
クライアントへの購読終了とその理由の通知 | 01 |
AUTH |
認証チャレンジの送信 | 42 |
COUNT |
要求されたイベントの計数結果 | 45 |
新しいイベント種別(kind)を含むNIPsを提案する場合は、これらのリストも更新すること。
タグ名 | 値 | その他パラメータ | NIP |
---|---|---|---|
e |
イベントID (hex) | relay URL, marker | 01, 10 |
p |
公開鍵 (hex) | relay URL, petname | 01, 02 |
a |
coordinates to an event | relay URL | 01 |
d |
識別子 | -- | 01 |
g |
ジオハッシュ | -- | 52 |
i |
アイデンティティ | proof | 39 |
k |
種別(kind)番号 (string) | -- | 18, 25, 72 |
l |
ラベル, ラベル名前空間 | annotations | 32 |
L |
ラベル名前空間 | -- | 32 |
m |
MIME type | -- | 94 |
q |
イベントID (hex) | relay URL | 18 |
r |
参照 (URL, etc) | petname | |
r |
リレーURL | marker | 65 |
t |
ハッシュタグ | -- | |
alt |
概要 | -- | 31 |
amount |
文字列化されたミリサトシ | -- | 57 |
bolt11 |
bolt11 インボイス |
-- | 57 |
challenge |
チャレンジ文字列 | -- | 42 |
client |
名前, アドレス | relay URL | 89 |
content-warning |
理由 | -- | 36 |
delegation |
公開鍵, 条件, 委任トークン | -- | 26 |
description |
インボイス/バッジの説明 | -- | 57, 58 |
emoji |
ショートコード, 画像 URL | -- | 30 |
q |
イベントID (hex) | relay URL | 18 |
r |
参照 (URL, etc) | petname | |
r |
リレーURL | marker | 65 |
t |
ハッシュタグ | -- | |
alt |
概要 | -- | 31 |
amount |
文字列化されたミリサトシ | -- | 57 |
bolt11 |
bolt11 invoice |
-- | 57 |
challenge |
チャレンジ文字列 | -- | 42 |
client |
名前, アドレス | relay URL | 89 |
clone |
git clone URL | -- | 34 |
content-warning |
理由 | -- | 36 |
delegation |
公開鍵, 条件, 委任トークン | -- | 26 |
description |
インボイス/バッジの説明 | -- | 34, 57, 58 |
emoji |
ショートコード, 画像 URL | -- | 30 |
encrypted |
-- | -- | 90 |
expiration |
unix timestamp (string) | -- | 40 |
goal |
イベントID (hex) | relay URL | 75 |
image |
画像URL | dimensions in pixels | 23, 58 |
imeta |
インラインメタデータ | -- | 92 |
lnurl |
bech32 encoded lnurl |
-- | 57 |
location |
場所文字列 | -- | 52, 99 |
name |
名前 | -- | 58 |
nonce |
乱数 | -- | 13 |
preimage |
bolt11 インボイスのハッシュ |
-- | 57 |
price |
値段 | currency, frequency | 99 |
proxy |
外部ID | protocol | 48 |
published_at |
unix timestamp (string) | -- | 23 |
relay |
リレーURL | -- | 42 |
relays |
リレーリスト | -- | 57 |
server |
ファイルストレージサーバーURL | -- | 96 |
subject |
件名 | -- | 14 |
summary |
記事の要約 | -- | 23 |
thumb |
バッジサムネイル | dimensions in pixels | 58 |
title |
記事のタイトル | -- | 23 |
zap |
公開鍵 (hex), リレー URL | weight | 57 |
location |
場所文字列 | -- | 52, 99 |
name |
名前 | -- | 34, 58 |
nonce |
乱数 | -- | 13 |
preimage |
bolt11 インボイスのハッシュ |
-- | 57 |
price |
値段 | currency, frequency | 99 |
proxy |
外部ID | protocol | 48 |
published_at |
unix timestamp (string) | -- | 23 |
relay |
リレーURL | -- | 42 |
relays |
リレーリスト | -- | 57 |
server |
ファイルストレージサーバーURL | -- | 96 |
subject |
件名 | -- | 14 |
summary |
記事の要約 | -- | 23 |
thumb |
バッジサムネイル | dimensions in pixels | 58 |
title |
記事のタイトル | -- | 23 |
web |
webpage URL | -- | 34 |
zap |
公開鍵 (hex), リレー URL | weight | 57 |
- (適用可能であれば)少なくとも2つのクライアントと1つのリレーが実装しているべきである。
- 理にかなっている必要がある。
- 任意に実装可能であり、後方互換性を有するべきである: 実装しないことを選択したクライアントやリレーが、実装することを選択したクライアントやリレーと通信した際に動作を停止しないよう厳に注意しなければならない。
- 同じことする方法が複数あってはならない。
- その他のルールは必要に応じて作成する。
相互運用性を向上させるために誰もが従える標準を作成し、後方互換性を損なうことなく物事を行うための1つの方法を定義する必要がある。この目的のためには誰もが同じことに同意し、それら標準の中央集権型の目録を保持すること以外に道は無い。しかし、そのような目録があるからといってNostrの分散性が損なわれることはない。中央の目録がプロトコルの要求を満たせない場合はいつでも異議を唱えることができ、他の場所に移行して他の人がメンテナンスできる。
フォークされ複数に分かれることも可能で、その際あるクライアントは一方に、別のクライアントはもう一方に、あるいは競合する両方の標準に準拠するクライアントもあるだろう。それはNostrの単純さ、開放性、相互運用性を少し損なうこととなるが、それでも短期的には全て機能するだろう。
このリポジトリへのコミット権を持っている著名なNostrソフトウェア開発者のリストがあるが、それはほとんど実用上の理由から存在している。私達が扱っているものの性質上、リポジトリの所有者はメンバーシップを取り消したり好きなように歴史を書き換えることができる。そして、それらの行為が不当であったり、悪事や邪悪なものと認識される場合、コミュニティは抗議の声を上げなければならない。
標準は2つの方法で作られる。1つは誰かがなにかを始め、他の人がそれを書き写すという方法である。2つ目は、物事を行うための1つの方法を持つという原則と後方互換性を壊すことなく複数のクライアントとプロトコル全般に利益をもたらす新しい標準のアイデアを持つ誰かがそれを書いてこのリポジトリに提出し、他の利害関係者がそれを読んでフィードバックし、ほとんどの人が合理的に同意したらその機能に関心のあるクライアントとリレーの開発者が実装に取り掛かることのできるNIPに成文化するという方法である。
物事を標準化するためにこれら2つの方法がこのリポジトリでサポートされている。後者が望ましいが、このリポジトリの外で出現した標準をNIPに成文化し、後の人が参照して簡単に理解し実装できるようにする取り組みも行われる。しかし、他の人間のシステムと同様に、標準が有害であると考えられる場合に裁量が行われることは明らかである。
全てのNIPsはパブリックドメインである。