--- 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 format: uri public_key: description: |- An Ed25519 key with which the token must be signed (though a signature from any entry in `public_keys` is also sufficient). The key is encoded using [Unpadded Base64](/appendices/#unpadded-base64), using the standard or URL-safe alphabets. 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=`, 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: |- An Ed25519 key with which the token may be signed. The key is encoded using [Unpadded Base64](/appendices/#unpadded-base64), using the standard or URL-safe alphabets. 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