Skip to content

place.stream.chat.access

Lexicon Version: 1

Type: record

A rule about who may chat on this streamer’s streams. Rules are evaluated per streamer: when any allow rule exists, only accounts matching an allow rule may chat; accounts matching a deny rule never may. A streamer with no rules has open chat.

Record Key: tid

Record Properties:

NameTypeReq’dDescriptionConstraints
actionstring✅Whether accounts matching the subject may chat (allow) or may not (deny). Deny wins over allow.Enum: allow, deny
subjectUnion of:
  #verifier
  #label
✅Who the rule matches. Open: a node ignores subject types it does not understand.
createdAtstring✅Client-declared timestamp when this rule was created.Format: datetime

Type: object

Accounts that hold an app.bsky.graph.verification record issued by this DID. A node that sees a rule naming a verifier starts indexing that verifier’s records.

Properties:

NameTypeReq’dDescriptionConstraints
didstring✅The verifier’s DID.Format: did

Type: object

Accounts carrying this label from this labeler. A node that sees a rule naming a labeler starts mirroring its matching labels.

Properties:

NameTypeReq’dDescriptionConstraints
labelerstring✅The labeler’s DID.Format: did
valuestring✅The label value that matches; a trailing * matches any label with that prefix.Max Length: 128

{
"lexicon": 1,
"id": "place.stream.chat.access",
"defs": {
"main": {
"type": "record",
"key": "tid",
"description": "A rule about who may chat on this streamer's streams. Rules are evaluated per streamer: when any allow rule exists, only accounts matching an allow rule may chat; accounts matching a deny rule never may. A streamer with no rules has open chat.",
"record": {
"type": "object",
"required": ["action", "subject", "createdAt"],
"properties": {
"action": {
"type": "string",
"enum": ["allow", "deny"],
"description": "Whether accounts matching the subject may chat (allow) or may not (deny). Deny wins over allow."
},
"subject": {
"type": "union",
"refs": ["#verifier", "#label"],
"description": "Who the rule matches. Open: a node ignores subject types it does not understand."
},
"createdAt": {
"type": "string",
"format": "datetime",
"description": "Client-declared timestamp when this rule was created."
}
}
}
},
"verifier": {
"type": "object",
"description": "Accounts that hold an app.bsky.graph.verification record issued by this DID. A node that sees a rule naming a verifier starts indexing that verifier's records.",
"required": ["did"],
"properties": {
"did": {
"type": "string",
"format": "did",
"description": "The verifier's DID."
}
}
},
"label": {
"type": "object",
"description": "Accounts carrying this label from this labeler. A node that sees a rule naming a labeler starts mirroring its matching labels.",
"required": ["labeler", "value"],
"properties": {
"labeler": {
"type": "string",
"format": "did",
"description": "The labeler's DID."
},
"value": {
"type": "string",
"maxLength": 128,
"description": "The label value that matches; a trailing * matches any label with that prefix."
}
}
}
}
}