net.wireservice.entitlement

wireservice.net

{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "A reader's access grant, stored in the publication's business space. Authoritative: the processor's state only proposes changes to it. Grants the plan's spaces plus any listed here; at least one of plan or spaces should be set.",
      "key": "tid",
      "record": {
        "properties": {
          "createdAt": {
            "format": "datetime",
            "type": "string"
          },
          "expiresAt": {
            "description": "When access ends. Paid entitlements set this to the end of the paid period plus a grace window and extend it on each payment. Omit for open-ended grants.",
            "format": "datetime",
            "type": "string"
          },
          "note": {
            "description": "Why a manual grant exists (e.g., 'Press pass', 'University site license').",
            "maxGraphemes": 1000,
            "maxLength": 10000,
            "type": "string"
          },
          "plan": {
            "description": "AT URI of the net.wireservice.plan this entitlement is for.",
            "format": "at-uri",
            "type": "string"
          },
          "reader": {
            "description": "URI of the net.wireservice.reader record.",
            "format": "uri",
            "type": "string"
          },
          "source": {
            "description": "Who manages this entitlement. Processor events never modify 'manual' entitlements.",
            "knownValues": [
              "stripe",
              "manual"
            ],
            "maxLength": 64,
            "type": "string"
          },
          "spaces": {
            "description": "Additional spaces granted, beyond the plan's.",
            "items": {
              "format": "space-ref",
              "type": "string"
            },
            "type": "array"
          },
          "stripeSubscriptionId": {
            "maxLength": 256,
            "type": "string"
          }
        },
        "required": [
          "reader",
          "source",
          "createdAt"
        ],
        "type": "object"
      },
      "type": "record"
    }
  },
  "id": "net.wireservice.entitlement",
  "lexicon": 1
}

Validate Record

Validate a record against net.wireservice.entitlement

Validation Options
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:lktj64hp7lc3fzuf6iyy7lwj
CID
bafyreieoqqo2rby434efi452knei7ihsygum2ejj76rkj2q2vsgz4u2pn4
Indexed At
2026-10-12 21:12 UTC
AT-URI
at://did:plc:lktj64hp7lc3fzuf6iyy7lwj/com.atproto.lexicon.schema/net.wireservice.entitlement

Similar Lexicons

Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.

  • net.wireservice.plan recordnot from the namespace authority

    A paid offering: subscription, membership, or donation. Public, so renderers and other apps can display offers. The CMS mirrors each plan to the payment processor.

  • net.wireservice.space.subscriber spacenot from the namespace authority

    Gated articles for a publication's paying readers. One space per access tier; the space key names the tier (e.g., 'members'). Each record is a full site.standard.document pointed to by a public net.wireservice.gatedCont…

  • net.wireservice.space.business spacenot from the namespace authority

    A publication's reader accounts, entitlements, and payments. Contains reader PII. Anchored on the publication's DID with space key 'business'. simplespace config: readPolicy member-list with no members, appAccess #allow…

Lexicon Garden

@