blue.moji.embed.sticker

moji.blue

{
  "id": "blue.moji.embed.sticker",
  "defs": {
    "main": {
      "type": "object",
      "required": [
        "sticker"
      ],
      "properties": {
        "sticker": {
          "ref": "#sticker",
          "type": "ref"
        }
      },
      "description": "A full-sized Bluemoji sticker attached to a post as media, in the style of app.bsky.embed.external. References a blue.moji.collection.item record in the sticker owner's repo."
    },
    "view": {
      "type": "object",
      "required": [
        "sticker"
      ],
      "properties": {
        "sticker": {
          "ref": "#viewSticker",
          "type": "ref"
        }
      }
    },
    "sticker": {
      "type": "object",
      "required": [
        "did",
        "name",
        "formats"
      ],
      "properties": {
        "alt": {
          "type": "string",
          "description": "Alt text description of the sticker, for accessibility."
        },
        "did": {
          "type": "string",
          "format": "did",
          "description": "DID of the repo that owns the sticker record. Combined with the format CIDs to construct blob/CDN URLs without a getRecord round-trip, mirroring blue.moji.richtext.facet. Self-attested; see security note on this object."
        },
        "name": {
          "type": "string",
          "description": "Colon-wrapped alias of the source Bluemoji (e.g. :blobcat:). Implementers should use this as fallback text when assets are unavailable."
        },
        "record": {
          "ref": "com.atproto.repo.strongRef",
          "type": "ref",
          "description": "Strong reference to the source blue.moji.collection.item record. Use this as the verification anchor: resolve it and compare formats before trusting this embed's claims."
        },
        "formats": {
          "refs": [
            "#formats_v0"
          ],
          "type": "union",
          "closed": false,
          "description": "CIDs of the full-size sticker renditions. Open union to allow future formats."
        },
        "aspectRatio": {
          "ref": "app.bsky.embed.defs#aspectRatio",
          "type": "ref"
        }
      },
      "description": "SECURITY: did/name/formats are self-attested by the posting client, like blue.moji.richtext.facet. Verify against the record strongRef (or by re-deriving the rkey from name and looking up did's blue.moji.collection.item) before rendering an image, if the render surface matters for trust."
    },
    "formats_v0": {
      "type": "object",
      "properties": {
        "lottie": {
          "type": "string",
          "format": "cid"
        },
        "gif_512": {
          "type": "string",
          "format": "cid"
        },
        "png_512": {
          "type": "string",
          "format": "cid"
        },
        "apng_512": {
          "type": "string",
          "format": "cid"
        },
        "webp_512": {
          "type": "string",
          "format": "cid"
        }
      },
      "description": "CIDs of the full-size (512px-class) blobs stored in the sticker owner's repo under blue.moji.collection.item stickerFormats. CID-only, like blue.moji.richtext.facet#formats_v1, because blobs cannot be referenced across repos."
    },
    "viewSticker": {
      "type": "object",
      "required": [
        "fullsize",
        "name"
      ],
      "properties": {
        "alt": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "thumb": {
          "type": "string",
          "format": "uri",
          "description": "URL of the 128px inline-emoji rendition, if available."
        },
        "labels": {
          "type": "array",
          "items": {
            "ref": "com.atproto.label.defs#label",
            "type": "ref"
          },
          "description": "AppViews producing this view MUST populate labels (and reflect the source item's adultOnly) from the verified blue.moji.collection.item record, not from the embed's own self-attested fields — see the security note on #sticker. Consumers SHOULD warn or blur before rendering fullsize/thumb when present."
        },
        "record": {
          "ref": "com.atproto.repo.strongRef",
          "type": "ref"
        },
        "fullsize": {
          "type": "string",
          "format": "uri",
          "description": "Fully-qualified URL of the full-size sticker asset."
        },
        "aspectRatio": {
          "ref": "app.bsky.embed.defs#aspectRatio",
          "type": "ref"
        }
      }
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}

Validate Record

Validate a record against blue.moji.embed.sticker

Validation Options
Automatically resolve and include external schemas for full validation
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:kmzpsik7s5y5fwu7nnkngfx4
CID
bafyreife6vwe2elhyb32sp7e5t2sgwglx324o32upb6hbopvruofdgrv4q
Indexed At
2026-07-26 20:11 UTC
AT-URI
at://did:plc:kmzpsik7s5y5fwu7nnkngfx4/com.atproto.lexicon.schema/blue.moji.embed.sticker

Referenced Schemas (2)

Lexicon Garden

@