---
allOf:
  - $ref: core-event-schema/room_event.yaml
description:
  Requests a key verification in a room.  When requesting a key verification
  using to-device messaging, an event with type [`m.key.verification.request`](#mkeyverificationrequest)
  should be used.
properties:
  content:
    properties:
      body:
        type: string
        description: |-
          A fallback message to alert users that their client does not support
          the key verification framework, and that they should use a different method
          to verify keys.  For example, "Alice is requesting to verify keys with you.
          However, your client does not support this method, so you will need to use
          the legacy method of key verification."

          Clients that do support the key verification framework should hide the body
          and instead present the user with an interface to accept or reject the key
          verification.
      format:
        description: |-
          The format used in the `formatted_body`. Currently only
          `org.matrix.custom.html` is supported.
        type: string
      formatted_body:
        description: |-
          The formatted version of the `body`. This is required if `format` is
          specified.  As with the `body`, clients that do support the key
          verification framework should hide the formatted body and instead
          present the user with an interface to accept or reject the key
          verification.
        type: string
      from_device:
        type: string
        description: |-
          The device ID which is initiating the request.
      methods:
        type: array
        description: |-
          The verification methods supported by the sender.
        items:
          type: string
      to:
        description: |-
          The user that the verification request is intended for.  Users who
          are not named in this field and who did not send this event should
          ignore all other events that have an `m.reference` relationship with
          this event.
        type: string
      msgtype:
        enum:
          - m.key.verification.request
        type: string
    required:
      - from_device
      - methods
      - msgtype
      - to
    type: object
  type:
    enum:
      - m.room.message
    type: string
title: KeyVerification
type: object
