app.zeens.message
A single chat message, written to the SENDER's repo. The body is base64-obfuscated (NOT encrypted) so it isn't plainly readable when browsing the repo, but it is not secret — anyone can decode it. Chats are public on the user's PDS. The convoId groups a 1:1 conversation. Carries the app.zeens.v marker so the firehose recognises it.
Details · record, key tid
| Kind | record |
|---|---|
| Record key | tid |
| Authority | zeens.app |
| Indexed |
Checks
Validfield-name-syntaxdefs.main.record.properties.app.zeens.vThe field name app.zeens.v should be letters and digits, starting with a letter.unlimited-stringdefs.main.record.properties.encNo maxLength, maxGraphemes or format limits this string.
{
"$type": "com.atproto.lexicon.schema",
"defs": {
"main": {
"description": "A single chat message, written to the SENDER's repo. The body is base64-obfuscated (NOT encrypted) so it isn't plainly readable when browsing the repo, but it is not secret — anyone can decode it. Chats are public on the user's PDS. The convoId groups a 1:1 conversation. Carries the app.zeens.v marker so the firehose recognises it.",
"key": "tid",
"record": {
"properties": {
"app.zeens.v": {
"description": "Zeens version marker (always 1).",
"type": "integer"
},
"body": {
"description": "Base64-obfuscated message text (UTF-8 bytes, base64-encoded). Obfuscation only, not encryption.",
"maxLength": 16384,
"type": "string"
},
"convoId": {
"description": "Deterministic 1:1 conversation id = sha256(sorted([didA, didB]).join('|')). Both parties derive the same id without coordination.",
"maxLength": 128,
"type": "string"
},
"createdAt": {
"description": "Client-declared send time.",
"format": "datetime",
"type": "string"
},
"enc": {
"description": "Obfuscation scheme for the body. 'b64' = base64 of UTF-8 bytes.",
"enum": [
"b64"
],
"type": "string"
},
"recipient": {
"description": "DID of the intended recipient.",
"format": "did",
"type": "string"
}
},
"required": [
"convoId",
"recipient",
"body",
"enc",
"createdAt",
"app.zeens.v"
],
"type": "object"
},
"type": "record"
}
},
"id": "app.zeens.message",
"lexicon": 1
}