{"id":"c7a35c13763ce3bbc0502d6939fdd70dc461be9e49471d79fce345397e4a8dc8","pubkey":"a8d1560d6a647d501699167246f237b36fb123f89168fda11dc743533fec7a08","created_at":1781615660,"kind":30817,"tags":[["d","pressstr"],["title","NIP-PS"],["k","34609"],["k","39731"],["k","33953"],["client","nostrhub.io"]],"content":"# NIP-PS: Magazines, Magazine Issues & Ebooks\n\n`draft` `optional`\n\nThis document defines three new addressable event kinds for sharing digital publications—magazines (with recurring issues) and ebooks—on Nostr.\n\n---\n\n## Motivation\n\nThere is no standard way to publish or discover digital periodicals (magazines, journals, newsletters) or ebooks on Nostr. This NIP defines a minimal, relay-friendly schema that:\n\n- Groups magazine issues under a single addressable magazine identity.\n- Lets readers follow a magazine by its `pubkey + kind + d` coordinate.\n- Supports arbitrary issue identifiers (e.g. `2024-01`, `Vol.3 No.12`, `Spring Edition`).\n- Works for ebooks distributed as PDF or EPUB files.\n- Is compatible with Blossom file hosting.\n\n---\n\n## Kind Definitions\n\n### Kind 34609 — Magazine (Publication)\n\nAn addressable event that represents a **magazine or periodical publication**. It is the parent record that groups individual issues together. Publishers create one Magazine event per title.\n\n#### Tags\n\n| Tag | Req | Description |\n|-----|-----|-------------|\n| `d` | **required** | Unique slug identifier for this magazine (e.g. `bitcoin-magazine`, `nostr-weekly`) |\n| `title` | **required** | Human-readable name of the magazine |\n| `image` | optional | URL of the magazine logo / masthead image |\n| `summary` | optional | Short description of the magazine |\n| `t` | optional (multiple) | Category/topic tags (e.g. `bitcoin`, `tech`, `art`) |\n| `l` | optional | Language code (e.g. `en`, `de`) |\n| `url` | optional | External website URL for the magazine |\n| `alt` | **required** | Human-readable fallback: `\"Magazine: <title>\"` |\n\n#### Content\n\nEmpty string or an extended description / about text in Markdown.\n\n#### Example\n\n```json\n{\n  \"kind\": 34609,\n  \"content\": \"The world's leading Bitcoin magazine, covering protocol, culture, and economy.\",\n  \"tags\": [\n    [\"d\", \"bitcoin-magazine\"],\n    [\"title\", \"Bitcoin Magazine\"],\n    [\"image\", \"https://blossom.example.com/logo.webp\"],\n    [\"summary\", \"Bitcoin protocol, culture, and economy.\"],\n    [\"t\", \"bitcoin\"],\n    [\"t\", \"finance\"],\n    [\"l\", \"en\"],\n    [\"url\", \"https://bitcoinmagazine.com\"],\n    [\"alt\", \"Magazine: Bitcoin Magazine\"]\n  ]\n}\n```\n\n---\n\n### Kind 39731 — Magazine Issue\n\nAn addressable event representing a **single issue** of a magazine. Each issue references its parent magazine via an `a` tag.\n\n#### Tags\n\n| Tag | Req | Description |\n|-----|-----|-------------|\n| `d` | **required** | Unique slug for this issue within the magazine (e.g. `2024-01`, `vol3-no12`, `spring-2025`) |\n| `title` | **required** | Display title of this issue (e.g. `\"Vol. 3 No. 12 — Spring 2025\"`) |\n| `issue` | **required** | The issue identifier/number as a free-form string (e.g. `12`, `Spring 2025`, `2024-Q1`) |\n| `a` | **required** | Reference to parent Magazine: `\"34609:<pubkey>:<magazine-d-tag>\"` |\n| `image` | **required** | URL of the cover image for this issue |\n| `url` | **required** | URL of the PDF file hosted on Blossom or another server |\n| `m` | optional | MIME type of the file (default: `application/pdf`) |\n| `size` | optional | File size in bytes |\n| `x` | optional | SHA-256 hash of the file (hex) |\n| `summary` | optional | Short description / editorial note for this issue |\n| `published_at` | optional | Unix timestamp of the original publication date |\n| `t` | optional (multiple) | Topic tags inherited or specific to this issue |\n| `alt` | **required** | Human-readable fallback: `\"Magazine Issue: <title>, Issue <issue>\"` |\n\n#### Content\n\nEmpty string or editorial notes / table of contents in Markdown.\n\n#### Example\n\n```json\n{\n  \"kind\": 39731,\n  \"content\": \"This month: The Lightning Network turns 5, plus 20 pages on Nostr.\",\n  \"tags\": [\n    [\"d\", \"2024-05\"],\n    [\"title\", \"Bitcoin Magazine — May 2024\"],\n    [\"issue\", \"May 2024\"],\n    [\"a\", \"34609:ab12cd...:bitcoin-magazine\"],\n    [\"image\", \"https://blossom.example.com/cover-2024-05.webp\"],\n    [\"url\", \"https://blossom.example.com/btcmag-2024-05.pdf\"],\n    [\"m\", \"application/pdf\"],\n    [\"size\", \"14285714\"],\n    [\"x\", \"deadbeef...\"],\n    [\"summary\", \"Lightning Network 5th anniversary special issue.\"],\n    [\"published_at\", \"1714521600\"],\n    [\"t\", \"bitcoin\"],\n    [\"alt\", \"Magazine Issue: Bitcoin Magazine — May 2024, Issue May 2024\"]\n  ]\n}\n```\n\n---\n\n### Kind 33953 — Ebook\n\nAn addressable event representing a standalone **ebook** (PDF or EPUB).\n\n#### Tags\n\n| Tag | Req | Description |\n|-----|-----|-------------|\n| `d` | **required** | Unique slug identifier (e.g. `the-bitcoin-standard`, `sovereign-individual`) |\n| `title` | **required** | Title of the ebook |\n| `image` | **required** | URL of the cover image |\n| `url` | **required** | URL of the ebook file (PDF or EPUB) hosted on Blossom |\n| `m` | **required** | MIME type: `application/pdf` or `application/epub+zip` |\n| `author` | optional (multiple) | Author name(s) as plain strings |\n| `summary` | optional | Short description / synopsis |\n| `published_at` | optional | Unix timestamp of original publication date |\n| `size` | optional | File size in bytes |\n| `x` | optional | SHA-256 hash of the file (hex) |\n| `t` | optional (multiple) | Genre/topic tags (e.g. `fiction`, `economics`, `bitcoin`) |\n| `l` | optional | Language code (e.g. `en`, `de`) |\n| `isbn` | optional | ISBN-13 as a plain string |\n| `alt` | **required** | Human-readable fallback: `\"Ebook: <title>\"` |\n\n#### Content\n\nEmpty string or a full book description / blurb in Markdown.\n\n#### Example\n\n```json\n{\n  \"kind\": 33953,\n  \"content\": \"A look at the history of money and an argument for Bitcoin as the superior form of money.\",\n  \"tags\": [\n    [\"d\", \"the-bitcoin-standard\"],\n    [\"title\", \"The Bitcoin Standard\"],\n    [\"image\", \"https://blossom.example.com/bitcoin-standard-cover.webp\"],\n    [\"url\", \"https://blossom.example.com/bitcoin-standard.epub\"],\n    [\"m\", \"application/epub+zip\"],\n    [\"author\", \"Saifedean Ammous\"],\n    [\"summary\", \"The decentralized alternative to central banking.\"],\n    [\"published_at\", \"1525132800\"],\n    [\"t\", \"bitcoin\"],\n    [\"t\", \"economics\"],\n    [\"l\", \"en\"],\n    [\"isbn\", \"978-1119473862\"],\n    [\"alt\", \"Ebook: The Bitcoin Standard\"]\n  ]\n}\n```\n\n---\n\n## Cross-Linking\n\nMagazine issues reference their parent magazine via the `a` tag using the NIP-01 addressable coordinate format:\n\n```\n34609:<publisher-pubkey>:<magazine-d-tag>\n```\n\nClients can query all issues of a magazine with:\n\n```json\n{ \"kinds\": [39731], \"#a\": [\"34609:<pubkey>:<d>\"] }\n```\n\nAnd they can query all ebooks by a topic with:\n\n```json\n{ \"kinds\": [33953], \"#t\": [\"bitcoin\"] }\n```\n\n---\n\n## File Hosting\n\nAll files (PDFs, EPUBs, cover images, logos) SHOULD be uploaded to [Blossom](https://github.com/hzrd149/blossom) servers and referenced by their canonical Blossom URL. The `x` tag (SHA-256) SHOULD be provided for integrity verification.\n\nCover images SHOULD be in `image/webp` or `image/jpeg` format, at a 2:3 aspect ratio (portrait), at least 400px wide.\n\nIf no cover image is provided by the publisher, clients SHOULD render the first page of the PDF as a cover image and upload it to Blossom before publishing the issue/ebook event.\n\n---\n\n## Querying Summary\n\n| Goal | Filter |\n|------|--------|\n| All magazines | `{ kinds: [34609] }` |\n| Magazines by topic | `{ kinds: [34609], \"#t\": [\"bitcoin\"] }` |\n| Issues of a magazine | `{ kinds: [39731], \"#a\": [\"34609:<pubkey>:<d>\"] }` |\n| All ebooks | `{ kinds: [33953] }` |\n| Ebooks by author pubkey | `{ kinds: [33953], authors: [\"<pubkey>\"] }` |\n| Ebooks by topic | `{ kinds: [33953], \"#t\": [\"fiction\"] }` |","sig":"e5e7714f7191ca6e7d392ae2b2dcee3cbc32ade2beef121bdd1694611e70e1664e4e17444d1cfe52ef234f8367fd2de0b57522f276a02f3c50f622ff36c16cae"}