agency.portable.attestation

portable.agency

{
  "$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
}

Validate Record

Validate a record against agency.portable.attestation

Validation Options
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:y564i3jkoqqb5of5bcnq4xee
CID
bafyreidxukivqdlfa4ocah4bgojb5tdq4vlwqtyfzsbzm7nmq5bpezveue
Indexed At
2026-04-23 12:32 UTC
AT-URI
at://did:plc:y564i3jkoqqb5of5bcnq4xee/com.atproto.lexicon.schema/agency.portable.attestation

Similar Lexicons

Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.

  • A self-attested claim by an atproto account that it is linked to an identity, community, or role in an external service. Paired with a matching agency.portable.attestation record on the attester's PDS.

  • network.attested.proof recordnot from the namespace authority

    A remote attestation proof: a standalone record in the attestor's repository that binds, via a canonical attestation CID, to a subject record living elsewhere. Referenced from the subject's `signatures` array via com.at…

  • social.colibri.labeler.attestation recordnot from the namespace authority

    Published by a labeler to attest that a subject account proved control of an account on an external funding platform. This is what lets the labeler issue supporter badges without a maintainer in the loop, and it stands …

  • uk.co.bstools.alias.test.link recordnot from the namespace authority

    Claims that an account on another service belongs to this atproto account. Only valid if the authoriser has published a matching attestation.

  • An identity claim linking this DID to an external account

Lexicon Garden

@