com.getorbyt.actor.profile

The account's Orbyt profile, separate from its profile on any connected network. Every field is optional: an absent field falls back to the network profile, so an account that never edits here still renders. The profile's colours and app preferences stay in com.getorbyt.profile; how each Highlight box looks is here, with the boxes.

Repository @getorbyt.com did:plc:2xrqztnmzlckb3xfuuukupso namespace authority
Details · record, key literal:self
Kindrecord
Record keyliteral:self
Authorityactor.getorbyt.com
Indexed

Showing version bafyreiabfdayzsqyxsawcdshuldki7fmzskr4nbq3347n5itemnnro5phq. Show the latest

cid bafyreiabfdayzsqyxsawcdshuldki7fmzskr4nbq3347n5itemnnro5phq

Checks

Valid
  • unlimited-string defs.boxStyle.properties.sizeNo maxLength, maxGraphemes or format limits this string.
  • unlimited-string defs.main.record.properties.networkFollowImportNo maxLength, maxGraphemes or format limits this string.
JSONDownload
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "boxStyle": {
      "properties": {
        "background": {
          "description": "`#RRGGBB`. Any colour; see textColor.",
          "maxLength": 7,
          "type": "string"
        },
        "box": {
          "description": "The box's id, as profileBoxes lists it.",
          "maxLength": 640,
          "type": "string"
        },
        "fill": {
          "accept": [
            "image/png",
            "image/jpeg",
            "image/webp",
            "image/gif"
          ],
          "description": "A photo or GIF that fills the box behind its words.",
          "maxSize": 1000000,
          "type": "blob"
        },
        "label": {
          "ref": "#textPlacement",
          "type": "ref"
        },
        "size": {
          "description": "Fit is as wide as its words, wide the whole row, tall half a row and two rows high. Unknown sizes are fit.",
          "knownValues": [
            "fit",
            "wide",
            "tall"
          ],
          "type": "string"
        },
        "sticker": {
          "ref": "#sticker",
          "type": "ref"
        },
        "textColor": {
          "description": "`#RRGGBB` for the label and words. Any colour: readers who ask for more contrast get a readable shade of it, and a pair under 1.5:1 is read as that shade for everyone.",
          "maxLength": 7,
          "type": "string"
        },
        "value": {
          "ref": "#textPlacement",
          "type": "ref"
        }
      },
      "required": [
        "box"
      ],
      "type": "object"
    },
    "customBox": {
      "description": "A box the account wrote: a short label over what it says.",
      "properties": {
        "id": {
          "description": "A record key (TID) the account made for the box; its box id is `custom:` and this.",
          "maxLength": 64,
          "type": "string"
        },
        "label": {
          "maxGraphemes": 20,
          "maxLength": 200,
          "type": "string"
        },
        "link": {
          "description": "An app.bsky.actor.link record in the account's repository the box opens. The link lives on the network profile, so it shows there too; a box whose link record is gone shows without one.",
          "format": "at-uri",
          "type": "string"
        },
        "value": {
          "maxGraphemes": 40,
          "maxLength": 400,
          "type": "string"
        }
      },
      "required": [
        "id",
        "value"
      ],
      "type": "object"
    },
    "main": {
      "description": "The account's Orbyt profile, separate from its profile on any connected network. Every field is optional: an absent field falls back to the network profile, so an account that never edits here still renders. The profile's colours and app preferences stay in com.getorbyt.profile; how each Highlight box looks is here, with the boxes.",
      "key": "literal:self",
      "record": {
        "properties": {
          "avatar": {
            "accept": [
              "image/gif",
              "image/png",
              "image/jpeg",
              "image/webp"
            ],
            "description": "Square avatar image. Animated GIFs loop in supporting clients.",
            "maxSize": 3000000,
            "type": "blob"
          },
          "avatarVideo": {
            "accept": [
              "video/mp4"
            ],
            "description": "Optional silent looping MP4 rendition of the avatar.",
            "maxSize": 3000000,
            "type": "blob"
          },
          "banner": {
            "accept": [
              "image/gif",
              "image/png",
              "image/jpeg",
              "image/webp"
            ],
            "maxSize": 3000000,
            "type": "blob"
          },
          "boxStyles": {
            "description": "How the account styled its boxes, one entry per box id. A box without one keeps the default look.",
            "items": {
              "ref": "#boxStyle",
              "type": "ref"
            },
            "maxLength": 40,
            "type": "array"
          },
          "createdAt": {
            "format": "datetime",
            "type": "string"
          },
          "customBoxes": {
            "description": "Boxes the account wrote itself. Each is listed in profileBoxes as `custom:` and its id.",
            "items": {
              "ref": "#customBox",
              "type": "ref"
            },
            "maxLength": 8,
            "type": "array"
          },
          "description": {
            "maxGraphemes": 256,
            "maxLength": 2560,
            "type": "string"
          },
          "displayName": {
            "maxGraphemes": 64,
            "maxLength": 640,
            "type": "string"
          },
          "networkFollowImport": {
            "default": "off",
            "description": "How the account's follows on the connected network become Orbyt follows. `continuous` follows each network follow who joins Orbyt, until the account unfollows them here. An unrecognised value means off.",
            "knownValues": [
              "off",
              "once",
              "continuous"
            ],
            "type": "string"
          },
          "profileBoxes": {
            "description": "The boxes on the second page of the profile header, in order, by the ids com.getorbyt.actor.defs#profileBox gives them. A box not listed is hidden, including one added after this was written. Absent: the service's default boxes.",
            "items": {
              "maxLength": 640,
              "type": "string"
            },
            "maxLength": 40,
            "type": "array"
          },
          "showNetworkLink": {
            "default": true,
            "description": "Whether Orbyt links this profile to the account's profile on the connected network.",
            "type": "boolean"
          },
          "updatedAt": {
            "format": "datetime",
            "type": "string"
          }
        },
        "type": "object"
      },
      "type": "record"
    },
    "sticker": {
      "description": "An image placed on the box: one of the account's own stickers or a photo. The box's edge crops it.",
      "properties": {
        "image": {
          "accept": [
            "image/png",
            "image/webp",
            "image/gif"
          ],
          "description": "Required in practice: a sticker without an image draws nothing.",
          "maxSize": 1000000,
          "type": "blob"
        },
        "rotation": {
          "description": "Degrees, clockwise.",
          "maximum": 180,
          "minimum": -180,
          "type": "integer"
        },
        "size": {
          "description": "Width and height, thousandths of the box's height.",
          "maximum": 2000,
          "minimum": 100,
          "type": "integer"
        },
        "x": {
          "description": "Centre, thousandths of the box's width.",
          "maximum": 1000,
          "minimum": 0,
          "type": "integer"
        },
        "y": {
          "description": "Centre, thousandths of the box's height.",
          "maximum": 1000,
          "minimum": 0,
          "type": "integer"
        }
      },
      "required": [
        "x",
        "y",
        "size"
      ],
      "type": "object"
    },
    "textPlacement": {
      "description": "Where a line of the box sits, by its centre, in thousandths of the box's width and height, and its size.",
      "properties": {
        "size": {
          "description": "Points. Absent: the line's default size.",
          "maximum": 56,
          "minimum": 14,
          "type": "integer"
        },
        "x": {
          "maximum": 1000,
          "minimum": 0,
          "type": "integer"
        },
        "y": {
          "maximum": 1000,
          "minimum": 0,
          "type": "integer"
        }
      },
      "required": [
        "x",
        "y"
      ],
      "type": "object"
    }
  },
  "id": "com.getorbyt.actor.profile",
  "lexicon": 1
}