Skip to content

Kind 30030: Emoji sets

Overview

Kind 30030 represents "Emoji sets" which are categorized emoji groups. These are part of the Lists concept defined in NIP-51, specifically under the "Sets" category. Emoji sets allow users to create and maintain collections of custom emojis organized into named groups.

Specification

PropertyValue
Kind Number30030
Event RangeParameterized Replaceable
Defined in[NIP-51]

Content Format

The content field may be empty or contain additional information about the emoji set. The content could also contain encrypted emojis using the NIP-04 encryption scheme if users want to include private emojis in the set.

Schema

The content itself doesn't have a defined schema beyond potentially containing encrypted items using NIP-04.

Tags

Tag NameDescriptionFormatRequired
dIdentifier for the emoji set["d", "<identifier>"]Yes
emojiCustom emoji definition["emoji", "<shortcode>", "<url>"]No
nameName of the emoji set["name", "<name>"]No
pictureImage representing the emoji set["picture", "<url>"]No
aboutDescription of the emoji set["about", "<description>"]No

Client Behavior

Clients that support emoji sets should:

  1. Allow users to create and manage multiple emoji sets.
  2. Display emoji sets with their respective name, picture, and description if available.
  3. Allow users to select emojis from these sets when composing messages.
  4. Persist and synchronize these emoji sets across user's devices.
  5. Handle both public emojis (specified in the tags) and private emojis (if encrypted in the content).

Relay Behavior

Relays should treat kind 30030 events as parameterized replaceable events, using the d tag as the distinguishing parameter. This means a user can have multiple emoji sets, each with a unique identifier in the d tag.

Use Cases

  • Creating themed emoji collections (e.g., "Memes", "Animals", "Holiday")
  • Organizing custom emojis into categories
  • Sharing collections of emojis with specific communities
  • Creating emoji packs for specific applications or contexts

Example

json
{
  "id": "567b41fc9060c758c4216fe5f8d3df7c57daad7ae757fa4606f0c39d4dd220ef",
  "pubkey": "d6dc95542e18b8b7aec2f14610f55c335abebec76f3db9e58c254661d0593a0c",
  "created_at": 1695327657,
  "kind": 30030,
  "tags": [
    ["d", "meme-emojis"],
    ["name", "Meme Collection"],
    ["picture", "https://example.com/meme-pack.jpg"],
    ["about", "My collection of popular meme emojis"],
    ["emoji", "doge", "https://example.com/doge.png"],
    ["emoji", "pepe", "https://example.com/pepe.png"],
    ["emoji", "wojak", "https://example.com/wojak.png"]
  ],
  "content": "",
  "sig": "a9a4e2192eede77e6c9d24ddfab95ba3ff7c03fbd07ad011fff245abea431fb4d3787c2d04aad001cb039cb8de91d83ce30e9a94f82ac3c5a2372aa1294a96bd"
}

References

Notes

Emoji sets are a special type of parameterized replaceable list that provides a way to categorize emojis. Unlike the standard emoji list (kind 10030), users can have multiple emoji sets, each with a unique identifier in the d tag.

The emoji tag format follows the convention defined in NIP-30 for custom emojis, with a shortcode and a URL to the emoji image. Clients should render these emojis when they appear in text content, replacing the shortcode with the image from the URL.