--- allOf: - $ref: core-event-schema/state_event.yaml description: "Acts as an `m.room.member` invite event, where there isn't a target user_id to invite. This event contains a token and a public key whose private key must be used to sign the token. Any user who can present that signature may use this invitation to join the target room." properties: content: properties: display_name: description: "A user-readable string which represents the user who has been invited. This should not contain the user's third-party ID, as otherwise when the invite is accepted it would leak the association between the matrix ID and the third-party ID." type: string key_validity_url: description: "A URL which can be fetched, with querystring public_key=public_key, to validate whether the key has been revoked. The URL must return a JSON object containing a boolean property named 'valid'." type: string public_key: description: A base64-encoded ed25519 key with which token must be signed (though a signature from any entry in public_keys is also sufficient). This exists for backwards compatibility. type: string public_keys: description: Keys with which the token may be signed. items: properties: key_validity_url: description: "An optional URL which can be fetched, with querystring public_key=public_key, to validate whether the key has been revoked. The URL must return a JSON object containing a boolean property named 'valid'. If this URL is absent, the key must be considered valid indefinitely." type: string public_key: description: A base-64 encoded ed25519 key with which token may be signed. type: string required: - public_key title: PublicKeys type: object type: array required: - display_name - key_validity_url - public_key type: object state_key: description: 'The token, of which a signature must be produced in order to join the room.' type: string type: enum: - m.room.third_party_invite type: string title: 'An invitation to a room issued to a third-party identifier, rather than a matrix user ID.' type: object