{
"id": "id.sifa.org.profile",
"defs": {
"main": {
"key": "literal:self",
"type": "record",
"record": {
"type": "object",
"required": [
"name",
"createdAt"
],
"properties": {
"logo": {
"type": "blob",
"accept": [
"image/png",
"image/jpeg"
],
"maxSize": 1000000,
"description": "Organization logo image."
},
"name": {
"type": "string",
"maxLength": 2000,
"minLength": 1,
"description": "Organization display name.",
"maxGraphemes": 200
},
"labels": {
"refs": [
"com.atproto.label.defs#selfLabels"
],
"type": "union",
"description": "Self-label values for this organization profile."
},
"contact": {
"type": "string",
"description": "Contact email address for the organization. NOT rendered publicly; used for notifications only. Validated as an email address at the app layer."
},
"website": {
"type": "string",
"format": "uri",
"description": "Official website URL."
},
"createdAt": {
"type": "string",
"format": "datetime",
"description": "Client-declared timestamp when this organization profile was originally created."
},
"entityRefs": {
"type": "array",
"items": {
"type": "string",
"format": "uri"
},
"maxLength": 20,
"description": "Canonical external entity identifiers this account represents: Wikidata Q-ID URIs (http://www.wikidata.org/entity/Q...), ROR URIs, or LEI URIs. Self-declared; downstream validation (registry match) confirms or fails each binding."
},
"description": {
"type": "string",
"maxLength": 50000,
"description": "Organization description / about.",
"maxGraphemes": 5000
},
"personalProfileVisible": {
"type": "boolean",
"default": false,
"description": "Whether the account holder's personal profile stays publicly visible alongside this organization profile. For sole traders and one-person businesses whose personal domain is also their trade name: the person and the organization are the same account, and both pages render. When false or absent, the account presents solely as an organization and the personal profile is not rendered."
}
}
},
"description": "The organization's self-declared profile. Singleton: one org declaration per DID, following the app.bsky.actor.profile pattern.",
"x-skos:exactMatch": [
"schema:Organization",
"org:FormalOrganization"
]
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1,
"description": "Self-declared organization profile. Lives in the organization's PDS. Presence of this record marks the account as presenting as an organization; trust is layered separately by AppViews (Sifa's rendering floor, verification labels, registry matches). Creating this record asserts that the account holder is authorized to represent this organization. The assertion carries Terms-of-Service and legal weight but no trust weight on its own. Independently evaluable by any AppView with zero Sifa dependency."
}