Trust invitation from this actor to a contact. The invite URL carries a signed token bound to inviteId; acceptance must match intendedRecipientEncryptionPublicKey when set. Revocable by the inviter.
tid
Timestamp-based ID
Properties
acceptedByDid
string
did
Optional
Set when status becomes accepted.
createdAt
string
datetime
Required
An RFC 3339 formatted timestamp.
expiresAt
string
datetime
Optional
Optional expiry; client should treat as expired after this time.
intendedRecipientEncryptionPublicKey
bytes
Optional
When set, only a party that proves possession of the matching private key can complete acceptance. Set for existing users at invite time; set by the new user on signup before accept completes.
maxLength: 256inviteId
string
Required
Stable id for this invite; echoed in the signed invite token.
maxLength: 128 bytesminLength: 1 bytesrevokedAt
string
datetime
Optional
An RFC 3339 formatted timestamp.
status
string
Required
Lifecycle state. pending until accepted or revoked/expired.
pending, accepted, revoked, expiredtargetHint
string
Optional
Optional human hint (e.g. email) for the inviter's UI; not used for cryptography.
maxLength: 256 bytesView raw schema
{
"key": "tid",
"type": "record",
"record": {
"type": "object",
"required": [
"inviteId",
"status",
"createdAt"
],
"properties": {
"status": {
"type": "string",
"description": "Lifecycle state. pending until accepted or revoked/expired.",
"knownValues": [
"pending",
"accepted",
"revoked",
"expired"
]
},
"inviteId": {
"type": "string",
"maxLength": 128,
"minLength": 1,
"description": "Stable id for this invite; echoed in the signed invite token."
},
"createdAt": {
"type": "string",
"format": "datetime"
},
"expiresAt": {
"type": "string",
"format": "datetime",
"description": "Optional expiry; client should treat as expired after this time."
},
"revokedAt": {
"type": "string",
"format": "datetime"
},
"targetHint": {
"type": "string",
"maxLength": 256,
"description": "Optional human hint (e.g. email) for the inviter's UI; not used for cryptography."
},
"acceptedByDid": {
"type": "string",
"format": "did",
"description": "Set when status becomes accepted."
},
"intendedRecipientEncryptionPublicKey": {
"type": "bytes",
"maxLength": 256,
"description": "When set, only a party that proves possession of the matching private key can complete acceptance. Set for existing users at invite time; set by the new user on signup before accept completes."
}
}
},
"description": "Trust invitation from this actor to a contact. The invite URL carries a signed token bound to inviteId; acceptance must match intendedRecipientEncryptionPublicKey when set. Revocable by the inviter."
}