nips/37.md
Vitor Pamplona 2f0b39ea7f adds relay hint
adds references in the readme
adds notification ptag for proposals
improves wording
2024-03-29 11:19:04 -04:00

52 lines
1.3 KiB
Markdown

NIP-37
======
Editable Short Notes
--------------------
`draft` `optional`
This NIP allows `.content` edits of `kind:1` short notes with history of changes.
`kind:1010` stores the updated content with an `e` tag pointing back to the original `kind:1`.
```js
{
"kind": 1010,
"pubkey": "<32-bytes hex-encoded public key of the event creator>",
"tags": [
["e", "<kind_1_event_id>", "relay"]
],
"content": "this is a modified version of the original content",
// ...other fields
}
```
Clients MUST check if the pubkey of the `kind:1010` is the same as the referenced `kind:1`.
Clients SHOULD render the `.content` of the most recent `kind:1010` by `created_at`.
Clients MAY present a history of changes over time.
# Collaboration
`kind:1010`s that are not signed by the author of the `e`-tagged event are considered proposals to edit.
A `p` tag notifies the author of a new edit proposal.
```js
{
"kind": 1010,
"pubkey": "<32-bytes hex-encoded public key of the event creator>",
"tags": [
["e", "<kind_1_event_id>"]
["p", "<kind_1_event_pubkey>"] // notifying the author
["summary", "<message to the author>"]
],
"content": "this is the proposed change from a third-party to the author",
// ...other fields
}
```
To accept the proposal, the author MUST sign a new `kind:1010` event with a copy of the proposal's `.content`.