app.zeens.markConvoSeen
{
"$type": "com.atproto.lexicon.schema",
"defs": {
"main": {
"description": "Advance the viewer's per-conversation seen cursor (never moves backwards). Modelled as a query to avoid the DPoP requirement on procedures; it writes internal bookkeeping, not a PDS record.",
"output": {
"encoding": "application/json",
"schema": {
"properties": {
"seenAt": {
"format": "datetime",
"type": "string"
}
},
"required": [
"seenAt"
],
"type": "object"
}
},
"parameters": {
"properties": {
"convoId": {
"type": "string"
},
"seenAt": {
"format": "datetime",
"type": "string"
},
"viewer": {
"format": "did",
"type": "string"
}
},
"required": [
"viewer",
"convoId",
"seenAt"
],
"type": "params"
},
"type": "query"
}
},
"id": "app.zeens.markConvoSeen",
"lexicon": 1
}
Metadata
- DID
-
did:plc:pwpuqwge6g7xrjmfbw73uycw - CID
-
bafyreieydhvkvfbxdqse3ocdkwtx7wb53tblfv45nncgl4t4jzpq4bbrjy - Indexed At
- 2026-10-22 16:31 UTC
- AT-URI
-
at://did:plc:pwpuqwge6g7xrjmfbw73uycw/com.atproto.lexicon.schema/app.zeens.markConvoSeen
Similar Lexicons
Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.
-
Update the recipient's notification seenAt cursor. Everything older than this timestamp is considered read. Modelled as a query because our AppView has no user OAuth session and the write is internal bookkeeping (not a …
-
app.zeens.hideConvo query
Mark a conversation hidden for the viewer (the delete-conversation view side). getConvos excludes it until a new message arrives.