draft
optional
3つの特別なイベントがユーザープロフィール上のバッジを定義、授与、陳列するために 用いられる。
-
「バッジ定義」イベントはバッジ発行者によって発行されるバッジ (例えば
bravery
) を一意に特定する値を持つd
タグを持つ、kind30009
のアドレス指定可能 (addressable) イベントとして定義される。 -
「バッジ授与」イベントは、それぞれバッジ発行者が授与したい公開鍵を指す1つ以上の
p
タグと、「バッジ定義」イベントを参照する1つのa
タグを持つkind8
イベントである。授与されたバッジは変更したり譲渡できない。 -
「プロフィールバッジ」イベントはアドレス指定可能 (addressable) な、
profile_badges
値を持つd
タグを持つkind30008
イベントである。 プロフィールバッジはそれぞれ「バッジ定義」と陳列したいバッジのための「バッジ授与」を参照するa
タグとe
タグの組の順序付きリストを含む。
以下のタグが存在しなければならない (MUST) 。
- バッジの一意な名前を持つ
d
タグ。
以下のタグが存在してもよい (MAY) 。
- バッジの短い名前を持つ
name
タグ。 - バッジを表現する高解像度な画像のURLを値として持つ
image
タグ。2つ目の値は任意で、ピクセル単位でwidth
xheight
のようにして画像の寸法を指定する。バッジの推奨寸法は1024x1024ピクセルである。 - 画像のテキスト表現、バッジの意味、あるいは発行の理由を含む
description
タグ。 (MAY) image
タグが参照する画像のサムネイル版を指すURLを1つ目の値として持つ1つ以上のthumb
タグ。2つ目の値は任意で、width
xheight
ピクセルでサムネイル寸法を指定する。
以下のタグが存在しなければならない (MUST) 。
- kind
30009
のバッジ定義イベントを参照するa
タグ。 - それぞれが授与対象の公開鍵を参照する1つ以上の
p
タグ。
1つの公開鍵に対して授与されるバッジの数は無制限である。プロフィールバッジイベントで 個々のユーザーが授与されたバッジの受け入れ・拒否、 プロフィールに陳列するバッジの順序を選択できる。
以下のタグが存在しなければならない (MUST) 。
- 一意な識別子
profile_badges
を持つd
タグ。
以下のタグが存在してもよい (MAY) 。
- それぞれkind
30009
のバッジ定義とkind8
のバッジ授与を参照する、連続する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...
}