Skip to content

Lexicon Reference

Open Social uses AT Protocol lexicons to define the data structures stored in community PDS repositories.

The community’s public profile, stored at rkey self.

{
"$type": "community.opensocial.profile",
"displayName": "My Community",
"description": "A place for discussion",
"type": "open",
"guidelines": "Be kind and respectful",
"avatar": { "$type": "blob", "ref": { "$link": "..." }, "mimeType": "image/jpeg" },
"banner": { "$type": "blob", "ref": { "$link": "..." }, "mimeType": "image/jpeg" },
"createdAt": "2025-01-01T00:00:00.000Z"
}
FieldTypeDescription
displayNamestringCommunity name (max 64 chars)
descriptionstringShort description (max 512 chars)
typestringopen, admin-approved, or private
guidelinesstringCommunity rules (max 3000 chars)
avatarblobCommunity avatar image
bannerblobCommunity banner image
createdAtdatetimeWhen created

Admin list, stored at rkey self. The first entry is the primary (original) admin.

{
"$type": "community.opensocial.admins",
"admins": [
{ "did": "did:plc:creator123", "addedAt": "2025-01-01T00:00:00.000Z" },
{ "did": "did:plc:admin456", "addedAt": "2025-01-15T00:00:00.000Z" }
]
}
FieldTypeDescription
adminsarrayList of admin objects
admins[].didstringAdmin’s DID
admins[].addedAtdatetimeWhen added as admin

Stored in the user’s PDS repo. Indicates intent to join a community.

{
"$type": "community.opensocial.membership",
"community": "did:plc:community123",
"joinedAt": "2025-01-01T00:00:00.000Z"
}
FieldTypeDescription
communitystringCommunity DID
joinedAtdatetimeWhen the user joined

Stored in the community’s PDS repo. Confirms a user is a verified member.

{
"$type": "community.opensocial.membershipProof",
"memberDid": "did:plc:user123",
"cid": "bafyrei...",
"confirmedAt": "2025-01-01T00:00:00.000Z"
}
FieldTypeDescription
memberDidstringMember’s DID
cidstringCID of the user’s membership record
confirmedAtdatetimeWhen membership was confirmed

A complete membership requires both records:

  • membership in user’s repo → user wants to be a member
  • membershipProof in community’s repo → community confirms membership
membershipmembershipProofStatus
Active member
Removed or not yet approved
User has left

A named list within a community.

{
"$type": "community.opensocial.list",
"name": "Book Recommendations",
"community": "did:plc:community123",
"createdBy": "did:plc:user123",
"createdAt": "2025-01-01T00:00:00.000Z",
"description": "Great books to read"
}

An item in a community list.

{
"$type": "community.opensocial.listitem",
"list": { "uri": "at://did:plc:community/community.opensocial.list/abc", "cid": "bafyrei..." },
"item": { "uri": "at://did:plc:user/app.bsky.feed.post/xyz", "cid": "bafyrei..." },
"addedBy": "did:plc:user123",
"addedAt": "2025-01-01T00:00:00.000Z"
}