Nostr NIPS 30


Page content


Custom Emoji

draft optional

Custom emoji may be added to kind 0, kind 1, kind 7 (NIP-25 ) and kind 30315 (NIP-38 ) events by including one or more "emoji" tags, in the form:

["emoji", <shortcode>, <image-url>]


  • <shortcode> is a name given for the emoji, which MUST be comprised of only alphanumeric characters and underscores.
  • <image-url> is a URL to the corresponding image file of the emoji.

For each emoji tag, clients should parse emoji shortcodes (aka “emojify”) like :shortcode: in the event to display custom emoji.

Clients may allow users to add custom emoji to an event by including :shortcode: identifier in the event, and adding the relevant "emoji" tags.

Kind 0 events

In kind 0 events, the name and about fields should be emojified.

  "kind": 0,
  "content": "{\"name\":\"Alex Gleason :soapbox:\"}",
  "tags": [
    ["emoji", "soapbox", ""]
  "pubkey": "79c2cae114ea28a981e7559b4fe7854a473521a8d22a66bbab9fa248eb820ff6",
  "created_at": 1682790000

Kind 1 events

In kind 1 events, the content should be emojified.

  "kind": 1,
  "content": "Hello :gleasonator: 😂 :ablobcatrainbow: :disputed: yolo",
    "tags": [
    ["emoji", "ablobcatrainbow", ""],
    ["emoji", "disputed", ""],
    ["emoji", "gleasonator", ""]
  "pubkey": "79c2cae114ea28a981e7559b4fe7854a473521a8d22a66bbab9fa248eb820ff6",
  "created_at": 1682630000

Source: nostr-protocol/nips/ version: 9fd5be2 2024-01-25T12:33:25+09:00