At this level
social.grain.unspecced · 47- social.grain.unspecced.addSpaceMember procedure not from the namespace authority Share an existing private gallery with another account. Adds them to the space's member list on the author's PDS, which is what the authority consults when it mints a credential.
- social.grain.unspecced.createGroup procedure not from the namespace authority Start a group on Grain's group host. The host creates the group with the viewer as its founder and hands Grain its own session on it (fyi.opensocial.provisionGroup); Grain then gives the group its pool and its Grain profile. The viewer never leaves Grain.
- social.grain.unspecced.createPoolComment procedure not from the namespace authority Comment on a gallery in a group's pool. The comment is the viewer's own record, written into the pool beside the gallery it answers, so only that group's members can read it.
- social.grain.unspecced.createPoolGallery procedure not from the namespace authority Add a gallery to a group's pool: one permissioned space (social.grain.group) anchored on the group, holding every member's galleries. The gallery, its photos and its items are the author's own records in their own repo, written inside that space — so only the group's members can read them, and they leave with the author.
- social.grain.unspecced.createPrivateGallery procedure not from the namespace authority Create a gallery that lives in a permissioned space (proposal 0016) rather than in the public repo. The gallery, its photos and its items are written to the author's space repo, and only the accounts named in members can read them.
- social.grain.unspecced.deleteAccount procedure not from the namespace authority Delete the authenticated user's Grain account. Removes all of their Grain records from their PDS and clears supporting server-side state (mutes, preferences, push tokens, OAuth session). Reports and labels are preserved.
- social.grain.unspecced.deleteGallery procedure not from the namespace authority Delete a gallery and all associated records (items, photos, EXIF, favorites, comments).
- social.grain.unspecced.deletePoolComment procedure not from the namespace authority Delete one of your own comments from a group's pool.
- social.grain.unspecced.deletePoolGallery procedure not from the namespace authority Withdraw the viewer's own gallery from a group's pool. The gallery, its photos and the items joining them are the viewer's records in the viewer's repo, held inside the group's space, so this removes them from that space and nothing else. Only the author's own repo is touched: whoever acts as the group evicts by a different route.
- social.grain.unspecced.getActorFavorites query not from the namespace authority Get galleries favorited by the authenticated actor. Only the actor themselves can view their favorites.
- social.grain.unspecced.getActorProfile query not from the namespace authority Get an actor's profile with gallery stats and follow relationships.
- social.grain.unspecced.getBlocks query not from the namespace authority Get the viewer's blocked users.
- social.grain.unspecced.getCameras query not from the namespace authority Get top cameras by photo count.
- social.grain.unspecced.getCommentThread query not from the namespace authority Get comments for a subject (gallery or story), sorted oldest-first with author profiles.
- social.grain.unspecced.getFollowers query not from the namespace authority Get followers for a given user.
- social.grain.unspecced.getFollowing query not from the namespace authority Get users that a given user follows.
- social.grain.unspecced.getGallery query not from the namespace authority Get a single gallery view by AT URI.
- social.grain.unspecced.getGalleryFavorites query not from the namespace authority Get the accounts that have favorited a gallery, most recent first.
- social.grain.unspecced.getGroup query not from the namespace authority A group: a group DID that has declared itself and shows up in Grain as an author whose pool is other people's galleries.
- social.grain.unspecced.getGroupHost query not from the namespace authority The group host this Grain creates groups on, and the domain a new group's handle ends in. Absent when this Grain creates none.
- social.grain.unspecced.getGroupSubmissions query not from the namespace authority Submissions to a group that no item has answered yet — the review queue.
- social.grain.unspecced.getKnownFollowers query not from the namespace authority Get followers of a given actor that the viewer also follows.
- social.grain.unspecced.getLocations query not from the namespace authority Get top locations by gallery count.
- social.grain.unspecced.getMutes query not from the namespace authority Get the viewer's muted users.
- social.grain.unspecced.getNotifications query not from the namespace authority Get notifications for the authenticated user.
- social.grain.unspecced.getPoolGallery query not from the namespace authority One gallery from a group's pool, read from the repo that holds it through a credential the group's host issues.
- social.grain.unspecced.getPrivateGallery query not from the namespace authority Assemble a gallery that lives in a permissioned space. Read from the repos that hold it at request time — space records never reach a firehose, so none of this is in the index.
- social.grain.unspecced.getSitemap query not from the namespace authority One page of the public profiles or galleries a search engine may index, for the sitemap. Leaves out anything labeled, taken down, or in a space.
- social.grain.unspecced.getSpaceMembers query not from the namespace authority Who a private gallery is shared with. Read from the space's authority, which is the only place the member list exists, so only the gallery's author can ask.
- social.grain.unspecced.getSpaceSupport query not from the namespace authority Whether the viewer's PDS serves permissioned spaces (proposal 0016). Answered from a cached probe of community.lexicon.service.describe.
- social.grain.unspecced.getStories query not from the namespace authority Get a user's active stories (posted within the last 24 hours).
- social.grain.unspecced.getStory query not from the namespace authority
- social.grain.unspecced.getStoryArchive query not from the namespace authority Get all stories for an actor, including expired ones. For archive browsing.
- social.grain.unspecced.getStoryAuthors query not from the namespace authority Get authors who have active stories (posted within the last 24 hours).
- social.grain.unspecced.getSuggestedFollows query not from the namespace authority Get suggested profiles to follow based on bsky follow graph.
- social.grain.unspecced.joinGroup procedure not from the namespace authority Ask a group's group host to admit the viewer: Grain mints service auth for the host from the viewer's PDS and calls fyi.opensocial.requestJoin. Admitted immediately when the group is open; queued for its moderators when it takes requests.
- social.grain.unspecced.leaveGroup procedure not from the namespace authority Leave a group: fyi.opensocial.leaveGroup on its host, with service auth from the viewer's PDS.
- social.grain.unspecced.listGroups query not from the namespace authority Groups worth browsing, most recently active first. With `gallery`, each group carries the viewer's standing for that gallery.
- social.grain.unspecced.listPoolFeed query not from the namespace authority Every gallery in every pool the viewer is a member of, newest first. Assembled per viewer at request time: which groups they belong to is a public fact in the index, but what is in each pool is a permissioned space, read with a credential that group's host issues. Nothing here is shared between viewers or cached.
- social.grain.unspecced.listPoolGalleries query not from the namespace authority Every gallery in a group's pool, newest first. Assembled at request time from the repos of the members who wrote them — a pool space never reaches a firehose, so none of it is in the index — and readable only by a member the group's host issues a credential to.
- social.grain.unspecced.listPrivateGalleries query not from the namespace authority The viewer's own private galleries, read from the spaces their PDS holds. Authors only: a space tells its members nothing about itself, so an account added to someone else's gallery cannot enumerate it and needs the link.
- social.grain.unspecced.listSharedGalleries query not from the namespace authority Private galleries other accounts have shared with the viewer. Answered from grain's own record of who a gallery was shared with, because a space leaves no trace on a member's PDS — then confirmed against the authority, so a gallery the viewer was removed from does not appear.
- social.grain.unspecced.markStoriesViewed procedure not from the namespace authority Record that the requesting account has watched these stories. Viewed state is private to the viewer and held by the appview, not written to the repo, so it follows the account across web, iOS and Android without being visible to anyone else.
- social.grain.unspecced.putPoolFavorite procedure not from the namespace authority Favourite, or unfavourite, a gallery in a group's pool. The record is the viewer's own, written into the pool rather than their public repo: in the public repo it would name a private gallery to the whole network.
- social.grain.unspecced.searchActorsTypeahead query not from the namespace authority Typeahead search for actors, merging bsky and grain profiles.
- social.grain.unspecced.searchGalleries query not from the namespace authority Full-text search for galleries, returning full gallery views.
- social.grain.unspecced.searchProfiles query not from the namespace authority Full-text search for user profiles.