agency.portable.attestation
An attestation by a verifier that a subject atproto account is linked to an identity, community, or role in an external service. Paired with a matching agency.portable.membership record on the subject's PDS.
Details · record, key any
| Kind | record |
|---|---|
| Record key | any |
| Authority | portable.agency |
| Indexed |
Checks
Validunlimited-stringdefs.main.record.properties.roleNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.service.properties.communityNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.service.properties.identifierNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.service.properties.typeNo maxLength, maxGraphemes or format limits this string.
{
"$type": "com.atproto.lexicon.schema",
"defs": {
"main": {
"description": "An attestation by a verifier that a subject atproto account is linked to an identity, community, or role in an external service. Paired with a matching agency.portable.membership record on the subject's PDS.",
"key": "any",
"record": {
"properties": {
"createdAt": {
"format": "datetime",
"type": "string"
},
"revokedAt": {
"description": "If present, indicates when this attestation was revoked (e.g. the subject lost the role). Absence means the attestation is currently active.",
"format": "datetime",
"type": "string"
},
"role": {
"description": "Optional role, rank, or status within the service or community (e.g. 'admin', 'maintainer', 'fascinator').",
"type": "string"
},
"service": {
"ref": "#service",
"type": "ref"
},
"subject": {
"description": "DID of the atproto account this attestation is about.",
"format": "did",
"type": "string"
}
},
"required": [
"subject",
"service",
"createdAt"
],
"type": "object"
},
"type": "record"
},
"service": {
"description": "Identifies an external service and, optionally, a specific community and identity within it.",
"properties": {
"community": {
"description": "Optional identifier for a specific group, server, workspace, or organization within the service (e.g. a Discord guild ID, a GitHub org slug).",
"type": "string"
},
"identifier": {
"description": "Optional external identity within the service (e.g. a user ID or handle). Include when proving platform identity; may be omitted when only proving community or role membership.",
"type": "string"
},
"type": {
"description": "External service identifier (e.g. 'discord', 'github', 'slack').",
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
}
},
"id": "agency.portable.attestation",
"lexicon": 1
}