Lexicon Specifications
This document describes the ATProtoFans lexicon schemas for record types stored in ATProtocol repositories.
Record Types
com.atprotofans.supporter
Record declaring support for another identity. Stored in the supporter's repository.
Key: tid
{
"$type": "com.atprotofans.supporter",
"subject": "did:plc:creator123",
"txnid": "01ARZ3NDEKTSV4RRFFQ69G5FAV",
"signatures": [
{
"$type": "com.atprotofans.supporterProof",
"cid": "bafyreiabc..."
}
]
}
Fields
| Field | Type | Required | Description |
|---|---|---|---|
subject |
string (DID) | Yes | DID of the identity being supported |
txnid |
string | Yes | Unique transaction identifier (ULID) for this instance of support. Used to de-duplicate support records. Max length: 100 characters |
signatures |
array | No | Attestation proofs for this support relationship. Can contain com.atproto.repo.strongRef, com.atprotofans.supporterProof, or com.atprotofans.brokerProof |
com.atprotofans.supporterProof
Attestation proof for a supporter relationship. When inline, cid and signature are required. When remote, only cid is required.
Key: tid
Remote Reference
{
"$type": "com.atprotofans.supporterProof",
"cid": "bafyreiabc..."
}
Inline Proof
{
"$type": "com.atprotofans.supporterProof",
"cid": "bafyreiabc...",
"key": "did:key:z6Mk...",
"signature": "<bytes>"
}
Fields
| Field | Type | Required | Description |
|---|---|---|---|
cid |
string (CID) | Yes | CID of the proof record |
key |
string | No | Signing key (for inline proofs) |
signature |
bytes | No | Signature data (for inline proofs) |
com.atprotofans.brokerProof
Broker attestation proof for a supporter relationship. Similar to supporterProof but specifically for broker attestations.
Key: tid
Remote Reference
{
"$type": "com.atprotofans.brokerProof",
"cid": "bafyreiabc..."
}
Inline Proof
{
"$type": "com.atprotofans.brokerProof",
"cid": "bafyreiabc...",
"key": "did:key:z6Mk...",
"signature": "<bytes>"
}
Fields
| Field | Type | Required | Description |
|---|---|---|---|
cid |
string (CID) | Yes | CID of the proof record |
key |
string | No | Signing key (for inline proofs) |
signature |
bytes | No | Signature data (for inline proofs) |
com.atprotofans.profile
An identity profile for display and discovery on ATProtoFans.
Key: literal:self
{
"$type": "com.atprotofans.profile",
"displayName": "Jane Creator",
"description": "Making cool things!",
"acceptingSupporters": true,
"avatar": {
"$type": "blob",
"ref": {"$link": "bafyrei..."},
"mimeType": "image/png",
"size": 12345
},
"banner": {
"$type": "blob",
"ref": {"$link": "bafyrei..."},
"mimeType": "image/png",
"size": 67890
}
}
Fields
| Field | Type | Required | Description |
|---|---|---|---|
displayName |
string | No | Display name (max 64 graphemes, 640 bytes) |
description |
string | No | Profile bio/description with optional rich text (max 256 graphemes, 2560 bytes) |
facets |
array | No | Rich text facets for description annotations (app.bsky.richtext.facet) |
avatar |
blob | No | Avatar image (PNG, JPEG, or WebP, max 1MB) |
banner |
blob | No | Banner image (PNG, JPEG, or WebP, max 1MB) |
acceptingSupporters |
boolean | No | Whether the identity is currently accepting new supporters |
Object Types
com.atprotofans.hydratedProfile
A hydrated identity profile with computed fields. Used in API responses.
{
"did": "did:plc:abc123",
"handle": "creator.bsky.social",
"displayName": "Jane Creator",
"description": "Making cool things!",
"acceptingSupporters": true,
"supporterCount": 42
}
Fields
| Field | Type | Required | Description |
|---|---|---|---|
did |
string (DID) | Yes | DID of the profile owner |
handle |
string (handle) | No | Handle of the profile owner |
displayName |
string | No | Display name (max 64 graphemes) |
description |
string | No | Profile bio/description (max 256 graphemes) |
facets |
array | No | Rich text facets for description annotations |
avatar |
blob | No | Avatar image blob reference |
banner |
blob | No | Banner image blob reference |
acceptingSupporters |
boolean | No | Whether accepting new supporters |
supporterCount |
integer | No | Number of supporters for this profile |