# social.colibri.labeler.attestation

> Published by [colibri.social](https://lexicon.garden/identity/did:plc:mprdjqjluoswa7awzggaggj3)

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:mprdjqjluoswa7awzggaggj3/social.colibri.labeler.attestation)
- [Documentation](https://lexicon.garden/lexicon/did:plc:mprdjqjluoswa7awzggaggj3/social.colibri.labeler.attestation/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:mprdjqjluoswa7awzggaggj3/social.colibri.labeler.attestation/examples)

## Definitions

### `social.colibri.labeler.attestation`

**Type**: `record`

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 in for a private mapping table: the attestation is public, auditable, and replicated like any other record. The record key is the subject DID, so one subject resolves with a single `getRecord`. Holding an attestation is not itself a badge, the labeler still issues ordinary `com.atproto.label` labels based on what the external platform reports.

**Key**: `any`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `$type` | `string` (nsid) | No | The type of the record. |
| `subject` | `string` (did) | Yes | The account this attestation is about. Must equal the record key. |
| `platform` | `string` | Yes | The external platform the account lives on. |
| `accountId` | `string` | Yes | Stable identifier of the external account, as issued by the platform. Opaque to clients, used by the labeler to match the subject against the platform's own records. |
| `createdAt` | `string` (datetime) | Yes |  |
| `verifiedAt` | `string` (datetime) | Yes | When control of the external account was last proved. |
| `accountSlug` | `string` | No | Human-readable handle of the external account, for display only. |

## Raw Schema

```json
{
  "id": "social.colibri.labeler.attestation",
  "defs": {
    "main": {
      "key": "any",
      "type": "record",
      "record": {
        "type": "object",
        "required": [
          "subject",
          "platform",
          "accountId",
          "verifiedAt",
          "createdAt"
        ],
        "properties": {
          "$type": {
            "type": "string",
            "format": "nsid",
            "description": "The type of the record."
          },
          "subject": {
            "type": "string",
            "format": "did",
            "description": "The account this attestation is about. Must equal the record key."
          },
          "platform": {
            "type": "string",
            "maxLength": 64,
            "description": "The external platform the account lives on.",
            "knownValues": [
              "opencollective"
            ]
          },
          "accountId": {
            "type": "string",
            "maxLength": 128,
            "description": "Stable identifier of the external account, as issued by the platform. Opaque to clients, used by the labeler to match the subject against the platform's own records."
          },
          "createdAt": {
            "type": "string",
            "format": "datetime"
          },
          "verifiedAt": {
            "type": "string",
            "format": "datetime",
            "description": "When control of the external account was last proved."
          },
          "accountSlug": {
            "type": "string",
            "maxLength": 128,
            "description": "Human-readable handle of the external account, for display only."
          }
        }
      },
      "description": "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 in for a private mapping table: the attestation is public, auditable, and replicated like any other record. The record key is the subject DID, so one subject resolves with a single `getRecord`. Holding an attestation is not itself a badge, the labeler still issues ordinary `com.atproto.label` labels based on what the external platform reports."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1,
  "revision": 1
}
```
