{"id":"43f3868864b07f23ab2ec89b95b151f1cad9ae66371bc1974d1a55c4e9ff315a","pubkey":"86184109eae937d8d6f980b4a0b46da4ef0d983eade403ee1b4c0b6bde238b47","created_at":1782994253,"kind":30817,"tags":[["d","tarot-card-readings"],["title","Tarot Card Readings"],["alt","Nostr Implementation Possibility: Tarot Card Readings"],["k","2256","Tarot Card Reading"],["client","NostrHub"]],"content":"NIP-TR\n======\n\nTarot Readings\n--------------\n\n`draft` `optional`\n\nThis NIP defines `kind:2256` events for recording tarot readings on Nostr.\n\n## Model\n\nThe tarot deck is a closed, universally known set of exactly 78 cards. A reading is an ordered draw from that deck, without replacement, where each drawn card is either upright or reversed.\n\nThis maps directly onto Nostr primitives:\n\n- The card set is a **fixed vocabulary** of 78 identifiers. Because the vocabulary is closed, card identifiers are placed in the indexed value of a single-letter tag, making every reading queryable by card at the relay level with no vocabulary fragmentation.\n- The draw is **ordered**, and tags in a Nostr event are an ordered array in the signed payload. Position is therefore positional: the n-th `c` tag is the n-th card drawn. No position labels are carried in the data.\n- The draw is **without replacement**: a card identifier appears at most once per event.\n- The **interpretation** is prose and lives in `content`.\n\nKind `2256` is a regular event: a reading is an immutable historical record — the cards fell how they fell. The kind number is the deck itself: **22** major arcana, **56** minor.\n\n## Tarot Reading Event (Kind 2256)\n\n```json\n{\n  \"kind\": 2256,\n  \"content\": \"<interpretation>\",\n  \"tags\": [\n    [\"c\", \"<card-identifier>\", \"<orientation>\"],\n    [\"c\", \"<card-identifier>\", \"<orientation>\"],\n    [\"c\", \"<card-identifier>\", \"<orientation>\"],\n    [\"s\", \"<spread-name>\"],\n    [\"alt\", \"<human-readable summary>\"]\n  ]\n}\n```\n\n### Content\n\nFreeform prose: the interpretation, the question asked, whatever the reader wants to say. MAY contain URLs, hashtags, and `nostr:` URIs per [NIP-27](https://github.com/nostr-protocol/nips/blob/master/27.md). MAY be empty — the draw alone is a valid reading.\n\nClients MUST NOT need to parse `content` to reconstruct the draw.\n\n### Tags\n\n- `c` (required, 1–78) - one tag per card drawn, in draw order. Card identifiers MUST be unique within the event\n- `s` (optional) - name of the spread, giving conventional meaning to the draw order\n- `p` (optional) - pubkey of the querent, when the author read for someone else\n- `imeta` (optional, multiple) - media per [NIP-92](https://github.com/nostr-protocol/nips/blob/master/92.md): a rendering of the reading, or custom art for individual cards\n- `t` (optional, multiple) - topics for discovery, e.g. `daily`, `weekly`\n- `alt` (recommended) - [NIP-31](https://github.com/nostr-protocol/nips/blob/master/31.md) summary for clients that don't render kind 2256\n\nEach tag's format is specified below.\n\n### Card Tag\n\n```\n[\"c\", \"<card-identifier>\", \"<orientation>\"]\n```\n\n- `card-identifier` (required) - one of the 78 identifiers below\n- `orientation` (optional) - `reversed`, or `upright` (the default when omitted or empty)\n\n### Card Identifiers\n\nThe complete vocabulary is 78 kebab-case identifiers derived from the cards' traditional English names.\n\n**Major arcana (22):**\n\n```\nthe-fool          the-magician      the-high-priestess  the-empress\nthe-emperor       the-hierophant    the-lovers          the-chariot\nstrength          the-hermit        wheel-of-fortune    justice\nthe-hanged-man    death             temperance          the-devil\nthe-tower         the-star          the-moon            the-sun\njudgement         the-world\n```\n\n**Minor arcana (56):** `<rank>-of-<suit>`, where rank ∈ `ace two three four five six seven eight nine ten page knight queen king` and suit ∈ `wands cups swords pentacles`. E.g. `ace-of-wands`, `queen-of-cups`.\n\nIdentifiers are name-based rather than number-based because traditions disagree on numbering (Strength/Justice are VIII/XI in Rider–Waite–Smith and XI/VIII in Marseille) but not on names. No `deck` designation is needed for standard tarot: art varies, the 78 cards do not. Non-standard decks (Thoth's renames, oracle decks) are outside this vocabulary; events using them SHOULD add a `deck` tag naming the deck and use that deck's card names as identifiers, and clients MAY map well-known aliases (e.g. Thoth `adjustment` → `justice`) for display.\n\n#### Relation to External Vocabularies\n\nNo external system provides identifiers this NIP could adopt directly, which is why it defines its own:\n\n- **Wikidata** has stable, language-independent items for all 78 cards (majors as part of [Q11158357](https://www.wikidata.org/wiki/Q11158357), minors as part of [Q2331362](https://www.wikidata.org/wiki/Q2331362)) and is the closest thing to a canonical identity model. But Q-IDs are opaque (`Q2418750` for The Tower), and its minor-arcana labels follow the Italian/Marseille convention (*jack of coins*) rather than the Rider–Waite–Smith convention (*page of pentacles*) that dominates English tarot practice and this vocabulary.\n- **Wikimedia Commons** file names for the public domain RWS scans use RWS numbering for majors (`RWS_Tarot_16_Tower.jpg`) and abbreviated numbered suits for minors (`Cups13.jpg` for the queen of cups).\n\nThis NIP's identifiers are the RWS English card names, kebab-cased — the names practitioners actually use. Mappings to Q-IDs, Commons files, or any other system are one-time lookup tables clients may ship; none derive mechanically from another.\n\n### Spread Tag\n\nThe order of `c` tags is the canonical record. A spread is a conventional naming of that order:\n\n```\n[\"s\", \"<spread-name>\"]\n```\n\nAt most one `s` tag. As a single-letter tag it is relay-indexed, so readings are queryable by spread: `{\"#s\": [\"celtic-cross\"]}`.\n\nWell-known spread names, whose position semantics are established tarot tradition:\n\n| Spread | Cards | Positions (in draw order) |\n| --- | --- | --- |\n| `single` | 1 | the card |\n| `past-present-future` | 3 | past, present, future |\n| `situation-action-outcome` | 3 | situation, action, outcome |\n| `mind-body-spirit` | 3 | mind, body, spirit |\n| `horseshoe` | 7 | past, present, hidden influences, obstacles, attitudes, advice, outcome |\n| `celtic-cross` | 10 | present, challenge, foundation, past, crown, future, self, environment, hopes and fears, outcome |\n\nClients that recognize the spread name render its layout; all others fall back to an ordered row. Unknown names are tolerated, not rejected. The event remains fully interpretable with no `s` tag at all: it is a draw of n cards, in order.\n\n### Querent Tag\n\nStandard [NIP-01](https://github.com/nostr-protocol/nips/blob/master/01.md) `p` tag, marking who the reading is for when the author read for someone else:\n\n```\n[\"p\", \"<32-byte hex pubkey>\", \"<relay-hint>\"]\n```\n\nThe relay hint is optional. The author is always the reader; absent a `p` tag, the author is also the querent.\n\n### Topic Tags\n\nStandard hashtags per [NIP-24](https://github.com/nostr-protocol/nips/blob/master/24.md): lowercase, one word per tag, multiple allowed:\n\n```\n[\"t\", \"daily\"]\n[\"t\", \"weekly\"]\n```\n\nUsed for cadence and theme, and for relay-level feed filtering (`{\"#t\": [\"daily\"]}`).\n\n### Alt Tag\n\nStandard [NIP-31](https://github.com/nostr-protocol/nips/blob/master/31.md) fallback for clients that don't render kind 2256:\n\n```\n[\"alt\", \"Tarot reading: The Fool, The Hermit reversed, The Tower (past/present/future)\"]\n```\n\n### Media Tags\n\n**No artwork is required to render a reading.** The card identifiers alone are sufficient: Pamela Colman Smith's 1909 illustrations for the Rider–Waite–Smith deck are in the public domain (in the US since publication era, and in life+70 jurisdictions since 2022), so complete free art for the entire 78-card vocabulary exists — Wikimedia Commons hosts the full set, among others. Note that no external naming scheme derives mechanically from these identifiers (the Commons scans, for instance, are numbered by RWS convention — `RWS_Tarot_08_Strength.jpg`, `Cups13.jpg`); clients are expected to ship their own identifier→image mapping, whatever art they use.\n\n`imeta` tags per [NIP-92](https://github.com/nostr-protocol/nips/blob/master/92.md) are optional and serve two purposes:\n\n**Reading image** — an `imeta` with no `card` field is a rendering of the whole reading, for media-oriented clients:\n\n```\n[\"imeta\", \"url <image-url>\", \"m image/png\", \"alt <description>\"]\n```\n\n**Card art** — an `imeta` with a `card <card-identifier>` field supplies artwork for one specific card, for clients using custom (non-RWS) art. The identifier MUST match one of the event's `c` tags:\n\n```\n[\"imeta\", \"url https://blossom.example.com/tower-custom.png\", \"m image/png\", \"card the-tower\", \"alt The Tower, custom art\"]\n```\n\nClients that display card art SHOULD prefer a matching `card` imeta when present and fall back to their own imagery otherwise. Card-art imeta depicts the upright card; reversal is a display rotation, not a separate image.\n\n## Client Behavior\n\n### Publishing\n\nA draw is a local act; publishing is explicit. Clients SHOULD create events — whether a kind 2256 reading or a fallback kind 1 note — only on deliberate user action, never automatically when cards are drawn.\n\n### Querying\n\n- A user's readings: `{\"kinds\": [2256], \"authors\": [\"<pubkey>\"]}`\n- Latest daily reading: `{\"kinds\": [2256], \"authors\": [\"<pubkey>\"], \"#t\": [\"daily\"], \"limit\": 1}`\n- Every reading containing a card: `{\"kinds\": [2256], \"#c\": [\"the-tower\"]}`\n- Readings using a spread: `{\"kinds\": [2256], \"#s\": [\"celtic-cross\"]}`\n- Readings for a querent: `{\"kinds\": [2256], \"#p\": [\"<pubkey>\"]}`\n\n### Validation\n\nA kind 2256 event is invalid when it has no `c` tags, more than 78, or a repeated card identifier. Unknown orientations, spread names, and out-of-vocabulary card identifiers SHOULD be tolerated for forward compatibility, not rejected.\n\n### Display\n\n- Reversed cards SHOULD be visually distinct (inverted, badged, or labeled)\n- The author is the reader; a `p`-tagged pubkey is the querent\n- Clients MAY additionally publish a kind 1 note with a `nostr:nevent...` URI pointing at the reading for reach into note-only clients; the kind 2256 event remains the canonical record\n\n## Social Layer\n\nStandard mechanisms apply with no special handling:\n\n- **Comments**: [NIP-22](https://github.com/nostr-protocol/nips/blob/master/22.md) kind 1111, rooted with `[\"E\", \"<reading-id>\"]`, `[\"K\", \"2256\"]`, `[\"P\", \"<author>\"]`\n- **Reactions**: [NIP-25](https://github.com/nostr-protocol/nips/blob/master/25.md) kind 7 with `[\"k\", \"2256\"]`\n- **Zaps**: [NIP-57](https://github.com/nostr-protocol/nips/blob/master/57.md)\n\n## Examples\n\n### Three-Card Daily Reading\n\n```json\n{\n  \"kind\": 2256,\n  \"content\": \"A leap already taken, a lantern turned inward and ignored, and a reckoning on the horizon. Slow down before the universe slows you down.\",\n  \"tags\": [\n    [\"c\", \"the-fool\"],\n    [\"c\", \"the-hermit\", \"reversed\"],\n    [\"c\", \"the-tower\"],\n    [\"s\", \"past-present-future\"],\n    [\"t\", \"daily\"],\n    [\"imeta\",\n      \"url https://blossom.example.com/abc123.png\",\n      \"m image/png\",\n      \"alt Three tarot cards: The Fool, The Hermit reversed, The Tower\"\n    ],\n    [\"alt\", \"Tarot reading: The Fool, The Hermit reversed, The Tower (past/present/future)\"]\n  ]\n}\n```\n\n### Single Card\n\n```json\n{\n  \"kind\": 2256,\n  \"content\": \"\",\n  \"tags\": [\n    [\"c\", \"queen-of-cups\"],\n    [\"alt\", \"Tarot card: Queen of Cups\"]\n  ]\n}\n```\n\n### Reading with Card Art\n\nOne `imeta` per card, each carrying a `card` field matching a `c` tag. Here the art is the public domain 1909 Rider–Waite–Smith scans hosted on Wikimedia Commons — though a client shipping its own RWS art would omit these tags entirely, since the identifiers alone suffice.\n\n```json\n{\n  \"kind\": 2256,\n  \"content\": \"A leap already taken, a lantern turned inward and ignored, and a reckoning on the horizon.\",\n  \"tags\": [\n    [\"c\", \"the-fool\"],\n    [\"c\", \"the-hermit\", \"reversed\"],\n    [\"c\", \"the-tower\"],\n    [\"s\", \"past-present-future\"],\n    [\"imeta\",\n      \"url https://commons.wikimedia.org/wiki/Special:FilePath/RWS_Tarot_00_Fool.jpg\",\n      \"m image/jpeg\",\n      \"card the-fool\",\n      \"alt The Fool, Rider-Waite-Smith\"\n    ],\n    [\"imeta\",\n      \"url https://commons.wikimedia.org/wiki/Special:FilePath/RWS_Tarot_09_Hermit.jpg\",\n      \"m image/jpeg\",\n      \"card the-hermit\",\n      \"alt The Hermit, Rider-Waite-Smith\"\n    ],\n    [\"imeta\",\n      \"url https://commons.wikimedia.org/wiki/Special:FilePath/RWS_Tarot_16_Tower.jpg\",\n      \"m image/jpeg\",\n      \"card the-tower\",\n      \"alt The Tower, Rider-Waite-Smith\"\n    ],\n    [\"alt\", \"Tarot reading: The Fool, The Hermit reversed, The Tower (past/present/future)\"]\n  ]\n}\n```\n\nNote The Hermit's art is upright even though the draw is reversed: reversal is a display rotation.\n\n### Celtic Cross\n\nTen `c` tags in draw order fill the ten positions (present, challenge, foundation, past, crown, future, self, environment, hopes and fears, outcome).\n\n```json\n{\n  \"kind\": 2256,\n  \"content\": \"The Devil crossed by Temperance: the appetite is real but so is the hand steadying it. The past (Ten of Swords) is done — fully done. Watch the crown: Wheel of Fortune says the turn has already begun...\",\n  \"tags\": [\n    [\"c\", \"the-devil\"],\n    [\"c\", \"temperance\"],\n    [\"c\", \"three-of-cups\", \"reversed\"],\n    [\"c\", \"ten-of-swords\"],\n    [\"c\", \"wheel-of-fortune\"],\n    [\"c\", \"eight-of-pentacles\"],\n    [\"c\", \"the-hermit\"],\n    [\"c\", \"king-of-swords\", \"reversed\"],\n    [\"c\", \"the-star\"],\n    [\"c\", \"six-of-wands\"],\n    [\"s\", \"celtic-cross\"],\n    [\"alt\", \"Celtic cross tarot reading: The Devil, Temperance, Three of Cups reversed, Ten of Swords, Wheel of Fortune, Eight of Pentacles, The Hermit, King of Swords reversed, The Star, Six of Wands\"]\n  ]\n}\n```\n\n### Horseshoe\n\nA traditional seven-card spread. Seven `c` tags in draw order fill the seven positions.\n\n```json\n{\n  \"kind\": 2256,\n  \"content\": \"The obstacle position holds the Moon — the problem is not the situation but how little of it you can currently see. The advice card, Page of Swords, says ask the blunt question you've been avoiding.\",\n  \"tags\": [\n    [\"c\", \"six-of-cups\"],\n    [\"c\", \"the-magician\"],\n    [\"c\", \"seven-of-cups\", \"reversed\"],\n    [\"c\", \"the-moon\"],\n    [\"c\", \"knight-of-pentacles\"],\n    [\"c\", \"page-of-swords\"],\n    [\"c\", \"ten-of-cups\"],\n    [\"s\", \"horseshoe\"],\n    [\"alt\", \"Horseshoe tarot reading: Six of Cups, The Magician, Seven of Cups reversed, The Moon, Knight of Pentacles, Page of Swords, Ten of Cups\"]\n  ]\n}\n```","sig":"b5cfca72dee9440c818a7a7825b0fe8385679e925db27af9c4abcb1d4ce7312268238e0713bf0eced7cccb5473e68f1de1b32b362e15ca255994653c51855998"}