Remove custom serialization and add more explanation

This commit is contained in:
arthurfranca 2024-02-15 08:53:30 -03:00
parent bbd72d122d
commit f1b5e32bcf

26
00.md
View File

@ -17,13 +17,18 @@ must be published or updated with a `full_event` tag pointing to a
It's data should be set to a warning that the event is private or to a preview version of the full event, in case the It's data should be set to a warning that the event is private or to a preview version of the full event, in case the
goal is to tease an user to pay for content, for example. goal is to tease an user to pay for content, for example.
For example, a `kind:1` event could have it's `.content` set to "You don't have access to this event." to be showed For example, a `kind:1` event could have it's `.content` set to "This event is private." to be showed
to users that don't have acces to the event or that are using a client that doesn't support this NIP. On the other hand, to users that don't have acces to the event or that are using clients that don't support this NIP. On the other hand,
if the goal is to convince an user to pay for the full event, the `.content` could be set to a text excerpt like the following: if the goal is to convince viewing users to pay for the full event, the `.content` could be set to a text excerpt like the following:
"This is the first sentence of the full text. This text is trimmed to 5% of the character count of the full text..." "This is the first sentence of the full text. This text is trimmed to 5% of the character count of the full text... Subscribe
to read the full text".
Taking the `kind:1063` metadata event of an image as an example, it could had set its `url` tag to a blurred version of the image Taking the `kind:1063` metadata event of an image as an example, it could had set its `url` tag to a blurred version of the image
or simply use the `.content` (that according to NIP-94 means "caption") set to "You don't have access to this event". and/or use the `.content` (that according to NIP-94 means "caption") set to "This event is private".
How the public event data will be set is entirely up to the client offering
the feature that requires event access control. Such feature could be
a "Publish only to Close Friends" or "Publish to Paying Subscribers", for example.
Example: Example:
@ -45,20 +50,23 @@ Example:
A "Full Event" is of `kind:40042`. It has [NIP-42](42.md) `A` tags the author A "Full Event" is of `kind:40042`. It has [NIP-42](42.md) `A` tags the author
can update at will with the pubkeys allowed to access it. can update at will with the pubkeys allowed to access it.
It uses the custom NIP-42 event serialization for events that require `AUTH`.
The `.content` and other tags aren't fixed. The structure depends on the The `.content` and other tags aren't fixed. The structure depends on the
kind of the public event it is protecting. For example, if it is kind of the public event it is protecting. For example, if it is
protecting a `kind:30023` event, it should have the structure defined on [NIP-23](23.md). protecting a `kind:30023` event, it should have the structure defined on [NIP-23](23.md).
Example: An interesting side effect of this being an event separate from the public one
is that it doesn't need to be owned by the public event author. This way
an always online bot or DVM can update the `A` tag list in response to
a detected payment, for example.
Example of a `kind:40042` event using a `kind:1063` event structure:
```json ```json
{ {
"kind": 40042, "kind": 40042,
"pubkey": "<author_pubkey>", "pubkey": "<author_pubkey>",
"tags": [ "tags": [
["d", "<random>"], ["d", "<random>"], // act as parameterized replaceable event
["A", "<author_pubkey>"], // important to keep author access right ["A", "<author_pubkey>"], // important to keep author access right
["A", "<buyer_1_pubkey>"], ["A", "<buyer_1_pubkey>"],
["A", "<buyer_2_pubkey>"], ["A", "<buyer_2_pubkey>"],