Co-authored-by: Tony Giorgio <101225832+TonyGiorgio@users.noreply.github.com>
2.7 KiB
NIP-88
Recurring Subscriptions
draft
optional
author:pablof7z
This NIP defines a way for a pubkey to create recurring subscription payments to another pubkey.
Tier Event
A pubkey can create "tiers". These tiers might provide certain benefits to the supporters who subscribe to these.
{
"kind": 7002,
"content": "<description of the tier>",
"tags": [
[ "title", "..." ],
[ "amount", "<amount-in-base-unit>", "currency", "<cadence>" ]
]
}
This event is generated by a pubkey who wants to allow users to support with different tiers.
.content
SHOULD be a description of what users who subscribe can expect.
Tag title
is an optional title 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
One or more amount
tags MUST exist.
Examples
[ "amount", "100", "usd", "daily" ]
, $1.00 a day.[ "amount", "1000000", "btc", "daily" ]
, 1000000 millisats a day.
Subscribe Event
{
"kind": 7001,
"content": "<optional-message>",
"tags": [
[ "p", "<recipient-pubkey>" ],
[ "e", "<supporting-tier-id>" ],
[ "amount", "<amount-in-base-unit>", "currency", "<cadence>" ]
]
}
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 akind:7001
support tier event. There MUST be exactly 0 or 1e
tags. - The
amount
tag specifies what the supporters is committing to pay to the supported pubkey and the candence.
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.
{
"kind": 9734,
"content": "",
"tags": [
[ "p", "<recipient-pubkey>" ],
[ "e", "<kind-7001-event-id>" ]
]
Clients supporting this NIP can check for zaps e-tagging the kind:7001
event to find the pubkeys that have a valid, paid subscriptions at each different period.
The same kind:7001
is re-zapped on a regular basis per the cadence specified in the event.
Stopping a subscription
A user who wants to stop a subscription by publishing a kind:5
deletion request of the kind:7001
event.