net.wireservice.plan

wireservice.net

{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "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.",
      "key": "tid",
      "record": {
        "properties": {
          "active": {
            "description": "Whether new readers can sign up. Existing entitlements are unaffected.",
            "type": "boolean"
          },
          "amount": {
            "description": "Price in the currency's minor unit (e.g., cents). Omit for donor-chosen amounts.",
            "minimum": 0,
            "type": "integer"
          },
          "createdAt": {
            "format": "datetime",
            "type": "string"
          },
          "currency": {
            "description": "ISO 4217 currency code, lowercase (e.g., 'usd').",
            "maxLength": 3,
            "type": "string"
          },
          "description": {
            "maxGraphemes": 3000,
            "maxLength": 30000,
            "type": "string"
          },
          "interval": {
            "knownValues": [
              "month",
              "year",
              "once"
            ],
            "maxLength": 64,
            "type": "string"
          },
          "kind": {
            "knownValues": [
              "subscription",
              "membership",
              "donation"
            ],
            "maxLength": 64,
            "type": "string"
          },
          "name": {
            "maxGraphemes": 200,
            "maxLength": 2000,
            "type": "string"
          },
          "spaces": {
            "description": "Spaces an active entitlement to this plan grants access to. Empty for plans that grant no access.",
            "items": {
              "format": "space-ref",
              "type": "string"
            },
            "type": "array"
          },
          "stripePriceId": {
            "description": "Stripe price this plan is sold through. Stripe prices are immutable, so changing amount or interval means a new price.",
            "maxLength": 256,
            "type": "string"
          }
        },
        "required": [
          "name",
          "kind",
          "currency",
          "interval",
          "createdAt"
        ],
        "type": "object"
      },
      "type": "record"
    }
  },
  "id": "net.wireservice.plan",
  "lexicon": 1
}

Validate Record

Validate a record against net.wireservice.plan

Validation Options
Treat any remaining unresolved references as valid

Metadata

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

Similar Lexicons

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

  • A funding plan or tier with a suggested amount. Each plan is an individual record keyed by its slug ID. Plans reference channels by AT URI, allowing cross-account references (e.g. multiple maintainers pointing plans at …

  • net.wireservice.payment recordnot from the namespace authority

    A single payment or donation, stored in the publication's business space.

  • net.wireservice.entitlement recordnot from the namespace authority

    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…

  • A subscription tier offered by a creator. Lives in the creator's repository, so the creator is the repo owner and is not repeated as a field. Tiers are tied to the creator's DID rather than to any publication or app.

  • A public description of a creator membership tier; it is not canonical billing state.

Lexicon Garden

@