From a52d170c8cc5c99cf658d184922dcfe4e8177660 Mon Sep 17 00:00:00 2001 From: Arman The Parman <77603167+ArmanTheParman@users.noreply.github.com> Date: Sun, 16 Jun 2024 19:20:00 +1000 Subject: Update 01.md This is not a correction but a suggestion... When I first read it, it wasn't clear that metadata is specifically for a user and not inclusive of other things (eg not metadata about a photo). Adding this one extra word here would have helped me understand that immediately. --- 01.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to '01.md') diff --git a/01.md b/01.md index cdd8b90..d47c261 100644 --- a/01.md +++ b/01.md @@ -87,7 +87,7 @@ As a convention, all single-letter (only english alphabet letters: a-z, A-Z) key Kinds specify how clients should interpret the meaning of each event and the other fields of each event (e.g. an `"r"` tag may have a meaning in an event of kind 1 and an entirely different meaning in an event of kind 10002). Each NIP may define the meaning of a set of kinds that weren't defined elsewhere. This NIP defines two basic kinds: -- `0`: **metadata**: the `content` is set to a stringified JSON object `{name: , about: , picture: }` describing the user who created the event. [Extra metadata fields](24.md#kind-0) may be set. A relay may delete older events once it gets a new one for the same pubkey. +- `0`: **user's metadata**: the `content` is set to a stringified JSON object `{name: , about: , picture: }` describing the user who created the event. [Extra metadata fields](24.md#kind-0) may be set. A relay may delete older events once it gets a new one for the same pubkey. - `1`: **text note**: the `content` is set to the **plaintext** content of a note (anything the user wants to say). Content that must be parsed, such as Markdown and HTML, should not be used. Clients should also not parse content as those. And also a convention for kind ranges that allow for easier experimentation and flexibility of relay implementation: -- cgit v1.2.3 From 1728f93d17fe399fa6e0911e7bb69d2e159ca572 Mon Sep 17 00:00:00 2001 From: fiatjaf Date: Mon, 17 Jun 2024 12:38:57 -0300 Subject: "user metadata" and fix table on readme. --- 01.md | 2 +- 05.md | 2 +- README.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) (limited to '01.md') diff --git a/01.md b/01.md index 94db77a..60d9785 100644 --- a/01.md +++ b/01.md @@ -87,7 +87,7 @@ As a convention, all single-letter (only english alphabet letters: a-z, A-Z) key Kinds specify how clients should interpret the meaning of each event and the other fields of each event (e.g. an `"r"` tag may have a meaning in an event of kind 1 and an entirely different meaning in an event of kind 10002). Each NIP may define the meaning of a set of kinds that weren't defined elsewhere. This NIP defines two basic kinds: -- `0`: **user's metadata**: the `content` is set to a stringified JSON object `{name: , about: , picture: }` describing the user who created the event. [Extra metadata fields](24.md#kind-0) may be set. A relay may delete older events once it gets a new one for the same pubkey. +- `0`: **user metadata**: the `content` is set to a stringified JSON object `{name: , about: , picture: }` describing the user who created the event. [Extra metadata fields](24.md#kind-0) may be set. A relay may delete older events once it gets a new one for the same pubkey. - `1`: **text note**: the `content` is set to the **plaintext** content of a note (anything the user wants to say). Content that must be parsed, such as Markdown and HTML, should not be used. Clients should also not parse content as those. And also a convention for kind ranges that allow for easier experimentation and flexibility of relay implementation: diff --git a/05.md b/05.md index f3a051c..a1d488d 100644 --- a/05.md +++ b/05.md @@ -6,7 +6,7 @@ Mapping Nostr keys to DNS-based internet identifiers `final` `optional` -On events of kind `0` (`user's metadata`) one can specify the key `"nip05"` with an [internet identifier](https://datatracker.ietf.org/doc/html/rfc5322#section-3.4.1) (an email-like address) as the value. Although there is a link to a very liberal "internet identifier" specification above, NIP-05 assumes the `` part will be restricted to the characters `a-z0-9-_.`, case-insensitive. +On events of kind `0` (`user metadata`) one can specify the key `"nip05"` with an [internet identifier](https://datatracker.ietf.org/doc/html/rfc5322#section-3.4.1) (an email-like address) as the value. Although there is a link to a very liberal "internet identifier" specification above, NIP-05 assumes the `` part will be restricted to the characters `a-z0-9-_.`, case-insensitive. Upon seeing that, the client splits the identifier into `` and `` and use these values to make a GET request to `https:///.well-known/nostr.json?name=`. diff --git a/README.md b/README.md index 067c436..02773a5 100644 --- a/README.md +++ b/README.md @@ -90,7 +90,7 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos ## Event Kinds | kind | description | NIP | | ------------- | -------------------------- | ------------------------ | -| `0` | User's Metadata | [01](01.md) | +| `0` | User Metadata | [01](01.md) | | `1` | Short Text Note | [01](01.md) | | `2` | Recommend Relay | 01 (deprecated) | | `3` | Follows | [02](02.md) | -- cgit v1.2.3 From 4aa18e329a8858ed46727b970c28652c5a0f7b43 Mon Sep 17 00:00:00 2001 From: Arjen Stens <18398758+ArjenStens@users.noreply.github.com> Date: Sun, 23 Jun 2024 02:40:57 +0200 Subject: Clarify which kinds have lifetime of 'regular' (#1315) * Clarify which kinds have lifetime of 'regular' * Missed space * Document kind 41 as replaceable * Revert "Document kind 41 as replaceable" This reverts commit eead2f5a749cfee6de131944e0e73350759e28b4. --- 01.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to '01.md') diff --git a/01.md b/01.md index 60d9785..c11a095 100644 --- a/01.md +++ b/01.md @@ -92,7 +92,7 @@ Kinds specify how clients should interpret the meaning of each event and the oth And also a convention for kind ranges that allow for easier experimentation and flexibility of relay implementation: -- for kind `n` such that `1000 <= n < 10000`, events are **regular**, which means they're all expected to be stored by relays. +- for kind `n` such that `1000 <= n < 10000 || 4 <= n < 45 || n == 1 || n == 2`, events are **regular**, which means they're all expected to be stored by relays. - for kind `n` such that `10000 <= n < 20000 || n == 0 || n == 3`, events are **replaceable**, which means that, for each combination of `pubkey` and `kind`, only the latest event MUST be stored by relays, older versions MAY be discarded. - for kind `n` such that `20000 <= n < 30000`, events are **ephemeral**, which means they are not expected to be stored by relays. - for kind `n` such that `30000 <= n < 40000`, events are **parameterized replaceable**, which means that, for each combination of `pubkey`, `kind` and the `d` tag's first value, only the latest event MUST be stored by relays, older versions MAY be discarded. -- cgit v1.2.3 From 8c47577ecb6b3ae6ad840e5b4d187a3f3a6b97c8 Mon Sep 17 00:00:00 2001 From: Cody Casterline Date: Fri, 5 Jul 2024 09:31:23 -0700 Subject: More precisely document since/until bounds. (#1284) * More precisely document since/until bounds. Lower in this document, this is expressed as "since <= created_at <= until". But the English description said that these values had to be "newer than" or "older than". These two were in conflict. I assume the inclusive behavior is the intended one, since that documentation was added later to clarify. This just makes both cases match. * Update 01.md Co-authored-by: Alex Gleason * Update 01.md Co-authored-by: Alex Gleason --------- Co-authored-by: Alex Gleason --- 01.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to '01.md') diff --git a/01.md b/01.md index c11a095..c7d7273 100644 --- a/01.md +++ b/01.md @@ -125,8 +125,8 @@ Clients can send 3 types of messages, which must be JSON arrays, according to th "authors": , "kinds": , "#": , - "since": , - "until": , + "since": = to this to pass>, + "until": , "limit": } ``` -- cgit v1.2.3 From 9c54549f1842245b842d8a66f3bade744da24189 Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Thu, 18 Jul 2024 22:16:45 -0500 Subject: NIP-01: sort events by id after created_at --- 01.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to '01.md') diff --git a/01.md b/01.md index c7d7273..1da6e83 100644 --- a/01.md +++ b/01.md @@ -143,7 +143,7 @@ All conditions of a filter that are specified must match for an event for it to A `REQ` message may contain multiple filters. In this case, events that match any of the filters are to be returned, i.e., multiple filters are to be interpreted as `||` conditions. -The `limit` property of a filter is only valid for the initial query and MUST be ignored afterwards. When `limit: n` is present it is assumed that the events returned in the initial query will be the last `n` events ordered by the `created_at`. It is safe to return less events than `limit` specifies, but it is expected that relays do not return (much) more events than requested so clients don't get unnecessarily overwhelmed by data. +The `limit` property of a filter is only valid for the initial query and MUST be ignored afterwards. When `limit: n` is present it is assumed that the events returned in the initial query will be the last `n` events ordered by the `created_at`. Newer events should appear first, and in the case of ties the event with the lowest id (first in lexical order) should be first. It is safe to return less events than `limit` specifies, but it is expected that relays do not return (much) more events than requested so clients don't get unnecessarily overwhelmed by data. ### From relay to client: sending events and notices -- cgit v1.2.3