---
allOf:
  - $ref: core-event-schema/event.yaml

description: |-
  Begins a key verification process. Typically sent as a `to-device`_ event. The ``method``
  field determines the type of verification. The fields in the event will differ depending
  on the ``method``. This definition includes fields that are in common among all variants.
properties:
  content:
    properties:
      from_device:
        type: string
        description: |-
          The device ID which is initiating the process.
      transaction_id:
        type: string
        description: |-
          An opaque identifier for the verification process. Must be unique
          with respect to the devices involved. Must be the same as the
          ``transaction_id`` given in the ``m.key.verification.request``
          if this process is originating from a request.
      method:
        type: string
        description: |-
          The verification method to use.
      next_method:
        type: string
        description: |-
          Optional method to use to verify the other user's key with. Applicable
          when the ``method`` chosen only verifies one user's key. This field will
          never be present if the ``method`` verifies keys both ways.
    required:
      - from_device
      - transaction_id
      - method
    type: object
  type:
    enum:
      - m.key.verification.start
    type: string
type: object
