NIP-81 ====== Relationship Status ------------------- `draft` `optional` Event `kind:30382` documents a "Relationship Status" between two pubkeys and uses private and public tags to enhance the description of that relationship. Since statuses change over time, this event is defined as a _parameterized replaceable event_ with a single `d` tag as a random UUID per pubkey. Optional `n` tags add the target key to an unbound list. The private tags are stringified, NIP-44-encrypted and placed inside the `.content` of the event. Examples: Public Status ```js { "kind": 30382, "tags": [ ["d", ""], ["n", "Clients"], ["n", "Developers"], ["p", "", "relay"], ["trust_level", "1"], ["nickname", ""], ["summary", ""] ], "content": "", // ...other fields } ``` Private Status ```js { "kind": 30382, "tags": [ ["d", ""], ["n", "Clients"] ], "content": nip44Encrypt(JSON.stringify([ ["p", "", "relay"] ["nickname", ""] ["summary", ""], ["nip82secret", ""] ])), ...other fields } ``` `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`, with or without `n` tags, to determine how to assemble feeds, group messages, and when to display content. ### Private `n`-tags Clients MAY hide human readable `n`-tags behind a code and list their code maps in `kind:10007` using the `n_name` tag. ```js { "kind": 10007, "content": nip44Encrypt(JSON.stringify([ ["n_name", "", ""], ["n_name", "Clients", "Clients"] // public list of my Clients ["n_name", "6064460175057025", "Idiot"] // private list of idiots ])), // ...other fields } ``` ### Deterministic `d`-Tag. For private use cases that must contain deterministic d-Tags, the recommendation is to use NIP-44's `hkdf` function and use a hash between the user's private key and the pubkey of the `p` tag. ``` nip81_key = hkdf(private_key, salt: 'nip81') bobs_tag = sha256(nip81_key || bobs_pub) kates_tag = sha256(nip81_key || kates_pub) ```