social.colibri.beta.emoji.defs

colibri.social

{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "catalogView": {
      "description": "Every custom emoji and pack in one repo.",
      "properties": {
        "emojis": {
          "description": "Every emoji in the repo.",
          "items": {
            "ref": "#emojiView",
            "type": "ref"
          },
          "type": "array"
        },
        "owner": {
          "description": "The repo the catalog belongs to.",
          "format": "did",
          "type": "string"
        },
        "packs": {
          "description": "Every pack in the repo.",
          "items": {
            "ref": "#packView",
            "type": "ref"
          },
          "type": "array"
        }
      },
      "required": [
        "owner",
        "emojis",
        "packs"
      ],
      "type": "object"
    },
    "emojiImage": {
      "description": "One stored rendition of an emoji.",
      "properties": {
        "animated": {
          "description": "Whether the format is animated.",
          "type": "boolean"
        },
        "cid": {
          "description": "The blob's CID in the owner's repo.",
          "format": "cid",
          "type": "string"
        },
        "format": {
          "description": "The image format.",
          "knownValues": [
            "png",
            "webp",
            "gif",
            "apng",
            "lottie",
            "other"
          ],
          "type": "string"
        },
        "mimeType": {
          "description": "The blob's MIME type.",
          "type": "string"
        },
        "pixels": {
          "description": "The rendition's longest edge in pixels, when the provider fixes one.",
          "minimum": 1,
          "type": "integer"
        },
        "size": {
          "description": "The blob's size in bytes.",
          "minimum": 0,
          "type": "integer"
        }
      },
      "required": [
        "cid",
        "format",
        "animated"
      ],
      "type": "object"
    },
    "emojiOwner": {
      "description": "The user or community that holds an emoji or pack.",
      "properties": {
        "avatar": {
          "description": "The user's avatar or the community's icon.",
          "format": "uri",
          "type": "string"
        },
        "did": {
          "description": "The owner.",
          "format": "did",
          "type": "string"
        },
        "displayName": {
          "description": "The user's display name or the community's name.",
          "type": "string"
        },
        "handle": {
          "description": "The owner's handle.",
          "format": "handle",
          "type": "string"
        },
        "kind": {
          "description": "Whether the owner is a user or a community.",
          "knownValues": [
            "user",
            "community"
          ],
          "type": "string"
        }
      },
      "required": [
        "did",
        "kind"
      ],
      "type": "object"
    },
    "emojiView": {
      "description": "A custom emoji, normalised from its provider's record.",
      "properties": {
        "adultOnly": {
          "description": "Whether the owner marked the emoji as adult content.",
          "type": "boolean"
        },
        "alt": {
          "description": "Alt text for the image.",
          "type": "string"
        },
        "cid": {
          "description": "The record's CID.",
          "format": "cid",
          "type": "string"
        },
        "createdAt": {
          "description": "When the record was created.",
          "format": "datetime",
          "type": "string"
        },
        "fallback": {
          "description": "The text shown where the image cannot render.",
          "type": "string"
        },
        "images": {
          "description": "Every rendition the record carries.",
          "items": {
            "ref": "#emojiImage",
            "type": "ref"
          },
          "type": "array"
        },
        "name": {
          "description": "The name without colons.",
          "type": "string"
        },
        "owner": {
          "description": "The repo that holds the record and its blobs.",
          "format": "did",
          "type": "string"
        },
        "provider": {
          "description": "The emoji provider whose lexicon the record uses.",
          "knownValues": [
            "blue.moji"
          ],
          "type": "string"
        },
        "uri": {
          "description": "The emoji's record URI.",
          "format": "at-uri",
          "type": "string"
        }
      },
      "required": [
        "uri",
        "provider",
        "owner",
        "name",
        "images",
        "createdAt"
      ],
      "type": "object"
    },
    "followView": {
      "description": "A pack or single emoji the user follows, resolved against the owner's current catalog.",
      "properties": {
        "createdAt": {
          "description": "When the user started following.",
          "format": "datetime",
          "type": "string"
        },
        "emojis": {
          "description": "The pack's current emoji in pack order, or the single followed emoji. Empty unless state is available.",
          "items": {
            "ref": "#emojiView",
            "type": "ref"
          },
          "type": "array"
        },
        "kind": {
          "description": "Whether the subject is a pack or a single emoji.",
          "knownValues": [
            "pack",
            "emoji"
          ],
          "type": "string"
        },
        "owner": {
          "description": "Who holds the subject.",
          "ref": "#emojiOwner",
          "type": "ref"
        },
        "pack": {
          "description": "The pack, when kind is pack and state is available.",
          "ref": "#packView",
          "type": "ref"
        },
        "state": {
          "description": "available when the subject resolves. missing when the owner deleted it. unreachable when the owner's repo cannot be read, for example a deactivated or taken down account.",
          "knownValues": [
            "available",
            "missing",
            "unreachable"
          ],
          "type": "string"
        },
        "subject": {
          "description": "The followed pack or emoji.",
          "format": "at-uri",
          "type": "string"
        },
        "uri": {
          "description": "The follow record.",
          "format": "at-uri",
          "type": "string"
        }
      },
      "required": [
        "uri",
        "subject",
        "kind",
        "state",
        "owner",
        "emojis",
        "createdAt"
      ],
      "type": "object"
    },
    "libraryView": {
      "description": "A user's emoji library.",
      "properties": {
        "follows": {
          "description": "Everything the user follows, oldest follow first.",
          "items": {
            "ref": "#followView",
            "type": "ref"
          },
          "type": "array"
        },
        "own": {
          "description": "The emoji and packs in the user's own repo.",
          "ref": "#catalogView",
          "type": "ref"
        }
      },
      "required": [
        "own",
        "follows"
      ],
      "type": "object"
    },
    "packView": {
      "description": "A named group of custom emoji, normalised from its provider's records.",
      "properties": {
        "createdAt": {
          "description": "When the record was created.",
          "format": "datetime",
          "type": "string"
        },
        "description": {
          "description": "The pack's description.",
          "type": "string"
        },
        "emojis": {
          "description": "The URIs of the emoji in the pack, in the order they were added. Only emoji present in the catalog are listed.",
          "items": {
            "format": "at-uri",
            "type": "string"
          },
          "type": "array"
        },
        "name": {
          "description": "The pack's name.",
          "type": "string"
        },
        "owner": {
          "description": "The repo that holds the pack.",
          "format": "did",
          "type": "string"
        },
        "provider": {
          "description": "The emoji provider whose lexicon the record uses.",
          "knownValues": [
            "blue.moji"
          ],
          "type": "string"
        },
        "uri": {
          "description": "The pack's record URI.",
          "format": "at-uri",
          "type": "string"
        }
      },
      "required": [
        "uri",
        "provider",
        "owner",
        "name",
        "emojis",
        "createdAt"
      ],
      "type": "object"
    }
  },
  "id": "social.colibri.beta.emoji.defs",
  "lexicon": 1
}

Validate Record

Validate a record against social.colibri.beta.emoji.defs

Validation Options
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:mprdjqjluoswa7awzggaggj3
CID
bafyreihmy73xj5bgajyqgqgrsozz4i72dkle7w7k6r3aom6jzwm4nixv5y
Indexed At
2026-10-18 11:51 UTC
AT-URI
at://did:plc:mprdjqjluoswa7awzggaggj3/com.atproto.lexicon.schema/social.colibri.beta.emoji.defs

Version History (2 versions)

Similar Lexicons

Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.

  • social.colibri.beta.emoji.getCatalog querynot from the namespace authority

    Lists the custom emoji and packs in one repo, from every supported emoji provider. Works for communities and users alike, since the records are public.

  • Marks its author as following a custom emoji pack or a single custom emoji. Presence means following and deleting it means unfollowing. The user writes it into their own social.colibri.beta.actor.preferences space, so o…

  • blue.moji.collection.item recordnot from the namespace authority

    A custom emoji. The record key is the canonical alias for ASCII aliases, or its RFC 3492 Punycode encoding (xn-- prefixed) for internationalised aliases; see Bluemoji RFC 0005.

  • blue.moji.packs.pack recordnot from the namespace authority

    A shareable Bluemoji pack

Lexicon Garden

@