Appearance
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 
| Property | Value | 
|---|---|
| Kind Number | 30030 | 
| Event Range | Parameterized 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 Name | Description | Format | Required | 
|---|---|---|---|
d | Identifier for the emoji set | ["d", "<identifier>"] | Yes | 
emoji | Custom emoji definition | ["emoji", "<shortcode>", "<url>"] | No | 
name | Name of the emoji set | ["name", "<name>"] | No | 
picture | Image representing the emoji set | ["picture", "<url>"] | No | 
about | Description of the emoji set | ["about", "<description>"] | No | 
Client Behavior 
Clients that support emoji sets should:
- Allow users to create and manage multiple emoji sets.
 - Display emoji sets with their respective name, picture, and description if available.
 - Allow users to select emojis from these sets when composing messages.
 - Persist and synchronize these emoji sets across user's devices.
 - 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 
Related Kinds 
- Kind 10030: Emojis - Standard list for user preferred emojis and pointers to emoji sets
 
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.