The lexicons

Everything dids.lol does is described by AT Protocol lexicons, published as records on the network under the lol.dids namespace. They are the API. The interface application at app.dids.lol is an ordinary client of them, with no privileged path of its own.

The records

lol.dids.sites.site — a website. Its key is the hostname. It names what the site serves, plus redirects, a not-found resource, and the well-known toggles. See The site record.

lol.dids.sites.tile — a reusable, parameterized bundle. Its key is a TID. It carries the resource manifest, a name and description, an optional icon, and the parameter declaration. See Tiles.

lol.dids.sites.defs — the shared shapes both records use: the manifest, a resource, a redirect rule, the well-known toggles.

lol.dids.sites.space — the space type declaration, which a personal data server resolves when a client asks for access to a space of this kind.

The methods

lol.dids.sites.* are the public queries: getSite, resolveDomain, listSites, getTile, listTiles, getTileIcon. No authentication, ordinary cross-origin requests, safe to call from a browser.

lol.dids.manage.* are the operations that act on your behalf: register, verify, getDomain, listDomains, releaseDomain, validate, getIndexStatus, reindex, and the space methods. They require inter-service authentication — a service token minted by your own server, naming dids.lol as the audience and the method as its subject.

lol.dids.admin.* are the operator's, and are not available to anyone else.

Errors

Errors are named, and the names are part of the contract. DomainNotVerified, TileNotReady, MissingParameter, ParameterConstraintViolation, BlobUnavailable, AppNotAllowed — each says exactly one thing, and each is documented on the method that returns it. Read the name, not the prose: the prose may improve, the names will not change under you.

The permission set

lol.dids.sites.manage is a published permission set: write access to the two collections, blob upload, and the named control-plane methods. Nothing else. It is what the app requests at sign-in, and what your consent screen describes. If you are writing your own tool, request it the same way.

Resolving them yourself

Each lexicon is published as a com.atproto.lexicon.schema record keyed by its NSID, and the authority for each namespace segment is bound by a DNS TXT record. That means you can resolve lol.dids.sites.site to its schema document from the network, without trusting this page, using any lexicon resolver. Lexicon Garden is one.

Resolving the schema and validating against it is the honest way to build on this. The documents are the contract; this documentation is a reading of them.