at.inlay.component

inlay.at

{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "bodyExternal": {
      "description": "Component rendered by calling a remote XRPC endpoint",
      "properties": {
        "did": {
          "description": "DID of the service hosting this component",
          "format": "did",
          "type": "string"
        }
      },
      "required": [
        "did"
      ],
      "type": "object"
    },
    "bodyTemplate": {
      "description": "Component rendered by the host from a serialized element tree",
      "properties": {
        "node": {
          "description": "Serialized element tree with bindings",
          "type": "unknown"
        }
      },
      "required": [
        "node"
      ],
      "type": "object"
    },
    "main": {
      "description": "Component record - declares an implementation of a type",
      "key": "tid",
      "record": {
        "properties": {
          "body": {
            "description": "How this component is rendered. Omit for primitives rendered by the host.",
            "refs": [
              "#bodyExternal",
              "#bodyTemplate"
            ],
            "type": "union"
          },
          "createdAt": {
            "format": "datetime",
            "type": "string"
          },
          "description": {
            "maxGraphemes": 1000,
            "maxLength": 10000,
            "type": "string"
          },
          "imports": {
            "description": "Ordered list of pack URIs (import stack). First pack that exports an NSID wins.",
            "items": {
              "format": "at-uri",
              "type": "string"
            },
            "type": "array"
          },
          "type": {
            "description": "NSID this component implements (also the XRPC procedure)",
            "format": "nsid",
            "type": "string"
          },
          "updatedAt": {
            "description": "Last update timestamp. Set by the publish flow to bust cached responses.",
            "format": "datetime",
            "type": "string"
          },
          "via": {
            "description": "Platform-managed deployment metadata",
            "refs": [
              "at.inlay.defs#viaValtown"
            ],
            "type": "union"
          },
          "view": {
            "description": "What data this component views and which prop receives it",
            "ref": "#view",
            "type": "ref"
          }
        },
        "required": [
          "type"
        ],
        "type": "object"
      },
      "type": "record"
    },
    "view": {
      "description": "Declares what data this component views and which prop receives it.",
      "properties": {
        "accepts": {
          "description": "Data types this view accepts.",
          "items": {
            "refs": [
              "#viewRecord",
              "#viewPrimitive"
            ],
            "type": "union"
          },
          "minLength": 1,
          "type": "array"
        },
        "prop": {
          "description": "Which component prop receives the view data.",
          "maxLength": 256,
          "type": "string"
        }
      },
      "required": [
        "prop",
        "accepts"
      ],
      "type": "object"
    },
    "viewPrimitive": {
      "description": "View accepts a primitive value type.",
      "properties": {
        "format": {
          "description": "String format constraint. Only applies when type is 'string'.",
          "knownValues": [
            "at-uri",
            "did",
            "datetime",
            "uri",
            "handle",
            "at-identifier",
            "nsid",
            "cid",
            "language",
            "record-key",
            "tid"
          ],
          "maxLength": 64,
          "type": "string"
        },
        "type": {
          "description": "Lexicon primitive type.",
          "knownValues": [
            "string",
            "integer",
            "boolean",
            "blob",
            "cid-link",
            "bytes"
          ],
          "maxLength": 128,
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "viewRecord": {
      "description": "View accepts individual records of a collection. Omit collection for a generic record view. When rkey is present, the component accepts bare DIDs (expanded to full AT URIs) and appears on identity pages.",
      "properties": {
        "collection": {
          "description": "The collection this component views. Omit for any-collection.",
          "format": "nsid",
          "type": "string"
        },
        "rkey": {
          "description": "The record key, baked from the collection's lexicon at authoring time. Presence enables DID expansion and identity page routing.",
          "maxLength": 512,
          "type": "string"
        }
      },
      "type": "object"
    }
  },
  "id": "at.inlay.component",
  "lexicon": 1
}

Validate Record

Validate a record against at.inlay.component

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

Metadata

DID
did:plc:mdg3w2kpadcyxy33pizokzf3
CID
bafyreicl425kwjroyq2mvpv6egc7rhhdt4357q2ml7cy5lhelmandsr6g4
Indexed At
2026-03-19 20:26 UTC
AT-URI
at://did:plc:mdg3w2kpadcyxy33pizokzf3/com.atproto.lexicon.schema/at.inlay.component

Version History (3 versions)

Referenced Schemas (1)

Similar Lexicons

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

  • Cache lifetime and invalidation tags returned by XRPC components.

Lexicon Garden

@