Tarot Card Readings
NIP-TR
Tarot Readings
draft optional
This NIP defines kind:2256 events for recording tarot readings on Nostr.
Model
The 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.
This maps directly onto Nostr primitives:
- 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.
- 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
ctag is the n-th card drawn. No position labels are carried in the data. - The draw is without replacement: a card identifier appears at most once per event.
- The interpretation is prose and lives in
content.
Kind 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.
Tarot Reading Event (Kind 2256)
{
"kind": 2256,
"content": "<interpretation>",
"tags": [
["c", "<card-identifier>", "<orientation>"],
["c", "<card-identifier>", "<orientation>"],
["c", "<card-identifier>", "<orientation>"],
["s", "<spread-name>"],
["alt", "<human-readable summary>"]
]
}Content
Freeform prose: the interpretation, the question asked, whatever the reader wants to say. MAY contain URLs, hashtags, and nostr: URIs per NIP-27. MAY be empty — the draw alone is a valid reading.
Clients MUST NOT need to parse content to reconstruct the draw.
Tags
c(required, 1–78) - one tag per card drawn, in draw order. Card identifiers MUST be unique within the events(optional) - name of the spread, giving conventional meaning to the draw orderp(optional) - pubkey of the querent, when the author read for someone elseimeta(optional, multiple) - media per NIP-92: a rendering of the reading, or custom art for individual cardst(optional, multiple) - topics for discovery, e.g.daily,weeklyalt(recommended) - NIP-31 summary for clients that don't render kind 2256
Each tag's format is specified below.
Card Tag
["c", "<card-identifier>", "<orientation>"]card-identifier(required) - one of the 78 identifiers beloworientation(optional) -reversed, orupright(the default when omitted or empty)
Card Identifiers
The complete vocabulary is 78 kebab-case identifiers derived from the cards' traditional English names.
Major arcana (22):
the-fool the-magician the-high-priestess the-empress
the-emperor the-hierophant the-lovers the-chariot
strength the-hermit wheel-of-fortune justice
the-hanged-man death temperance the-devil
the-tower the-star the-moon the-sun
judgement the-worldMinor 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.
Identifiers 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.
Relation to External Vocabularies
No external system provides identifiers this NIP could adopt directly, which is why it defines its own:
- Wikidata has stable, language-independent items for all 78 cards (majors as part of Q11158357, minors as part of Q2331362) and is the closest thing to a canonical identity model. But Q-IDs are opaque (
Q2418750for 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. - 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.jpgfor the queen of cups).
This 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.
Spread Tag
The order of c tags is the canonical record. A spread is a conventional naming of that order:
["s", "<spread-name>"]At most one s tag. As a single-letter tag it is relay-indexed, so readings are queryable by spread: {"#s": ["celtic-cross"]}.
Well-known spread names, whose position semantics are established tarot tradition:
| Spread | Cards | Positions (in draw order) |
|---|---|---|
single | 1 | the card |
past-present-future | 3 | past, present, future |
situation-action-outcome | 3 | situation, action, outcome |
mind-body-spirit | 3 | mind, body, spirit |
horseshoe | 7 | past, present, hidden influences, obstacles, attitudes, advice, outcome |
celtic-cross | 10 | present, challenge, foundation, past, crown, future, self, environment, hopes and fears, outcome |
Clients 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.
Querent Tag
Standard NIP-01 p tag, marking who the reading is for when the author read for someone else:
["p", "<32-byte hex pubkey>", "<relay-hint>"]The relay hint is optional. The author is always the reader; absent a p tag, the author is also the querent.
Topic Tags
Standard hashtags per NIP-24: lowercase, one word per tag, multiple allowed:
["t", "daily"]
["t", "weekly"]Used for cadence and theme, and for relay-level feed filtering ({"#t": ["daily"]}).
Alt Tag
Standard NIP-31 fallback for clients that don't render kind 2256:
["alt", "Tarot reading: The Fool, The Hermit reversed, The Tower (past/present/future)"]Media Tags
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.
imeta tags per NIP-92 are optional and serve two purposes:
Reading image — an imeta with no card field is a rendering of the whole reading, for media-oriented clients:
["imeta", "url <image-url>", "m image/png", "alt <description>"]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:
["imeta", "url https://blossom.example.com/tower-custom.png", "m image/png", "card the-tower", "alt The Tower, custom art"]Clients 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.
Client Behavior
Publishing
A 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.
Querying
- A user's readings:
{"kinds": [2256], "authors": ["<pubkey>"]} - Latest daily reading:
{"kinds": [2256], "authors": ["<pubkey>"], "#t": ["daily"], "limit": 1} - Every reading containing a card:
{"kinds": [2256], "#c": ["the-tower"]} - Readings using a spread:
{"kinds": [2256], "#s": ["celtic-cross"]} - Readings for a querent:
{"kinds": [2256], "#p": ["<pubkey>"]}
Validation
A 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.
Display
- Reversed cards SHOULD be visually distinct (inverted, badged, or labeled)
- The author is the reader; a
p-tagged pubkey is the querent - 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
Social Layer
Standard mechanisms apply with no special handling:
- Comments: NIP-22 kind 1111, rooted with
["E", "<reading-id>"],["K", "2256"],["P", "<author>"] - Reactions: NIP-25 kind 7 with
["k", "2256"] - Zaps: NIP-57
Examples
Three-Card Daily Reading
{
"kind": 2256,
"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.",
"tags": [
["c", "the-fool"],
["c", "the-hermit", "reversed"],
["c", "the-tower"],
["s", "past-present-future"],
["t", "daily"],
["imeta",
"url https://blossom.example.com/abc123.png",
"m image/png",
"alt Three tarot cards: The Fool, The Hermit reversed, The Tower"
],
["alt", "Tarot reading: The Fool, The Hermit reversed, The Tower (past/present/future)"]
]
}Single Card
{
"kind": 2256,
"content": "",
"tags": [
["c", "queen-of-cups"],
["alt", "Tarot card: Queen of Cups"]
]
}Reading with Card Art
One 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.
{
"kind": 2256,
"content": "A leap already taken, a lantern turned inward and ignored, and a reckoning on the horizon.",
"tags": [
["c", "the-fool"],
["c", "the-hermit", "reversed"],
["c", "the-tower"],
["s", "past-present-future"],
["imeta",
"url https://commons.wikimedia.org/wiki/Special:FilePath/RWS_Tarot_00_Fool.jpg",
"m image/jpeg",
"card the-fool",
"alt The Fool, Rider-Waite-Smith"
],
["imeta",
"url https://commons.wikimedia.org/wiki/Special:FilePath/RWS_Tarot_09_Hermit.jpg",
"m image/jpeg",
"card the-hermit",
"alt The Hermit, Rider-Waite-Smith"
],
["imeta",
"url https://commons.wikimedia.org/wiki/Special:FilePath/RWS_Tarot_16_Tower.jpg",
"m image/jpeg",
"card the-tower",
"alt The Tower, Rider-Waite-Smith"
],
["alt", "Tarot reading: The Fool, The Hermit reversed, The Tower (past/present/future)"]
]
}Note The Hermit's art is upright even though the draw is reversed: reversal is a display rotation.
Celtic Cross
Ten c tags in draw order fill the ten positions (present, challenge, foundation, past, crown, future, self, environment, hopes and fears, outcome).
{
"kind": 2256,
"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...",
"tags": [
["c", "the-devil"],
["c", "temperance"],
["c", "three-of-cups", "reversed"],
["c", "ten-of-swords"],
["c", "wheel-of-fortune"],
["c", "eight-of-pentacles"],
["c", "the-hermit"],
["c", "king-of-swords", "reversed"],
["c", "the-star"],
["c", "six-of-wands"],
["s", "celtic-cross"],
["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"]
]
}Horseshoe
A traditional seven-card spread. Seven c tags in draw order fill the seven positions.
{
"kind": 2256,
"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.",
"tags": [
["c", "six-of-cups"],
["c", "the-magician"],
["c", "seven-of-cups", "reversed"],
["c", "the-moon"],
["c", "knight-of-pentacles"],
["c", "page-of-swords"],
["c", "ten-of-cups"],
["s", "horseshoe"],
["alt", "Horseshoe tarot reading: Six of Cups, The Magician, Seven of Cups reversed, The Moon, Knight of Pentacles, Page of Swords, Ten of Cups"]
]
}