draft optional
This NIP introduces kind:30296 and kind:30297 as living notes designed to create interactive stories. These notes include option tags for navigating to subsequent notes, allowing readers to continue exploring the story. Kind:30296 serves as starting events for the reader, while kind:30297 represents individual scenes within the narrative.
The modularity of this approach allows Scenes from multiple authors to be combined into bigger stories.
Prologue events are entry points in the story.
They SHOULD contain title, summary and image to help clients render a preview of the story.
option tags include a description for the action button, an address and the relay to find the next scene.
Scenes describe a given point in a story with potential options and SHOULD include an optional title tag.
{
"kind": 30297,
"content": "<description of the scene>",
"tags": [
["d", "<unique identifier>"],
["title", "<short title for this scene>"],
["option", "<description>", "<kind:pubkey:d-tag>", "<relay_hint>"],
["option", "<description>", "<kind:pubkey:d-tag>", "<relay_hint>"],
// ...
]
}The story concludes when no option tags are present.
The .content field does not accept markdown.
Kind 30298 stores the latest state of the story.
The d tag of the replaceable event MUST match the root event's id.
The a tag points to the latest scene the user has read.
{
"kind": 30298,
"tags": [
// d-tag defines the starting point so that if the user sees an interative post again, the client can find it.
["d", "<kind:pubkey:d-tag>"],
// cached to simplify preview purposes
["title", "<root_event_title>"],
["summary", "<root_event_summary>"],
["image", "<image url for preview>"],
// root with relay hint
["A", "<kind:pubkey:d-tag>", "<relay_hint>"],
// current scene with relay hint
["a", "<kind:pubkey:d-tag>", "<relay_hint>"],
// reading status
["status", "<new|reading|done>"]
]
}Replies to all kinds here should use NIP-22.
{ "kind": 30296, "content": "<the beginning of the story>", "tags": [ ["d", "<unique identifier>"], ["title", "<short title for the prologue>"], ["summary", "<summary for preview>"], ["image", "<image url for preview>"], ["option", "<description>", "<kind:pubkey:d-tag>", "<relay_hint>"], ["option", "<description>", "<kind:pubkey:d-tag>", "<relay_hint>"], // ... ] }