NIP-58
Badges
バッジ
認証バッジ(NIP-05)とは異なり、バッジを自由に作成(create)したり授与(award)したり拝受(accept)できる機能。 特別な3種類のイベントを、ユーザプロフィール上の「バッジ」を定義・授与・表示するのに用いる。
1. 「バッジ定義」イベント
kind 30009のパラメータつき上書き可能イベント。dタグにバッジを一意に特定する値を持ち、バッジ発行者によって発行される。
2. 「バッジ授与」イベント
kind 8のイベント。「バッジ定義」イベントを参照するaタグと、バッジ授与対象の公開鍵を指す1つ以上のpタグを持つ。授与されたバッジは変更・譲渡不可。
3. 「プロフィールバッジ」イベント
kind 30008のパラメータつき上書き可能イベント。dタグの値はprofile_badges(固定)とする。表示したいバッジの「バッジ定義」と「バッジ授与」を指すaタグとeタグの組のリストを持つ。
バッジ定義イベント
次のタグがなければならない(MUST):
dタグ: 一意なバッジ名
次のタグがあってもよい(MAY):
nameタグ: バッジの短い名前
imageタグ: バッジを表す高解像度の画像のURL。2番めの値によって、<幅>x<高さ>(ピクセル単位)のようにして画像の寸法を指定する(任意)。推奨解像度は1024x1024ピクセル。
descriptionタグ: 画像のテキスト表現、バッジの意味、発行の理由といった値を持たせてよい(MAY)。
1つ以上のthumbタグ: 1つめの値はimageタグで参照される画像の縮小版(サムネイル)を指すURL。2つ目の値はサムネイルの寸法を<幅>x<高さ>(ピクセル単位)で指定する(任意)。
バッジ授与イベント
次のタグがなければならない(MUST):
aタグ: kind 30009のバッジ定義イベントへの参照
1つ以上のpタグ: バッジ授与対象の公開鍵を指す
プロフィールバッジイベント
1つの公開鍵に対して授与できるバッジの数に制限はない。プロフィールバッジイベントによって、各ユーザは授与されたバッジの受け入れ・拒否、プロフィール上に表示されるバッジの順序の選択ができる。
次のタグがなければならない (MUST):
dタグ: 一意な識別子profile_badgesを持つ
次のタグがあってもよい(MAY):
0個以上の連続するaタグとeタグの組: それぞれ、kind 30009のバッジ定義イベント、kind8のバッジ授与イベントを参照する。クライアントは、対応するeタグがないaタグやその逆(対応するaタグがないeタグ)を無視すべき(SHOULD)。eタグによって参照されるバッジ授与イベントは、(そのeタグに対応するaタグと)同じaタグを持っているべき。
動機
ユーザは、なんらかの目的・目標・仕事への評価・感謝・参加に対してバッジを授与されてよい(MAY)(理由はこれに限らない)。
ユーザは、信頼できるバッジ発行者から受け取った名声・悪名・評価・支持の意味を持つバッジでプロフィールを飾ることができてもよい(MAY)。
推奨事項
バッジ発行者は、バッジ定義やバッジ授与をミントする(mint, 鋳造する)際に、これらのイベントとエネルギーコストを紐付けるために、NIP-13のようなProof of Workを含めてもよい(MAY)。これにより、バッジがより特別で、ユーザにとって集める価値のあるものとなるのは間違いない。 クライアントは、バッジ発行者がユーザに対する価値・特別性を保っていることを保証する目的で、バッジ発行者(の公開鍵)のホワイトリストを作ってもよい(MAY)。
バッジ画像は、アスペクト比1:1で、1024x1024ピクセルの高解像度を持つことが推奨される。
バッジのサムネイル画像の推奨サイズ: 512x512(XL), 256x256(L), 64x64(M), 32x32(S), 16x16(XS)
クライアントは、ユーザがプロフィールバッジイベントで指定したものすべてを表示しなくてもよいし、バッジ画像やサムネイルをクライアントのテーマに合うものに置き換えてもよい(MAY)。
クライアントは、ユーザが選択したバッジの数と使えるスペースに応じて、最も適切なバッジ画像を表示するべき(SHOULD)。クライアントは、ユーザのアクション(クリック・タップ・ホバー)に応じて高解像度版を表示するべき(SHOULD)。