town.chalky
4
Narrow ›
-
town.chalky.config
record
A user's chalky.town configuration, stored once at rkey `self` in whichever store its own `dataMode` names — the author's PDS repo in public mode, chalky.town's private per-DID store in private mode. So the record declaring a private preference is itself private, and nothing about the author's settings is world-readable when they asked for privacy. Read right after sign-in (both stores are checked, since the mode isn't known until the record is found) to route task data and to restore theme/pref
-
town.chalky.occurrence
record
not from the namespace authority
A single occurrence of a recurring town.chalky.task that has diverged from its series' default. A recurring task is a template that projects occurrences onto later matching days; an occurrence stays a pure projection until the user acts on one day (marks it done, or removes it), at which point this record materializes to carry that per-day state. It exists only while it differs from the default — reverting an occurrence to not-done and not-skipped deletes the record. Replaces the older completed
-
town.chalky.task
record
A single task in a chalky.town weekly planner. Stored in the author's repo. Field names mirror app.attodo.task where the concept is shared (title/description/completed/completedAt and the rec* recurrence fields); chalky-specific fields (day, order, color, subtasks, updatedAt) extend it. A recurring task is a template that projects occurrences onto later matching days; per-occurrence state (done/skipped) lives in separate town.chalky.occurrence records that reference this one.
-
town.chalky.tasks
space
not from the namespace authority
A personal, private task board: the chalky.town task, occurrence and config records, stored in a space only the owner can read or write.
town.delve
169
Narrow ›
-
town.delve.actor.contentVisibilityDeclaration
record
not from the namespace authority
A declaration of an account's preferences for appearing in content discovery surfaces.
-
town.delve.actor.defs
defs
not from the namespace authority
If set, an active progress guide. Once completed, can be set to undefined. Should have unspecced fields tracking progress.
-
town.delve.actor.getPreferences
query
not from the namespace authority
Get private preferences attached to the current account. Expected use is synchronization between multiple devices, and import/export during account migration. Requires auth.
-
town.delve.actor.getProfile
query
not from the namespace authority
Get detailed profile view of an actor. Does not require auth, but contains relevant metadata with auth.
-
town.delve.actor.getProfiles
query
not from the namespace authority
Get detailed profile views of multiple actors.
-
town.delve.actor.getSuggestions
query
not from the namespace authority
Get a list of suggested actors. Expected use is discovery of accounts to follow during new account onboarding.
-
town.delve.actor.profile
record
not from the namespace authority
A declaration of a Bluesky account profile.
-
town.delve.actor.putPreferences
procedure
not from the namespace authority
Set the private preferences attached to the account.
-
town.delve.actor.searchActors
query
not from the namespace authority
Find actors (profiles) matching search criteria. Does not require auth.
-
town.delve.actor.searchActorsTypeahead
query
not from the namespace authority
Find actor suggestions for a prefix search term. Expected use is for auto-completion during text field entry. Does not require auth.
-
town.delve.actor.status
record
not from the namespace authority
A declaration of a Bluesky account status.
-
town.delve.ageassurance.begin
procedure
not from the namespace authority
Initiate Age Assurance for an account.
-
town.delve.ageassurance.defs
defs
not from the namespace authority
The access level granted based on Age Assurance data we've processed.
-
town.delve.ageassurance.getConfig
query
not from the namespace authority
Returns Age Assurance configuration for use on the client.
-
town.delve.ageassurance.getState
query
not from the namespace authority
Returns server-computed Age Assurance state, if available, and any additional metadata needed to compute Age Assurance state client-side.
-
town.delve.authCreatePosts
permission-set
not from the namespace authority
-
town.delve.authDeleteContent
permission-set
not from the namespace authority
-
town.delve.authFullApp
permission-set
not from the namespace authority
-
town.delve.authManageFeedDeclarations
permission-set
not from the namespace authority
-
town.delve.authManageLabelerService
permission-set
not from the namespace authority
-
town.delve.authManageModeration
permission-set
not from the namespace authority
-
town.delve.authManageNotifications
permission-set
not from the namespace authority
-
town.delve.authManageProfile
permission-set
not from the namespace authority
-
town.delve.authViewAll
permission-set
not from the namespace authority
-
town.delve.bookmark.createBookmark
procedure
not from the namespace authority
Creates a private bookmark for the specified record. Currently, only `app.bsky.feed.post` records are supported. Requires authentication.
-
town.delve.bookmark.defs
defs
not from the namespace authority
Object used to store bookmark data in stash.
-
town.delve.bookmark.deleteBookmark
procedure
not from the namespace authority
Deletes a private bookmark for the specified record. Currently, only `app.bsky.feed.post` records are supported. Requires authentication.
-
town.delve.bookmark.getBookmarks
query
not from the namespace authority
Gets views of records bookmarked by the authenticated user. Requires authentication.
-
town.delve.contact.defs
defs
not from the namespace authority
Associates a profile with the positional index of the contact import input in the call to `app.bsky.contact.importContacts`, so clients can know which phone caused a particular match.
-
town.delve.contact.dismissMatch
procedure
not from the namespace authority
Removes a match that was found via contact import. It shouldn't appear again if the same contact is re-imported. Requires authentication.
-
town.delve.contact.getMatches
query
not from the namespace authority
Returns the matched contacts (contacts that were mutually imported). Excludes dismissed matches. Requires authentication.
-
town.delve.contact.getSyncStatus
query
not from the namespace authority
Gets the user's current contact import status. Requires authentication.
-
town.delve.contact.importContacts
procedure
not from the namespace authority
Import contacts for securely matching with other users. This follows the protocol explained in https://docs.bsky.app/blog/contact-import-rfc. Requires authentication.
-
town.delve.contact.removeData
procedure
not from the namespace authority
Removes all stored hashes used for contact matching, existing matches, and sync status. Requires authentication.
-
town.delve.contact.sendNotification
procedure
not from the namespace authority
System endpoint to send notifications related to contact imports. Requires role authentication.
-
town.delve.contact.startPhoneVerification
procedure
not from the namespace authority
Starts a phone verification flow. The phone passed will receive a code via SMS that should be passed to `app.bsky.contact.verifyPhone`. Requires authentication.
-
town.delve.contact.verifyPhone
procedure
not from the namespace authority
Verifies control over a phone number with a code received via SMS and starts a contact import session. Requires authentication.
-
town.delve.draft.createDraft
procedure
not from the namespace authority
Inserts a draft using private storage (stash). An upper limit of drafts might be enforced. Requires authentication.
-
town.delve.draft.defs
defs
not from the namespace authority
A draft containing an array of draft posts.
-
town.delve.draft.deleteDraft
procedure
not from the namespace authority
Deletes a draft by ID. Requires authentication.
-
town.delve.draft.getDrafts
query
not from the namespace authority
Gets views of user drafts. Requires authentication.
-
town.delve.draft.updateDraft
procedure
not from the namespace authority
Updates a draft using private storage (stash). If the draft ID points to a non-existing ID, the update will be silently ignored. This is done because updates don't enforce draft limit, so it accepts all writes, but will ignore invalid ones. Requires authentication.
-
town.delve.embed.defs
defs
not from the namespace authority
width:height represents an aspect ratio. It may be approximate, and may not correspond to absolute dimensions in any given unit.
-
town.delve.embed.external
object
not from the namespace authority
A representation of some externally linked content (eg, a URL and 'card'), embedded in a Bluesky record (eg, a post).
-
town.delve.embed.gallery
object
not from the namespace authority
An assortment of media embedded in a Bluesky record (eg, a post).
-
town.delve.embed.getEmbedExternalView
query
not from the namespace authority
Resolve one or more AT-URIs into the data needed to render an enhanced external embed. Returns `associatedRefs` (strongRefs to embed into a post's external.associatedRefs), the raw `associatedRecords`, and a hydrated `view`. The response is empty (`{}`) when no records were resolvable, or when validation determined the resolved records don't actually back the requested URL; clients should fall back to their own link-card rendering in that case and skip writing strongRefs to the post.
-
town.delve.embed.images
object
not from the namespace authority
A set of images embedded in a Bluesky record (eg, a post).
-
town.delve.embed.record
object
not from the namespace authority
A representation of a record embedded in a Bluesky record (eg, a post). For example, a quote-post, or sharing a feed generator record.
-
town.delve.embed.recordWithMedia
object
not from the namespace authority
A representation of a record embedded in a Bluesky record (eg, a post), alongside other compatible embeds. For example, a quote post and image, or a quote post and external URL card.
-
town.delve.embed.video
object
not from the namespace authority
A video embedded in a Bluesky record (eg, a post).
119 more under town.delve ›
town.laugh
16
Narrow ›
-
town.laugh.authApp
permission-set
-
town.laugh.calendar.defs
defs
not from the namespace authority
-
town.laugh.calendar.series
record
not from the namespace authority
A named, recurring show series at a venue (e.g. "Roast Battle" at The Comedy Store). A label that community.lexicon.calendar.event records point at via town.laugh.calendar.defs#eventExtras.series; NOT a recurrence rule (authored recurring events use eventExtras.recurrence and may additionally point at a series). Derived facts (cadence, upcoming count, next date, active/dormant) are deliberately NOT stored in the record; they are computed from the events that reference it. Series records are neve
-
town.laugh.db.comedian
record
not from the namespace authority
A comedian profile
-
town.laugh.db.defs
defs
not from the namespace authority
-
town.laugh.db.room
record
not from the namespace authority
A room or stage within a venue
-
town.laugh.db.venue
record
not from the namespace authority
A comedy club or venue
-
town.laugh.db.work
record
not from the namespace authority
A comedian's creative work (special, album, film, tour, book, podcast)
-
town.laugh.user.claim
record
not from the namespace authority
The claimant asserts "I am this laugh.town comedian/venue". Verified two-way: valid only when the subject record's claimedBy equals the repo owner's DID. Record key = the subject record's rkey.
-
town.laugh.user.credit
record
not from the namespace authority
A performer credit: the author asserts a comedian is on an event's lineup
-
town.laugh.user.list
record
not from the namespace authority
A user-curated list of events, venues, and/or comedians. The favorites list is the one with purpose "favorites".
-
town.laugh.user.listitem
record
not from the namespace authority
Membership of a subject in a town.laugh.user.list
-
town.laugh.user.suggest.comedian
record
not from the namespace authority
User suggestion for a comedian to add to the database
-
town.laugh.user.suggest.edit.comedian
record
not from the namespace authority
User-suggested edits to an existing comedian record
-
town.laugh.user.suggest.edit.venue
record
not from the namespace authority
User-suggested edits to an existing venue record
-
town.laugh.user.suggest.venue
record
not from the namespace authority
User suggestion for a venue to add to the database
town.muni
21
Narrow ›
-
town.muni.arbiter.createAppPasswordArbiter
procedure
Import an existing account as a stewarded arbiter.
The caller provides an app password proving control of the account.
The server stores the credentials and writes the service + recovery records
from the account's session. No policy is written: the arbiter stays offline
(fail-closed) until the recovery admin installs the first policy via
`town.muni.arbiter.resetPolicy`.
-
town.muni.arbiter.createArbiter
procedure
Provision a brand-new stewarded PDS account.
The caller authenticates via serviceAuth (aud = arbiter-server DID,
lxm = town.muni.arbiter.createArbiter). The server creates a new account
on the configured default PDS using an invite code + random password,
stores the credentials, and writes the service + recovery records from the
new account's session. No policy is written: the arbiter stays offline
(fail-closed) until the recovery admin installs the first policy via
`town.muni.arbiter.resetPoli
-
town.muni.arbiter.createDid
procedure
Create a new DID that will be managed by this service.
A new arbiter will be created in order to manage access
to the DID. The arbiter will be configured with a default
policy that sets the creator as the owner of the arbiter
and allows them to change the DID document.
The policy can also be changed later.
The created DID will be returned
-
town.muni.arbiter.createSpace
procedure
Create a new space on an arbiter.
-
town.muni.arbiter.defs
defs
Configurable fields for a DID PLC document.
-
town.muni.arbiter.deleteArbiter
procedure
Delete an arbiter from the server.
-
town.muni.arbiter.deleteSpace
procedure
Delete a space from the arbiter.
-
town.muni.arbiter.getArbiterConfig
query
Get the current config object for an arbiter.
-
town.muni.arbiter.getSpaceConfig
query
Get the configuration of a space on the arbiter.
-
town.muni.arbiter.getSpaceMembers
query
Get the members that have been assigned to the space.
This is not a flat membership list, but a list of the direct members
of the space, including DIDs, local spaces, and remote spaces that have
been added as members, without doing any resolution of remote spaces.
-
town.muni.arbiter.listSpaces
query
Get the members that have been assigned to the space.
This is not a flat membership list, but a list of the direct members
of the space, including DIDs, local spaces, and remote spaces that have
been added as members, without doing any resolution of remote spaces.
-
town.muni.arbiter.proxy
procedure
Proxied XRPC request through an arbiter's policy.
The caller authenticates via serviceAuth (aud = arbiter-server DID,
lxm = town.muni.arbiter.proxy). The body specifies the arbiter DID to act
on behalf of, the target DID#service to reach, and the inner XRPC
request (method, nsid, parameters, body) to evaluate. The server drives
the arbiter's Rego policy and proxies the inner request to the target
authenticated as the stewarded account.
The `nsid` here is the *inner* request NSID, distinct from
-
town.muni.arbiter.recovery
record
Recovery-admin designation record. Documents who is intended to
recover the arbiter. The arbiter does not yet act on this record;
recovery is via direct PDS access for now.
-
town.muni.arbiter.removeSpaceMember
procedure
Remove a member's access from a space.
-
town.muni.arbiter.resetPolicy
procedure
Reset a stewarded arbiter's root policy.
The caller authenticates via serviceAuth (aud = arbiter-server DID,
lxm = town.muni.arbiter.resetPolicy). Only the account designated in the
arbiter's `town.muni.arbiter.recovery/self` record (the recovery admin)
may reset the policy. The replacement Rego source is written to
`town.muni.arbiter.policy.root/self` and the arbiter is re-onboarded.
If no recovery admin is set, this endpoint is unavailable (forbidden).
-
town.muni.arbiter.resolveSpaceMembers
query
Get the flattened, resolved list of members for a space.
This member list will be the same as what the server is expected to return
as the space host, but it will additionally contain a member config
object for each member.
The details of the member config object are dependent on the server implementation
and possibly the arbiter config type.
-
town.muni.arbiter.service
record
Service record on a stewarded account's repo. Points at the arbiter
server's DID (the did:web:... that hosts the #arbiter service).
Presence/absence and the `did` field drive the arbiter lifecycle:
- Absent → offboard (keep credentials, re-onboard if it returns).
- `did` != this server → offboard + purge credentials.
-
town.muni.arbiter.setArbiterConfig
procedure
Set the config object for an arbiter.
-
town.muni.arbiter.setSpaceConfig
procedure
Configure a space on the arbiter.
-
town.muni.arbiter.setSpaceMemberAccess
procedure
Set the access of a member in a space.
This is also how you add a new member to the space.
-
town.muni.arbiter.updateDidDoc
procedure
Update the DID doc for a DID that is hosted by this service.