package d2d

Mouse Melon logoGet desktop application:
View/edit binary Protocol Buffers messages

message ContactSync

md-d2d.proto:329

Contact synchronisation message.

Used in: Envelope

message ContactSync.Create

md-d2d.proto:331

Create a Threema contact.

Used in: ContactSync

message ContactSync.Update

md-d2d.proto:334

Update a Threema contact.

Used in: ContactSync

message ConversationId

md-d2d.proto:148

Unique conversation identifier.

Used in: IncomingMessageUpdate.Update, OutgoingMessage, OutgoingMessageUpdate.Update

message DeviceInfo

md-d2d.proto:74

Metadata about a device, determined by the device itself.

enum DeviceInfo.Platform

md-d2d.proto:79

Platform

Used in: DeviceInfo

message DistributionListSync

md-d2d.proto:400

Distribution list synchronisation message.

Used in: Envelope

message DistributionListSync.Create

md-d2d.proto:402

Create a distribution list.

Used in: DistributionListSync

message DistributionListSync.Delete

md-d2d.proto:408

Delete a distribution list.

Used in: DistributionListSync

message DistributionListSync.Update

md-d2d.proto:405

Update a distribution list.

Used in: DistributionListSync

message Envelope

md-d2d.proto:120

Root message

message GroupSync

md-d2d.proto:346

Group synchronisation message.

Used in: Envelope

message GroupSync.Create

md-d2d.proto:348

Create a group.

Used in: GroupSync

message GroupSync.Delete

md-d2d.proto:383

Delete a group.

Used in: GroupSync

message GroupSync.Update

md-d2d.proto:366

Update a group. When receiving this variant: 1. Let `current` be a snapshot of the current group state. 2. Persist the update to the group. 3. Let `member-changes` be an empty list. 4. For each `identity`, `state-change` pair of `member_state_changes`: 1. If `state-change` is `ADDED` and `identity` does not exist in `current.members`, add the tuple `identity`, `state-change` to `member-changes`. 2. If `state-change` is `KICKED` or `LEFT` and `identity` does exist in `current.members`, add the tuple `identity`, `state-change` to `member-changes`. 5. Group `member-changes` by their associated `state-change` and add appropriate status messages to the associated conversation.

Used in: GroupSync

enum GroupSync.Update.MemberStateChange

md-d2d.proto:369

Used in: Update

message IncomingMessage

md-d2d.proto:259

An incoming message, reflected to other devices. When sending this message: 1. [...] 2. Set `nonce` to the nonce of `e2e.message-with-metadata` (or `e2e.legacy-message`) that contained the `body` in encrypted form. When receiving this message: 1. Add `nonce` to the CSP nonce storage (discard a nonces that already exist in the nonce storage). 2. If a message with the same `message_id` exists within the associated `conversation`, discard the message and abort these steps. 3. [...]

Used in: Envelope, history.PastIncomingMessage

message IncomingMessageUpdate

md-d2d.proto:290

Update one or more existing incoming messages.

Used in: Envelope

message IncomingMessageUpdate.Read

md-d2d.proto:295

Mark the referred message as read. Note: This may only be used when _read receipts_ have been turned off, i.e. as a replacement for reflecting `delivery-receipt` type _read_ (`0x02`).

Used in: Update

message IncomingMessageUpdate.Update

md-d2d.proto:301

Used in: IncomingMessageUpdate

message MdmParameterSync

md-d2d.proto:434

MDM parameter synchronisation message.

Used in: Envelope

message MdmParameterSync.Update

md-d2d.proto:438

Update MDM parameters. When receiving this variant, run the _MDM Merge And Apply Steps_.

Used in: MdmParameterSync

message OutgoingMessage

md-d2d.proto:177

An outgoing message, reflected to other devices. When sending this message: 1. [...] 2. Set `nonces` to the nonces of the associated CSP `e2e.message-with-metadata` (or `e2e.legacy-message`) messages that contained the `body` in encrypted form.¹ When receiving this message: 1. Add all `nonces` to the CSP nonce storage (discarding any nonces that already exist in the nonce storage). 2. If a message with the same `message_id` exists within the associated `conversation`, discard the message and abort these steps. 3. [...] ¹: For contacts and distribution lists, there will be exactly one nonce. For groups, there will be as many nonces as there are group members minus one.

Used in: Envelope, history.PastOutgoingMessage

message OutgoingMessageUpdate

md-d2d.proto:214

Update one or more existing outgoing messages.

Used in: Envelope

message OutgoingMessageUpdate.Sent

md-d2d.proto:223

Mark the referred message as sent (acknowledged by the chat server). Note 1: The timestamp of the `reflect-ack`/`reflected` message determines the timestamp for when the referred message has been sent. Note 2: This indicates that the referred message has been successfully stored in the message queue of the server. It does NOT indicate that the referred message has been delivered to the intended receiver.

Used in: Update

(message has no fields)

message OutgoingMessageUpdate.Update

md-d2d.proto:225

Used in: OutgoingMessageUpdate

enum ProtocolVersion

md-d2d.proto:26

D2D protocol versions. Note 1: The most significant byte is the major version and the least significant byte is the minor version. Note 2: Once the D2D protocol is more stable, an unknown major version can be interpreted as incompatible. For now, we only have 0.X versions that define in which way they break compatibility.

message SettingsSync

md-d2d.proto:425

Settings synchronisation message.

Used in: Envelope

message SettingsSync.Update

md-d2d.proto:427

Update settings.

Used in: SettingsSync

message SharedDeviceData

md-d2d.proto:65

Data shared across all devices and transmitted during the handshake.

message TransactionScope

md-d2d.proto:106

A transaction scope. Used in the d2m transaction messages.

enum TransactionScope.Scope

md-d2d.proto:107

Used in: TransactionScope

message UserProfileSync

md-d2d.proto:320

User profile synchronisation message.

Used in: Envelope

message UserProfileSync.Update

md-d2d.proto:322

Update the user's profile

Used in: UserProfileSync