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.
tid
Timestamp-based ID
Properties
app.zeens.v
integer
Required
Zeens version marker (always 1).
body
string
Required
Base64-obfuscated message text (UTF-8 bytes, base64-encoded). Obfuscation only, not encryption.
maxLength: 16384 bytesconvoId
string
Required
Deterministic 1:1 conversation id = sha256(sorted([didA, didB]).join('|')). Both parties derive the same id without coordination.
maxLength: 128 bytescreatedAt
string
datetime
Required
Client-declared send time.
enc
string
Required
Obfuscation scheme for the body. 'b64' = base64 of UTF-8 bytes.
b64recipient
string
did
Required
DID of the intended recipient.
View raw schema
{
"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"
}