NIP-51
Lists
様々なイベントのフォロー(タイムラインの表示)、ブックマーク、ミュートのために利用できます
ミュート kind: 10000
ミュートしたユーザの一覧
ピン kind: 10001
ピン留め(固定表示)された投稿
カテゴライズされた人々 kind: 30000
リストタイムラインを実現できる
カテゴライズされたブックマーク kind: 30001
ブックマークやコレクション
リストとブックマーク
公開/非公開情報を含められる
tags
content に暗号化された情報を含める
上書き可能イベントを使う
ミュート、ピンの場合
パラメータつき上書き可能イベントを使う
ユーザのリスト、ブックマークの場合
dタグで名前を含められる
---
「リスト」イベントは公開および/または非公開のタグのリストを持つものとして定義される。公開タグはイベントのtagsに列挙される。非公開タグは暗号化した上でイベントのcontentに含める。非公開タグの暗号化にはNIP-04を用い、共有シークレットとしてリスト作成者の秘密鍵と公開鍵を用いる。各リスト種別には個別のイベントの種類 (kind)を使うべきである。 もし(「ミュート」リストのように)リスト種別がユーザにつき1つだけしか定義できない場合、そのリストは上書き可能イベントとする。これを「上書き可能リスト」と呼んでもよい。
そうでなければ、リストはパラメータつき上書き可能イベントとし、dタグでリストの名前を指定する。これを「パラメータつき上書き可能リスト」と呼んでもよい。
上書き可能リストイベントの例
次の鍵を持つユーザが「ミュート」リストを作ることを考えよう:
code:_
priv: fb505c65d4df950f5d28c9e4d285ee12ffaf315deef1fc24e3c7cd1e7e35f2b1
pub: b1a5c93edcc8d586566fde53a20bdb50049a97b15483cb763854e57016e0fa3d
ユーザが公開情報として次のユーザを含めたい場合:
code:_.json
そして、非公開で次のユーザを含めたい場合(次に示すのは暗号化され、イベントのcontentに置かれるであろうJSON):
code:_.json
[
]
すると、ユーザは「ミュート」リストイベントを次のように作成できるだろう:
code:_.json
{
"kind": 10000,
"tags": [
],
"content": "VezuSvWak++ASjFMRqBPWS3mK5pZ0vRLL325iuIL4S+r8n9z+DuMau5vMElz1tGC/UqCDmbzE2kwplafaFo/FnIZMdEj4pdxgptyBV1ifZpH3TEF6OMjEtqbYRRqnxgIXsuOSXaerWgpi0pm+raHQPseoELQI/SZ1cvtFqEUCXdXpa5AYaSd+quEuthAEw7V1jP+5TDRCEC8jiLosBVhCtaPpLcrm8HydMYJ2XB6Ixs=?iv=/rtV49RFm0XyFEwG62Eo9A==",
...他のフィールド
}
パラメータつき上書き可能リストイベントの例
ユーザがnostrユーザの「カテゴライズされた人々」リストを作りたいとしよう。ユーザは次の鍵を持つとする。
code:_
priv: fb505c65d4df950f5d28c9e4d285ee12ffaf315deef1fc24e3c7cd1e7e35f2b1
pub: b1a5c93edcc8d586566fde53a20bdb50049a97b15483cb763854e57016e0fa3d
ユーザが公開情報としてこれらの情報を含めたいとする:
code:_.json
そして、非公開情報としてこれらのユーザを含めたいとする(これはJSONであり、暗号化され、contentに含められる):
code:_.json
[
]
すると、ユーザは次のような「カテゴライズされた人々」のリストのイベントを作ることになる:
code:_.json
{
"kind": 30000,
"tags": [
],
"content": "VezuSvWak++ASjFMRqBPWS3mK5pZ0vRLL325iuIL4S+r8n9z+DuMau5vMElz1tGC/UqCDmbzE2kwplafaFo/FnIZMdEj4pdxgptyBV1ifZpH3TEF6OMjEtqbYRRqnxgIXsuOSXaerWgpi0pm+raHQPseoELQI/SZ1cvtFqEUCXdXpa5AYaSd+quEuthAEw7V1jP+5TDRCEC8jiLosBVhCtaPpLcrm8HydMYJ2XB6Ixs=?iv=/rtV49RFm0XyFEwG62Eo9A==",
...他のフィールド
}
ユーザがbookmarksの「カテゴライズされたブックマーク」リストを作りたいとしよう。ユーザは次の鍵を持つとする。
code:_
priv: fb505c65d4df950f5d28c9e4d285ee12ffaf315deef1fc24e3c7cd1e7e35f2b1
pub: b1a5c93edcc8d586566fde53a20bdb50049a97b15483cb763854e57016e0fa3d
これらのブックマークを含めたいとする
code:_.json
そして、非公開情報としてこれらのブックマークを含めたいとする(これはJSONであり、暗号化され、contentに含められる):
code:_.json
[
]
すると、ユーザは次のような「カテゴライズされたブックマーク」のリストのイベントを作ることになる:
code:_.json
{
"kind": 30001,
"tags": [
],
"content": "y3AyaLJfnmYr9x9Od9o4aYrmL9+Ynmsim5y2ONrU0urOTq+V81CyAthQ2mUOWE9xwGgrizhY7ILdQwWhy6FK0sA33GHtC0egUJw1zIdknPe7BZjznD570yk/8RXYgGyDKdexME+RMYykrnYFxq1+y/h00kmJg4u+Gpn+ZjmVhNYxl9b+TiBOAXG9UxnK/H0AmUqDpcldn6+j1/AiStwYZhD1UZ3jzDIk2qcCDy7MlGnYhSP+kNmG+2b0T/D1L0Z7?iv=PGJJfPE84gacAh7T0e6duQ==",
...他のフィールド
}
リストイベントの種類
table:_
イベントの種類(kind) リストの種類
10000 ミュート
10001 ピン
30000 カテゴライズされた人々
30001 カテゴライズされたブックマーク