From 81480824adca735c8e5eb31646dacd48673fc814 Mon Sep 17 00:00:00 2001 From: Pablo Fernandez Date: Thu, 23 Nov 2023 15:46:37 +0000 Subject: [PATCH] move tier description to NIP-33 event and add 7002 as unsubscribe event --- 88.md | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/88.md b/88.md index 28bed06d..25c41a5e 100644 --- a/88.md +++ b/88.md @@ -13,11 +13,13 @@ A pubkey can create "tiers". These tiers might provide certain benefits to the s ```json { - "kind": 7002, + "kind": 37001, "content": "", "tags": [ [ "title", "..." ], - [ "amount", "", "currency", "" ] + [ "image", "..." ], + [ "amount", "", "currency", "" ], + [ "amount", "", "currency", "" ] ] } ``` @@ -26,6 +28,7 @@ This event is generated by a pubkey who wants to allow users to support with dif `.content` SHOULD be a description of what users who subscribe can expect. Tag `title` is an optional title for the tier. +Tag `image` is an optional image for the tier. Tag `amount` MUST specify the payment required for this tier and its cadence. * The first argument should be the stringified amount and the second argument the currency * The third argument SHOULD be one of `daily`, `monthly`, `yearly` @@ -43,7 +46,8 @@ One or more `amount` tags MUST exist. "content": "", "tags": [ [ "p", "" ], - [ "e", "" ], + [ "a", "" ], + [ "event", "" ], [ "amount", "", "currency", "" ] ] } @@ -53,13 +57,14 @@ When a user wants to subscribe to support a user they create a `kind:7001` event * `.content` is an optional message the supporter can write. * The `p` tag MUST tag the pubkey being supported. -* The `e` tag is optional, and should point to a `kind:7001` support tier event. There MUST be exactly 0 or 1 `e` tags. -* The `amount` tag specifies what the supporters is committing to pay to the supported pubkey and the candence. +* The `a` tag is optional; it should point to a `kind:37001` support tier event. There MUST be exactly 0 or 1 `a` tag. +* The `event` tag is optional; subscribers can opt to keep the version of the event they subscribed to. There MUST be exactly 0 or 1 `event` tag. +* The `amount` tag specifies what the supporters is committing to pay to the supported pubkey and the candence. MUST be equal to one of the amounts specified in the `kind:37001` event. There MUST be exactly 1 `amount` tag. The `kind:7001` event can be created without an `e` tag so that users can create recurring support events without the pubkey receiving the support having explicitly created a support tier. ## Paying -The supporting user should create a zap p-tagging the receiver and e-tagging the `kind:7001`. There MUST be a single `p` and a single `e` tag in the zap request. +The supporting user should create a zap `p`-tagging the receiver and e-tagging the `kind:7001`. There MUST be a single `p` and a single `e` tag in the zap request. ```json { @@ -84,4 +89,15 @@ The following conditions must be met to verify a payment: * Validations specified in [NIP-57](https://github.com/nostr-protocol/nips/blob/master/57.md). ## Stopping a subscription -A user who wants to stop a subscription by publishing a `kind:5` deletion request of the `kind:7001` event. +A user who wants to signal they are no longer subscribed can publish a `kind:7002` event tagging the `kind:7001` they are stopping and `p`-tagging the pubkey they are no longer subscribed to. + +```json +{ + "kind": 7002, + "content": "", + "tags": [ + [ "p", "" ], + [ "e", "" ], + ] +} +``` \ No newline at end of file