chat.yakka.getSnapshot

yakka.chat

{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "Everything needed for first paint, in one round trip: the viewer's servers, the active server's channels and roster, and one channel's newest timeline page.\n\nOne method rather than five because this is the server-rendered path — every extra round trip here is latency a reader sees before anything appears. Warm navigations do not call it at all; the client's store already holds the answer.",
      "output": {
        "encoding": "application/json",
        "schema": {
          "ref": "#output",
          "type": "ref"
        }
      },
      "parameters": {
        "properties": {
          "channel": {
            "description": "Which channel's timeline to include. Omit for the server's default.",
            "type": "string"
          },
          "server": {
            "description": "Which server to open. Omit to let the appview choose the viewer's first.",
            "format": "did",
            "type": "string"
          }
        },
        "type": "params"
      },
      "type": "query"
    },
    "output": {
      "properties": {
        "activeChannelId": {
          "type": "string"
        },
        "activeServerDid": {
          "format": "did",
          "type": "string"
        },
        "channels": {
          "items": {
            "ref": "chat.yakka.defs#channelView",
            "type": "ref"
          },
          "type": "array"
        },
        "members": {
          "items": {
            "ref": "chat.yakka.defs#memberView",
            "type": "ref"
          },
          "type": "array"
        },
        "readState": {
          "items": {
            "ref": "chat.yakka.defs#channelReadState",
            "type": "ref"
          },
          "type": "array"
        },
        "servers": {
          "items": {
            "ref": "chat.yakka.defs#serverView",
            "type": "ref"
          },
          "type": "array"
        },
        "timeline": {
          "ref": "chat.yakka.defs#timelinePage",
          "type": "ref"
        },
        "viewer": {
          "ref": "chat.yakka.defs#memberView",
          "type": "ref"
        }
      },
      "required": [
        "servers",
        "channels",
        "members"
      ],
      "type": "object"
    }
  },
  "id": "chat.yakka.getSnapshot",
  "lexicon": 1
}

Validate Record

Validate a record against chat.yakka.getSnapshot

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

Metadata

DID
did:plc:wpjoy2orkqq5m65vq7gg7liz
CID
bafyreie6dwseh62rowootq3pkidicvn5w6odijmy57llnzglhnxntosaem
Indexed At
2026-08-29 15:21 UTC
AT-URI
at://did:plc:wpjoy2orkqq5m65vq7gg7liz/com.atproto.lexicon.schema/chat.yakka.getSnapshot

Referenced Schemas (5)

Similar Lexicons

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

  • Viewer state, kept apart from the channel because it changes on every read while the channel rarely changes.

Lexicon Garden

@