Refines proposal to make relationships private.

This commit is contained in:
Vitor Pamplona 2024-02-07 17:54:20 -05:00
parent fe00ddd14d
commit dc4af5d133

24
81.md
View File

@ -1,20 +1,18 @@
NIP-81
======
Relationship Status
-------------------
Private Relationship Status
---------------------------
`draft` `optional` `author:vitorpamplona`
`draft` `optional`
## Abstract
Creates a replaceable event to privately assert the level of trust from the author to any other pubkey.
The wide-spread use of these statuses between pubkeys is not ideal for Kind 3 or NIP-51 list structures.
Creates a replaceable event using unbound lists to privately assert the level of trust from the author to any other pubkey.
# Relationship Status Event
A special event with `kind:30382` "Relationship Status Event" is defined as a _parameterized replaceable event_ with a single `d` tag as the target pubkey. The other tags are stringified, NIP-44 encrypted and placed inside the `.content` of the event.
A new `kind:30382` event named "Relationship Status Event" is defined as a _parameterized replaceable event_ with a single `d` tag as hash of the target pubkey and `n` as the name for the list. The other tags are stringified, NIP-44 encrypted and placed inside the `.content` of the event.
For example:
@ -22,23 +20,21 @@ For example:
{
"kind": 30382,
"tags": [
["d", "612ae..e610f"],
["d", bytesToHex(sha256(hexToBytes("<pubKey>")))],
["n", "Clients"]
],
"content": "<NIP-44 encrypted Stringified TAG-List(
["status", "<Known Face, Contact, Following, Coworker, Friend, Partner,
Family, Extended family, Trusted, Competitor, Traitor, Used to Know,
Scammer, NSFW, Unkown, etc>"],
["p", "<pubkey>", "relay"]
["nickname", "<My buddy>"]
["summary", "<Summary of the relationship>"],
["nip92secret", "<secret used to decrypt medical data for this pubkey>"]
)",
...other fields
}
```
`status` MUST be a case-sensitive displayable category name with the expectation to group users by it. It is privately scoped and thus new statuses/groups are welcome.
`nickname` SHOULD be used instead of the person's display name in all interfaces
Profile screens MAY display the summary of the relationship and allow the user to change the tags of this event.
Clients MAY filter by `kind:30382` to determine how to assemble feeds, group messages, and when to display content.
Clients MAY filter by `kind:30382`, with or without `n` tags, to determine how to assemble feeds, group messages, and when to display content.