Documentation Index
Fetch the complete documentation index at: https://mintlify.com/bluesky-social/atproto/llms.txt
Use this file to discover all available pages before exploring further.
Overview
The@atproto/lexicon package provides TypeScript implementation of the Lexicon schema language for AT Protocol. Lexicon is used to define and validate data schemas for records, XRPC endpoints, and other protocol elements.
Installation
Core Concepts
Lexicon schemas define:- Record types: Structure of user data (posts, profiles, likes, etc.)
- XRPC procedures: Request/response schemas for API methods
- XRPC queries: Parameter and response schemas for API queries
- Data types: Primitives, objects, arrays, unions, and references
Main Classes
Lexicons
The main class for managing and validating against Lexicon schemas.Initial schema documents to add
# notation.Record Validation
XRPC Validation
Schema Types
Primitive Types
Lexicon supports several primitive types:datetime- ISO 8601 datetimeuri- URIat-uri- AT URI (at://…)did- DID identifierhandle- Handle (domain name)at-identifier- DID or handlensid- Namespaced identifiercid- Content identifierlanguage- BCP-47 language tagtid- Timestamp identifierrecord-key- Record key
Complex Types
Object
Array
Reference
Union
IPLD Types
Bytes
CID Link
Blob
Blob Utilities
BlobRef
Represents a blob reference in records.Type Definitions
LexiconDoc
LexRecord
Type definition for a record schema.LexXrpcProcedure
LexXrpcQuery
Serialization Utilities
lexToIpld
Converts a value to IPLD format (for CBOR encoding).ipldToLex
Converts an IPLD value back to Lexicon format.Complete Example
Related Packages
- @atproto/syntax - Validation for identifiers used in schemas
- @atproto/repo - Repository operations that validate against Lexicon schemas
- @atproto/api - API client that uses Lexicon for type safety
- @atproto/common-web - Common utilities