# ai.newnal.trustsquare.socialAccount

> Published by [bezalel-newnal.bsky.social](https://lexicon.garden/identity/did:plc:75qhtany5zmo7d3i2ni5d7nf)

✓ This is the authoritative definition for this NSID.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:75qhtany5zmo7d3i2ni5d7nf/ai.newnal.trustsquare.socialAccount)
- [Documentation](https://lexicon.garden/lexicon/did:plc:75qhtany5zmo7d3i2ni5d7nf/ai.newnal.trustsquare.socialAccount/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:75qhtany5zmo7d3i2ni5d7nf/ai.newnal.trustsquare.socialAccount/examples)

## Definitions

### `ai.newnal.trustsquare.socialAccount`

**Type**: `record`

A social account the holder claims as theirs. The record key is the platform id, so a repository can hold at most one account per platform. `method` records how the claim was established: `mock` means it was auto-accepted by the mocked flow and proves nothing, so consumers must not present it as ownership-checked once real methods exist.

**Key**: `any`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `handle` | `string` | Yes | Normalized handle as shown to readers, including the leading @ where the platform treats it as part of the handle. |
| `method` | `string` | Yes | How ownership was established. `mock` is the placeholder until real checks ship. |
| `platform` | `string` | Yes | Must equal the record key. |
| `profileUrl` | `string` (uri) | No | Public profile the handle resolves to. |
| `verifiedAt` | `string` (datetime) | Yes |  |

## Raw Schema

```json
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "A social account the holder claims as theirs. The record key is the platform id, so a repository can hold at most one account per platform. `method` records how the claim was established: `mock` means it was auto-accepted by the mocked flow and proves nothing, so consumers must not present it as ownership-checked once real methods exist.",
      "key": "any",
      "record": {
        "properties": {
          "handle": {
            "description": "Normalized handle as shown to readers, including the leading @ where the platform treats it as part of the handle.",
            "maxGraphemes": 64,
            "maxLength": 640,
            "type": "string"
          },
          "method": {
            "description": "How ownership was established. `mock` is the placeholder until real checks ship.",
            "knownValues": [
              "mock",
              "oauth",
              "post-proof"
            ],
            "type": "string"
          },
          "platform": {
            "description": "Must equal the record key.",
            "knownValues": [
              "youtube",
              "facebook",
              "x",
              "naver"
            ],
            "type": "string"
          },
          "profileUrl": {
            "description": "Public profile the handle resolves to.",
            "format": "uri",
            "type": "string"
          },
          "verifiedAt": {
            "format": "datetime",
            "type": "string"
          }
        },
        "required": [
          "platform",
          "handle",
          "method",
          "verifiedAt"
        ],
        "type": "object"
      },
      "type": "record"
    }
  },
  "id": "ai.newnal.trustsquare.socialAccount",
  "lexicon": 1
}
```
