A location-based check-in record
Record Key
tid
Timestamp-based ID
Properties
addressDetails
ref
community.lexicon.location.address
Optional
Structured address using community lexicon
chainEmoji
string
Optional
Chain emoji (root beacon only)
maxGraphemes: 8 graphemeschainName
string
Optional
Custom chain name (root beacon only)
maxGraphemes: 64 graphemescreatedAt
string
datetime
Required
Timestamp when the beacon was created
location
ref
community.lexicon.location.geo
Optional
Structured location using community lexicon
mentions
array
of
string
did
Optional
DIDs of users mentioned in the beacon
parentBeacon
ref
com.atproto.repo.strongRef
Optional
Reference to parent beacon for chaining
post
ref
com.atproto.repo.strongRef
Optional
Reference to associated Bluesky post
rating
integer
Optional
Star rating (1-5)
minimum: 1maximum: 5revealAt
string
datetime
Optional
ISO timestamp when beacon becomes visible (delayed reveal)
shout
string
Optional
User comment or caption
maxGraphemes: 280 graphemesthreadRoot
ref
com.atproto.repo.strongRef
Optional
Reference to root post for threading
venueAddress
string
Optional
Human-readable address
maxGraphemes: 256 graphemesvenueCategory
string
Optional
Category classification (bar, cafe, restaurant, etc.)
maxGraphemes: 64 graphemesvenueName
string
Required
Display name of the venue
maxGraphemes: 128 graphemesvenueUri
string
Required
OSM URI identifier (osm://node/123 or osm://way/456)
maxGraphemes: 512 graphemesvisibility
string
Required
Visibility setting for the beacon
maxGraphemes: 32 graphemesKnown values:
public, followers, mutuals, hiddenView raw schema
{
"key": "tid",
"type": "record",
"record": {
"type": "object",
"required": [
"venueUri",
"venueName",
"visibility",
"createdAt"
],
"properties": {
"post": {
"ref": "com.atproto.repo.strongRef",
"type": "ref",
"description": "Reference to associated Bluesky post"
},
"shout": {
"type": "string",
"description": "User comment or caption",
"maxGraphemes": 280
},
"rating": {
"type": "integer",
"maximum": 5,
"minimum": 1,
"description": "Star rating (1-5)"
},
"location": {
"ref": "community.lexicon.location.geo",
"type": "ref",
"description": "Structured location using community lexicon"
},
"mentions": {
"type": "array",
"items": {
"type": "string",
"format": "did"
},
"description": "DIDs of users mentioned in the beacon"
},
"revealAt": {
"type": "string",
"format": "datetime",
"description": "ISO timestamp when beacon becomes visible (delayed reveal)"
},
"venueUri": {
"type": "string",
"description": "OSM URI identifier (osm://node/123 or osm://way/456)",
"maxGraphemes": 512
},
"chainName": {
"type": "string",
"description": "Custom chain name (root beacon only)",
"maxGraphemes": 64
},
"createdAt": {
"type": "string",
"format": "datetime",
"description": "Timestamp when the beacon was created"
},
"venueName": {
"type": "string",
"description": "Display name of the venue",
"maxGraphemes": 128
},
"chainEmoji": {
"type": "string",
"description": "Chain emoji (root beacon only)",
"maxGraphemes": 8
},
"threadRoot": {
"ref": "com.atproto.repo.strongRef",
"type": "ref",
"description": "Reference to root post for threading"
},
"visibility": {
"type": "string",
"description": "Visibility setting for the beacon",
"knownValues": [
"public",
"followers",
"mutuals",
"hidden"
],
"maxGraphemes": 32
},
"parentBeacon": {
"ref": "com.atproto.repo.strongRef",
"type": "ref",
"description": "Reference to parent beacon for chaining"
},
"venueAddress": {
"type": "string",
"description": "Human-readable address",
"maxGraphemes": 256
},
"venueCategory": {
"type": "string",
"description": "Category classification (bar, cafe, restaurant, etc.)",
"maxGraphemes": 64
},
"addressDetails": {
"ref": "community.lexicon.location.address",
"type": "ref",
"description": "Structured address using community lexicon"
}
}
},
"description": "A location-based check-in record"
}