generated at
NIP-30

> Custom Emoji


Slack/Discord/Mastodon/Misskeyなどにあるようなカスタム絵文字機能を実現するNIP。

hr

1つ以上の "emoji" タグを含めることにより、kind 0やkind 1、kind 7のイベントにカスタム絵文字を追加できる。 "emoji" タグの形式は以下の通り:
["emoji", <shortcode>, <image-url>]
<shortcode> は絵文字につける名前で、英数字とアンダースコアのみから構成されていなければならない(MUST)
<image-url> はその絵文字の画像ファイルに対応するURL

それぞれの絵文字タグについて、クライアントはカスタム絵文字を表示するためにイベントに含まれる :shortcode: のような絵文字ショートコードをパースすべきである。

クライアントは、イベントに :shortcode: 識別子を含め、それに関連する "emoji" タグを追加することで、ユーザがカスタム絵文字をイベントに追加できるようにしてもよい。

Kind 0のイベント
kind 0のイベントにおいては、 name about フィールドに絵文字を含めることができる。(訳注: should be をそのまま訳すと違和感があるので少し意訳)
kind0_emojified.json
{ "kind": 0, "content": "{\"name\":\"Alex Gleason :soapbox:\"}", "tags": [ ["emoji", "soapbox", "https://gleasonator.com/emoji/Gleasonator/soapbox.png"] ], "pubkey": "79c2cae114ea28a981e7559b4fe7854a473521a8d22a66bbab9fa248eb820ff6", "created_at": 1682790000 }

Kind 1のイベント
kind 1のイベントにおいては、 content に絵文字を含めることができる。
kind1_emojified.json
{ "kind": 1, "content": "Hello :gleasonator: 😂 :ablobcatrainbow: :disputed: yolo", "tags": [ ["emoji", "ablobcatrainbow", "https://gleasonator.com/emoji/blobcat/ablobcatrainbow.png"], ["emoji", "disputed", "https://gleasonator.com/emoji/Fun/disputed.png"], ["emoji", "gleasonator", "https://gleasonator.com/emoji/Gleasonator/gleasonator.png"] ], "pubkey": "79c2cae114ea28a981e7559b4fe7854a473521a8d22a66bbab9fa248eb820ff6", "created_at": 1682630000 }

Kind 7のイベント
kind 7のイベントでもkind 1と同様に、 content に絵文字を含めることができる。(実際にはNIP-25で定義されている)
kind7_emojified.json
{ "kind": 7, "content": ":soapbox:", "tags": [ ["emoji", "soapbox", "https://gleasonator.com/emoji/Gleasonator/soapbox.png"] ], "pubkey": "79c2cae114ea28a981e7559b4fe7854a473521a8d22a66bbab9fa248eb820ff6", "created_at": 1682790000 }