social.colibri.actor.profile

colibri.social

{
  "id": "social.colibri.actor.profile",
  "defs": {
    "main": {
      "key": "literal:self",
      "type": "record",
      "record": {
        "type": "object",
        "required": [],
        "properties": {
          "$type": {
            "type": "string",
            "format": "nsid",
            "description": "The type of the record."
          },
          "theme": {
            "ref": "lex:social.colibri.actor.profile#theme",
            "type": "ref",
            "description": "Colibri-only profile theming. Always sourced from this record regardless of syncBluesky."
          },
          "avatar": {
            "type": "blob",
            "accept": [
              "image/jpeg",
              "image/png",
              "image/gif",
              "image/webp"
            ],
            "description": "The user's avatar image."
          },
          "banner": {
            "type": "blob",
            "accept": [
              "image/jpeg",
              "image/png",
              "image/gif",
              "image/webp"
            ],
            "description": "The user's profile banner image."
          },
          "description": {
            "type": "string",
            "maxLength": 2560,
            "description": "The user's profile description / bio.",
            "maxGraphemes": 256
          },
          "displayName": {
            "type": "string",
            "maxLength": 640,
            "description": "The user's display name.",
            "maxGraphemes": 64
          },
          "syncBluesky": {
            "type": "boolean",
            "default": false,
            "description": "When true, the AppView serves displayName/avatar/banner/description from the user's app.bsky.actor.profile record (Bluesky stays the live source); these mirrored fields may be omitted here."
          },
          "preferredBadge": {
            "type": "string",
            "maxLength": 64,
            "description": "Label value of the badge the user chose to display as their primary badge. Absent means automatic (highest-priority badge)."
          },
          "presenceService": {
            "type": "string",
            "format": "did",
            "description": "DID of the AppView authorized to emit off-protocol presence (status, typing, voice) for this user via Humming. A receiving AppView MUST drop any Hum about this user whose authenticated origin does not equal this value. Absent means the user has not opted into cross-instance presence."
          }
        }
      },
      "description": "A Colibri-specific user profile. Singleton record on the user's own repo, kept separate from app.bsky.actor.profile so Colibri never needs write access to the Bluesky record."
    },
    "theme": {
      "type": "object",
      "required": [],
      "properties": {
        "gradient": {
          "ref": "lex:social.colibri.actor.profile#themeGradient",
          "type": "ref",
          "description": "Two-color gradient profile theme."
        },
        "accentColor": {
          "type": "string",
          "maxLength": 7,
          "description": "Accent color as a #rrggbb hex string."
        },
        "bannerColor": {
          "type": "string",
          "maxLength": 7,
          "description": "Solid fallback banner color as #rrggbb, used when no banner image is set."
        }
      },
      "description": "Colibri-only profile theming."
    },
    "themeGradient": {
      "type": "object",
      "required": [],
      "properties": {
        "primary": {
          "type": "string",
          "maxLength": 7,
          "description": "Primary gradient color as #rrggbb."
        },
        "secondary": {
          "type": "string",
          "maxLength": 7,
          "description": "Secondary gradient color as #rrggbb."
        }
      },
      "description": "Two-color gradient profile theme."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1,
  "revision": 2
}

Validate Record

Validate a record against social.colibri.actor.profile

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

Metadata

DID
did:plc:mprdjqjluoswa7awzggaggj3
CID
bafyreigfshrxjmf7nu2x6vlknp6ox7atahk6ufsuol3puco6at3vjpweqy
Indexed At
2026-07-31 21:22 UTC
AT-URI
at://did:plc:mprdjqjluoswa7awzggaggj3/com.atproto.lexicon.schema/social.colibri.actor.profile

Version History (3 versions)

Referenced Schemas (2)

  • lex:social.colibri.actor.profile#theme
  • lex:social.colibri.actor.profile#themeGradient

Lexicon Garden

@