diff --git a/01.md b/01.md index d7dbcf41..8f763521 100644 --- a/01.md +++ b/01.md @@ -86,7 +86,6 @@ In case of replaceable events with the same timestamp, the event with the lowest This NIP defines two kinds: - `kind:0`: **User Metadata**: An event kind to add name and other information to the pubkey. The `content` is set to a stringified JSON object `{name: , about: , picture: }` -- `kind:1`: **Text Note**: An event kind to transfer **plaintext** content in it's `.content` property. Markup language such as markdown and HTML SHOULD not be used. ## Tags diff --git a/10.md b/10.md index a434ea05..7f276bdd 100644 --- a/10.md +++ b/10.md @@ -1,14 +1,48 @@ NIP-10 ====== - -On "e" and "p" tags in Text Events (kind 1). --------------------------------------------- +Text Notes +---------- `draft` `optional` -## Abstract -This NIP describes how to use "e" and "p" tags in text events, especially those that are replies to other text events. It helps clients thread the replies into a tree rooted at the original event. +This NIP defines a `kind:1` as a simple plaintext note. + +The `.content` property contains a text. + +`e` and `p` tags can be used to define note threads, replies, mentions and quotes. + +Markup language such as markdown and HTML SHOULD not be used. + +## The `p` tag + +`["p", , ]` + +Used in a text event contains a list of pubkeys used to record who is involved in a reply thread. + +When replying to a text event E the reply event's `p` tags should contain all of E's `p` tags as well as the `"pubkey"` of the event being replied to. + +Example: Given a text event authored by `a1` with `p` tags [`p1`, `p2`, `p3`] then the `p` tags of the reply should be [`a1`, `p1`, `p2`, `p3`] +in no particular order. + +## Marked `e` tags + +The `e`-tag is defined as follows: + +`["e", , , ]` + +Where: + + * `` is the id of the event being referenced. + * `` is the URL of a recommended relay associated with the reference. Clients SHOULD add a valid `` field, but may instead leave it as `""`. + * `` is optional and if present is one of `"reply"`, `"root"`, or `"mention"`. + +Those marked with `"reply"` denote the id of the reply event being responded to. Those marked with `"root"` denote the root id of the reply thread being responded to. For top level replies (those replying directly to the root event), only the `"root"` marker should be used. Those marked with `"mention"` denote a quoted or reposted event id. + +A direct reply to the root of a thread should have a single marked `e` tag of type "root". + +> This scheme is preferred because it allows events to mention others without confusing them with `` or ``. + ## Positional "e" tags (DEPRECATED) >This scheme is in common use; but should be considered deprecated. @@ -36,27 +70,3 @@ There may be any number of ``. These are the ids of events which m They are citing from this event. `root-id` and `reply-id` are as above. >This scheme is deprecated because it creates ambiguities that are difficult, or impossible to resolve when an event references another but is not a reply. - -## Marked "e" tags (PREFERRED) -`["e", , , ]` - -Where: - - * `` is the id of the event being referenced. - * `` is the URL of a recommended relay associated with the reference. Clients SHOULD add a valid `` field, but may instead leave it as `""`. - * `` is optional and if present is one of `"reply"`, `"root"`, or `"mention"`. - -Those marked with `"reply"` denote the id of the reply event being responded to. Those marked with `"root"` denote the root id of the reply thread being responded to. For top level replies (those replying directly to the root event), only the `"root"` marker should be used. Those marked with `"mention"` denote a quoted or reposted event id. - -A direct reply to the root of a thread should have a single marked "e" tag of type "root". - ->This scheme is preferred because it allows events to mention others without confusing them with `` or ``. - - -## The "p" tag -Used in a text event contains a list of pubkeys used to record who is involved in a reply thread. - -When replying to a text event E the reply event's "p" tags should contain all of E's "p" tags as well as the `"pubkey"` of the event being replied to. - -Example: Given a text event authored by `a1` with "p" tags [`p1`, `p2`, `p3`] then the "p" tags of the reply should be [`a1`, `p1`, `p2`, `p3`] -in no particular order.