# 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
{
  "id": "ai.newnal.trustsquare.socialAccount",
  "defs": {
    "main": {
      "key": "any",
      "type": "record",
      "record": {
        "type": "object",
        "required": [
          "platform",
          "handle",
          "method",
          "verifiedAt"
        ],
        "properties": {
          "handle": {
            "type": "string",
            "maxLength": 640,
            "description": "Normalized handle as shown to readers, including the leading @ where the platform treats it as part of the handle.",
            "maxGraphemes": 64
          },
          "method": {
            "type": "string",
            "description": "How ownership was established. `mock` is the placeholder until real checks ship.",
            "knownValues": [
              "mock",
              "oauth",
              "post-proof"
            ]
          },
          "platform": {
            "type": "string",
            "description": "Must equal the record key.",
            "knownValues": [
              "youtube",
              "facebook",
              "x",
              "naver"
            ]
          },
          "profileUrl": {
            "type": "string",
            "format": "uri",
            "description": "Public profile the handle resolves to."
          },
          "verifiedAt": {
            "type": "string",
            "format": "datetime"
          }
        }
      },
      "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."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}
```
