Skip to content

Latest commit

 

History

History
123 lines (89 loc) · 5.54 KB

58.md

File metadata and controls

123 lines (89 loc) · 5.54 KB

NIP-58

バッジ

draft optional

3つの特別なイベントがユーザープロフィール上のバッジを定義、授与、陳列するために 用いられる。

  1. 「バッジ定義」イベントはバッジ発行者によって発行されるバッジ (例えばbravery) を一意に特定する値を持つdタグを持つ、kind 30009のアドレス指定可能 (addressable) イベントとして定義される。

  2. 「バッジ授与」イベントは、それぞれバッジ発行者が授与したい公開鍵を指す1つ以上のpタグと、「バッジ定義」イベントを参照する1つのaタグを持つkind 8イベントである。授与されたバッジは変更したり譲渡できない。

  3. 「プロフィールバッジ」イベントはアドレス指定可能 (addressable) な、 profile_badges値を持つdタグを持つkind 30008イベントである。 プロフィールバッジはそれぞれ「バッジ定義」と陳列したいバッジのための「バッジ授与」を参照するaタグとeタグの組の順序付きリストを含む。

バッジ定義イベント

以下のタグが存在しなければならない (MUST) 。

  • バッジの一意な名前を持つdタグ。

以下のタグが存在してもよい (MAY) 。

  • バッジの短い名前を持つnameタグ。
  • バッジを表現する高解像度な画像のURLを値として持つimageタグ。2つ目の値は任意で、ピクセル単位でwidthxheightのようにして画像の寸法を指定する。バッジの推奨寸法は1024x1024ピクセルである。
  • 画像のテキスト表現、バッジの意味、あるいは発行の理由を含む descriptionタグ。 (MAY)
  • imageタグが参照する画像のサムネイル版を指すURLを1つ目の値として持つ1つ以上のthumbタグ。2つ目の値は任意で、widthxheightピクセルでサムネイル寸法を指定する。

バッジ授与イベント

以下のタグが存在しなければならない (MUST) 。

  • kind 30009のバッジ定義イベントを参照するaタグ。
  • それぞれが授与対象の公開鍵を参照する1つ以上のpタグ。

プロフィールバッジイベント

1つの公開鍵に対して授与されるバッジの数は無制限である。プロフィールバッジイベントで 個々のユーザーが授与されたバッジの受け入れ・拒否、 プロフィールに陳列するバッジの順序を選択できる。

以下のタグが存在しなければならない (MUST) 。

  • 一意な識別子profile_badgesを持つdタグ。

以下のタグが存在してもよい (MAY) 。

  • それぞれkind 30009のバッジ定義とkind 8のバッジ授与を参照する、連続する0個以上のaタグとeタグの順序付きペア。クライアントは eタグを含まないaタグやその逆を無視しなければならない (SHOULD) 。 eタグによって参照される バッジ授与イベントは同じaタグを含むべきだ。

動機

ユーザーは (これに限定されないが) 特定の目標やタスク、または大義に対する認識、感謝、参加、または評価としてバッジを授与されてもよい (MAY) 。

ユーザーは、信頼できるバッジ発行者からの名声・悪名・認識・サポートなどを意味するバッジを選んで飾ってもよい (MAY) 。

推奨事項

クライアントはユーザーに対する価値/特別性を保っていることを保証する目的でバッジ発行者 (公開鍵) をホワイトリストに登録してもよい (MAY) 。

バッジ画像のアスペクト比は1:1で、1024x1024の高解像度画像が推奨される。

バッジのサムネイル画像の推奨寸法は512x512 (xl) ・256x256 (l) ・64x64 (m) ・32x32 (s) ・16x16 (xs)である。

クライアントはユーザーによってプロフィールバッジイベントで指定されたすべてのバッジを表示しなくてもよいし、バッジ画像とサムネイルをクライアントのテーマに合うものへ置き換えてもよい (MAY) 。

クライアントはユーザーが選択したバッジの数と使えるスペースに応じて最も適切なバッジのサムネイルを表示するべきだ (SHOULD) 。クライアントはユーザーのアクション (クリック、タップ、ホバー) に応じてバッジの高解像度画像を表示するべきだ (SHOULD) 。

バッジ定義イベントの例

{
  "pubkey": "alice",
  "kind": 30009,
  "tags": [
    ["d", "bravery"],
    ["name", "Medal of Bravery"],
    ["description", "Awarded to users demonstrating bravery"],
    ["image", "https://nostr.academy/awards/bravery.png", "1024x1024"],
    ["thumb", "https://nostr.academy/awards/bravery_256x256.png", "256x256"]
  ],
  // other fields...
}

バッジ授与イベントの例

{
  "id": "<badge award event id>",
  "kind": 8,
  "pubkey": "alice",
  "tags": [
    ["a", "30009:alice:bravery"],
    ["p", "bob", "wss://relay"],
    ["p", "charlie", "wss://relay"]
  ],
  // other fields...
}

プロフィールバッジイベントの例

Honorable Bob The Brave:

{
  "kind": 30008,
  "pubkey": "bob",
  "tags": [
    ["d", "profile_badges"],
    ["a", "30009:alice:bravery"],
    ["e", "<bravery badge award event id>", "wss://nostr.academy"],
    ["a", "30009:alice:honor"],
    ["e", "<honor badge award event id>", "wss://nostr.academy"]
  ],
  // other fields...
}