agency.portable.attestation

portable.agency

Documentation

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.

main record

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.

Record Key any Any valid record key

Properties

createdAt string datetime Required

An RFC 3339 formatted timestamp.

revokedAt string datetime Optional

If present, indicates when this attestation was revoked (e.g. the subject lost the role). Absence means the attestation is currently active.

role string Optional

Optional role, rank, or status within the service or community (e.g. 'admin', 'maintainer', 'fascinator').

service ref #service Required

No description available.

subject string did Required

DID of the atproto account this attestation is about.

View raw schema
{
  "key": "any",
  "type": "record",
  "record": {
    "type": "object",
    "required": [
      "subject",
      "service",
      "createdAt"
    ],
    "properties": {
      "role": {
        "type": "string",
        "description": "Optional role, rank, or status within the service or community (e.g. 'admin', 'maintainer', 'fascinator')."
      },
      "service": {
        "ref": "#service",
        "type": "ref"
      },
      "subject": {
        "type": "string",
        "format": "did",
        "description": "DID of the atproto account this attestation is about."
      },
      "createdAt": {
        "type": "string",
        "format": "datetime"
      },
      "revokedAt": {
        "type": "string",
        "format": "datetime",
        "description": "If present, indicates when this attestation was revoked (e.g. the subject lost the role). Absence means the attestation is currently active."
      }
    }
  },
  "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."
}
service object

Identifies an external service and, optionally, a specific community and identity within it.

Properties

community string Optional

Optional identifier for a specific group, server, workspace, or organization within the service (e.g. a Discord guild ID, a GitHub org slug).

identifier string Optional

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 Required

External service identifier (e.g. 'discord', 'github', 'slack').

View raw schema
{
  "type": "object",
  "required": [
    "type"
  ],
  "properties": {
    "type": {
      "type": "string",
      "description": "External service identifier (e.g. 'discord', 'github', 'slack')."
    },
    "community": {
      "type": "string",
      "description": "Optional identifier for a specific group, server, workspace, or organization within the service (e.g. a Discord guild ID, a GitHub org slug)."
    },
    "identifier": {
      "type": "string",
      "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."
    }
  },
  "description": "Identifies an external service and, optionally, a specific community and identity within it."
}

Lexicon Garden

@