Atmosphere Lexicons Community Review#
This repository is a draft review packet for Atmosphere Money, Supper, and Atmosphere Tickets lexicons. These schemas are not published yet. We are sharing them first to get technical feedback from the AT Protocol community before they become harder to change.
Included Namespaces#
money.atmosphere.*— Atmosphere Money payment profiles, catalog records, and ATM-owned payment service methods.support.supper.*— Supper app profile, listing, entitlement, and AppView helper schemas.tickets.atmosphere.*— Atmosphere Tickets records and app-facing service methods for ticket tiers, capacity labels, holds, issuance lookup, verification, and check-in.
The full list is in LEXICON_INDEX.md. External dependency notes are in EXTERNAL_DEPENDENCIES.md.
Not Included#
network.attested.*is not included here because it is not our namespace. Atmosphere Money consumes those lexicons and keeps local pinned copies, but we should not extend or publish them ourselves.- Product, payment, buyer, fulfillment, ticket, and processor private state is intentionally not modeled as public PDS data where it would expose personal or operational information.
Design Goals#
- Keep public protocol records minimal, durable, and safe to index.
- Keep private checkout, processor, fulfillment, inventory, QR secrets, and PII in ATM/Supper/Tickets private service state.
- Use AT Protocol records for portable identity, catalog references, app participation markers, and public/social display metadata.
- Use XRPC/service methods where apps need a stable contract but data should not be public PDS truth.
- Follow the AT Protocol lexicon style guide: lower camel case fields, singular records, verb-noun XRPC methods, opaque string cursors, strongRefs for versioned record references, DIDs for account references, and flexible optional fields where practical.
Review Request#
We would especially love feedback on:
- Whether the namespace boundaries are clear:
money.atmosphere.*for payments/catalog.support.supper.*for Supper app data.tickets.atmosphere.*for ticketing infrastructure.
- Whether any fields are too public and should move to private service state.
- Whether any fields are too app-specific and should not live in shared ATM or Tickets schemas.
- Whether the ticketing contracts strike the right balance between public event metadata and private scarce-inventory enforcement.
- Whether ATM catalog records are generic enough for future apps beyond Supper.
- Whether any record or method names should change before publishing.
Current Open Questions#
- Should
tickets.atmosphere.*remain a separate namespace, or should ticketing eventually move undermoney.atmosphere.*as an ATM module? The current draft keeps ticketing separate because it has its own public records and operational contracts, while payments still settle through ATM. - Should Supper keep
support.supper.payment.queryPayments, or should it rely exclusively on broker/AppView queries once ATM AppView coverage is mature? - Are
money.atmosphere.discountandmoney.atmosphere.discountCodethe right split for public discounts, given Stripe's coupon/promotion-code model and the future possibility of permissioned/private discounts?
References Used#
- AT Protocol Lexicon Style Guide: https://atproto.com/guides/lexinomicon
- AT Protocol NSID specification: https://atproto.com/specs/nsid
- AT Protocol Publishing Lexicons guide: https://atproto.com/guides/publishing-lexicons