--- allOf: - $ref: core-event-schema/event.yaml description: |- This event type is used when sending encrypted events. It can be used either within a room (in which case it will have all of the normal properties in [Room events](/client-server-api/#room-event-format)), or as a [to-device](/client-server-api/#send-to-device-messaging) event. properties: content: properties: algorithm: type: string enum: - m.olm.v1.curve25519-aes-sha2 - m.megolm.v1.aes-sha2 description: |- The encryption algorithm used to encrypt this event. The value of this field determines which other properties will be present. ciphertext: oneOf: - type: string - type: object additionalProperties: type: object title: CiphertextInfo properties: body: type: string description: The encrypted payload. type: type: integer description: The Olm message type. description: |- The encrypted content of the event. Either the encrypted payload itself, in the case of a Megolm event, or a map from the recipient Curve25519 identity key to ciphertext information, in the case of an Olm event. For more details, see [Messaging Algorithms](/client-server-api/#messaging-algorithms). sender_key: type: string x-changedInMatrixVersion: "1.3": |- Previously this field was required, however given it offers no additional security or privacy benefit it has been deprecated for Megolm messages. See [`m.megolm.v1.aes-sha2`](#mmegolmv1aes-sha2) for more information. description: |- The Curve25519 key of the sender. Required (not deprecated) if not using Megolm. **Deprecated**: This field provides no additional security or privacy benefit for Megolm messages and must not be read from if the encrypted event is using Megolm. It should still be included on outgoing messages, however must not be used to find the corresponding session. See [`m.megolm.v1.aes-sha2`](#mmegolmv1aes-sha2) for more information. device_id: type: string x-changedInMatrixVersion: "1.3": |- Previously this field was required for Megolm messages, however given it offers no additional security or privacy benefit it has been deprecated for Megolm messages. See [`m.megolm.v1.aes-sha2`](#mmegolmv1aes-sha2) for more information. description: |- The ID of the sending device. **Deprecated**: This field provides no additional security or privacy benefit for Megolm messages and must not be read from if the encrypted event is using Megolm. It should still be included on outgoing messages, however must not be used to find the corresponding session. See [`m.megolm.v1.aes-sha2`](#mmegolmv1aes-sha2) for more information. session_id: type: string description: |- The ID of the session used to encrypt the message. Required with Megolm. required: - algorithm - ciphertext type: object type: enum: - m.room.encrypted type: string type: object