From a090de2b90f9fd83e49fa39ff4c7ef52750e904b Mon Sep 17 00:00:00 2001 From: frbittencourt Date: Thu, 9 Mar 2023 14:01:19 +0000 Subject: create draft NIP 94 and 95 --- 94.md | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 94.md (limited to '94.md') diff --git a/94.md b/94.md new file mode 100644 index 0000000..06b03c8 --- /dev/null +++ b/94.md @@ -0,0 +1,43 @@ +NIP-94 - File Header +====== +`draft` `optional` `author:frbitten` + +The purpose of this NIP is to allow an organization and classification of shared files. So that relays can filter and organize in any way that is of interest. +Also the goal is to create a base on the protocol for this bountsr "Filesharing App" (https://bountsr.org/p2p-filesharing/) to be implemented. + +Nostr event +------------------ +This NIP specifies the use of the `30063` event type (parameterized replaceable event), having in `content` a description of the file content, and a list of tags described below: +* `d` containing the name of the shared file to allow it to be overwritten in the future. +* `url` the url to download the file +* `type` a string indicating the data type of the file. The MIME types format must be used (https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types) +* `decrypt` (optional) If the file is encrypted, you must indicate in the first value the algorithm used to encrypt the file and in the second value the information (the key) that allow the decryption of the file + +```json +{ + "id": <32-bytes lowercase hex-encoded sha256 of the the serialized event data>, + "pubkey": <32-bytes lowercase hex-encoded public key of the event creator>, + "created_at": , + "kind": 30063, + "tags": [ + ["d", ], + ["url",], + ["decrypt",,], + ["p", <32-bytes hex of a pubkey>, ], + ], + "content": "A beautiful picture of a wild toucan", + "sig": <64-bytes hex of the signature of the sha256 hash of the serialized event data, which is the same as the "id" field> +} + +Client Behavior +--------------- +The client can use this event as they see fit. Either showing events in the same feed as kind 1 events or creating a specific feed for file listings +It allows the app to create image galleries (memes, animations) that can be reused countless times in different notes. As it exists in whatsapp, telegram, etc. Exemple: +To do this, just select the image from the gallery (events NIP-94) and include the URL of the selected image + +Suggested Use Cases +------------------- +* A relay for indexing shared files. For example to promote torrents +* A Pinterest-like relay and app where people can share their portfolio and inspire others. +* A simple way to distribute configurations and software updates. +* Specialized relays can provide collections of emojis, memes and animated gifs to be used in notes. -- cgit v1.2.3 From 342722963b5d6716410166c8e02d7d0b7cabb0f3 Mon Sep 17 00:00:00 2001 From: frbittencourt Date: Thu, 9 Mar 2023 14:04:57 +0000 Subject: fixed json schema --- 94.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to '94.md') diff --git a/94.md b/94.md index 06b03c8..0798d74 100644 --- a/94.md +++ b/94.md @@ -25,7 +25,7 @@ This NIP specifies the use of the `30063` event type (parameterized replaceable ["decrypt",,], ["p", <32-bytes hex of a pubkey>, ], ], - "content": "A beautiful picture of a wild toucan", + "content": , "sig": <64-bytes hex of the signature of the sha256 hash of the serialized event data, which is the same as the "id" field> } -- cgit v1.2.3 From 8ea7c51f9b4fd81e4f5e390881bff43243455d16 Mon Sep 17 00:00:00 2001 From: frbittencourt Date: Thu, 9 Mar 2023 14:08:52 +0000 Subject: add hash tag --- 94.md | 1 + 95.md | 1 + 2 files changed, 2 insertions(+) (limited to '94.md') diff --git a/94.md b/94.md index 0798d74..7712171 100644 --- a/94.md +++ b/94.md @@ -24,6 +24,7 @@ This NIP specifies the use of the `30063` event type (parameterized replaceable ["url",], ["decrypt",,], ["p", <32-bytes hex of a pubkey>, ], + ["hash",< SHA256 hexencoded string of the file> ], "content": , "sig": <64-bytes hex of the signature of the sha256 hash of the serialized event data, which is the same as the "id" field> diff --git a/95.md b/95.md index ffb3906..4c2dde8 100644 --- a/95.md +++ b/95.md @@ -25,6 +25,7 @@ The `NIP-94` can be used to broadcast the ID of that event, with the ` and ` tag ["d", ], ["decrypt",,], ["p", <32-bytes hex of a pubkey>, ], + ["hash",< SHA256 hexencoded string of the raw data>] ], "content": , "sig": <64-bytes hex of the signature of the sha256 hash of the serialized event data, which is the same as the "id" field> -- cgit v1.2.3 From d212622ed113b9c19bab160c484c3c25fba6131f Mon Sep 17 00:00:00 2001 From: frbittencourt Date: Fri, 10 Mar 2023 10:04:00 +0000 Subject: fix format text in md --- 94.md | 3 ++- 95.md | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) (limited to '94.md') diff --git a/94.md b/94.md index 7712171..feead69 100644 --- a/94.md +++ b/94.md @@ -29,11 +29,12 @@ This NIP specifies the use of the `30063` event type (parameterized replaceable "content": , "sig": <64-bytes hex of the signature of the sha256 hash of the serialized event data, which is the same as the "id" field> } +``` Client Behavior --------------- The client can use this event as they see fit. Either showing events in the same feed as kind 1 events or creating a specific feed for file listings -It allows the app to create image galleries (memes, animations) that can be reused countless times in different notes. As it exists in whatsapp, telegram, etc. Exemple: +It allows the app to create image galleries (memes, animations) that can be reused countless times in different notes. As it exists in whatsapp, telegram, etc. Exemple: ![example](https://ibb.co/Fnj5TMg) To do this, just select the image from the gallery (events NIP-94) and include the URL of the selected image Suggested Use Cases diff --git a/95.md b/95.md index 4c2dde8..755471f 100644 --- a/95.md +++ b/95.md @@ -30,6 +30,7 @@ The `NIP-94` can be used to broadcast the ID of that event, with the ` and ` tag "content": , "sig": <64-bytes hex of the signature of the sha256 hash of the serialized event data, which is the same as the "id" field> } +``` Relay Behavior --------------- @@ -43,7 +44,7 @@ Client Behavior --------------- The client can use this event for any type of storage it wants. The functionality of uploading an image directly through the client's interface and including it in the note that is being created is a very useful facility for the end user. In this case, 3 events would be created. Kind 30064 with the file converted to base64, Kind 30063 which is the header of this file for dissemination and Kind 1 with the post and the image. -Also, when used in conjunction with `NIP-94`, it allows the app to create image galleries (memes, animations) that can be reused countless times in different notes. As it exists in whatsapp, tegegran, etc.Exemple: . To do this, just select the image from the gallery (events NIP-94) and include the URL of the selected image +Also, when used in conjunction with `NIP-94`, it allows the app to create image galleries (memes, animations) that can be reused countless times in different notes. As it exists in whatsapp, tegegran, etc.Exemple: ![example](https://ibb.co/Fnj5TMg). To do this, just select the image from the gallery (events NIP-94) and include the URL of the selected image Suggested Use Cases ------------------- -- cgit v1.2.3 From 64797e7910a7dd143c22c28d29e7d6108db806b3 Mon Sep 17 00:00:00 2001 From: frbittencourt Date: Fri, 10 Mar 2023 10:07:49 +0000 Subject: fix example image --- 94.md | 2 +- 95.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to '94.md') diff --git a/94.md b/94.md index feead69..5f5a14a 100644 --- a/94.md +++ b/94.md @@ -34,7 +34,7 @@ This NIP specifies the use of the `30063` event type (parameterized replaceable Client Behavior --------------- The client can use this event as they see fit. Either showing events in the same feed as kind 1 events or creating a specific feed for file listings -It allows the app to create image galleries (memes, animations) that can be reused countless times in different notes. As it exists in whatsapp, telegram, etc. Exemple: ![example](https://ibb.co/Fnj5TMg) +It allows the app to create image galleries (memes, animations) that can be reused countless times in different notes. As it exists in whatsapp, telegram, etc. Exemple: To do this, just select the image from the gallery (events NIP-94) and include the URL of the selected image Suggested Use Cases diff --git a/95.md b/95.md index 755471f..3653f2b 100644 --- a/95.md +++ b/95.md @@ -44,7 +44,7 @@ Client Behavior --------------- The client can use this event for any type of storage it wants. The functionality of uploading an image directly through the client's interface and including it in the note that is being created is a very useful facility for the end user. In this case, 3 events would be created. Kind 30064 with the file converted to base64, Kind 30063 which is the header of this file for dissemination and Kind 1 with the post and the image. -Also, when used in conjunction with `NIP-94`, it allows the app to create image galleries (memes, animations) that can be reused countless times in different notes. As it exists in whatsapp, tegegran, etc.Exemple: ![example](https://ibb.co/Fnj5TMg). To do this, just select the image from the gallery (events NIP-94) and include the URL of the selected image +Also, when used in conjunction with `NIP-94`, it allows the app to create image galleries (memes, animations) that can be reused countless times in different notes. As it exists in whatsapp, tegegran, etc.Exemple: . To do this, just select the image from the gallery (events NIP-94) and include the URL of the selected image Suggested Use Cases ------------------- -- cgit v1.2.3 From 475bcb6314beafb29e480f70a114947e7c301776 Mon Sep 17 00:00:00 2001 From: frbittencourt Date: Fri, 10 Mar 2023 10:09:38 +0000 Subject: minor fix --- 94.md | 3 ++- 95.md | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) (limited to '94.md') diff --git a/94.md b/94.md index 5f5a14a..4963f85 100644 --- a/94.md +++ b/94.md @@ -34,7 +34,8 @@ This NIP specifies the use of the `30063` event type (parameterized replaceable Client Behavior --------------- The client can use this event as they see fit. Either showing events in the same feed as kind 1 events or creating a specific feed for file listings -It allows the app to create image galleries (memes, animations) that can be reused countless times in different notes. As it exists in whatsapp, telegram, etc. Exemple: +It allows the app to create image galleries (memes, animations) that can be reused countless times in different notes. As it exists in whatsapp, telegram, etc. +Example: To do this, just select the image from the gallery (events NIP-94) and include the URL of the selected image Suggested Use Cases diff --git a/95.md b/95.md index 3653f2b..16536ab 100644 --- a/95.md +++ b/95.md @@ -44,7 +44,9 @@ Client Behavior --------------- The client can use this event for any type of storage it wants. The functionality of uploading an image directly through the client's interface and including it in the note that is being created is a very useful facility for the end user. In this case, 3 events would be created. Kind 30064 with the file converted to base64, Kind 30063 which is the header of this file for dissemination and Kind 1 with the post and the image. -Also, when used in conjunction with `NIP-94`, it allows the app to create image galleries (memes, animations) that can be reused countless times in different notes. As it exists in whatsapp, tegegran, etc.Exemple: . To do this, just select the image from the gallery (events NIP-94) and include the URL of the selected image +Also, when used in conjunction with `NIP-94`, it allows the app to create image galleries (memes, animations) that can be reused countless times in different notes. As it exists in whatsapp, tegegran, etc. +Example: . +To do this, just select the image from the gallery (events NIP-94) and include the URL of the selected image Suggested Use Cases ------------------- -- cgit v1.2.3 From ac515573a0cf039174e850dd60ed79a60487cc2e Mon Sep 17 00:00:00 2001 From: frbittencourt Date: Fri, 10 Mar 2023 10:11:55 +0000 Subject: ajusts formt text --- 94.md | 6 +++++- 95.md | 2 ++ 2 files changed, 7 insertions(+), 1 deletion(-) (limited to '94.md') diff --git a/94.md b/94.md index 4963f85..1b5d8db 100644 --- a/94.md +++ b/94.md @@ -33,11 +33,15 @@ This NIP specifies the use of the `30063` event type (parameterized replaceable Client Behavior --------------- -The client can use this event as they see fit. Either showing events in the same feed as kind 1 events or creating a specific feed for file listings +The client can use this event as they see fit. Either showing events in the same feed as kind 1 events or creating a specific feed for file listings. + It allows the app to create image galleries (memes, animations) that can be reused countless times in different notes. As it exists in whatsapp, telegram, etc. + Example: + To do this, just select the image from the gallery (events NIP-94) and include the URL of the selected image + Suggested Use Cases ------------------- * A relay for indexing shared files. For example to promote torrents diff --git a/95.md b/95.md index 16536ab..6f7612f 100644 --- a/95.md +++ b/95.md @@ -45,7 +45,9 @@ Client Behavior The client can use this event for any type of storage it wants. The functionality of uploading an image directly through the client's interface and including it in the note that is being created is a very useful facility for the end user. In this case, 3 events would be created. Kind 30064 with the file converted to base64, Kind 30063 which is the header of this file for dissemination and Kind 1 with the post and the image. Also, when used in conjunction with `NIP-94`, it allows the app to create image galleries (memes, animations) that can be reused countless times in different notes. As it exists in whatsapp, tegegran, etc. + Example: . + To do this, just select the image from the gallery (events NIP-94) and include the URL of the selected image Suggested Use Cases -- cgit v1.2.3 From 9d69bd05dcdaa1ee19078937a6150e2720bf9ba5 Mon Sep 17 00:00:00 2001 From: frbittencourt Date: Fri, 10 Mar 2023 10:15:01 +0000 Subject: ajusts decrypt tag --- 94.md | 2 +- 95.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to '94.md') diff --git a/94.md b/94.md index 1b5d8db..51ec1e2 100644 --- a/94.md +++ b/94.md @@ -22,7 +22,7 @@ This NIP specifies the use of the `30063` event type (parameterized replaceable "tags": [ ["d", ], ["url",], - ["decrypt",,], + ["decrypt",,], ["p", <32-bytes hex of a pubkey>, ], ["hash",< SHA256 hexencoded string of the file> ], diff --git a/95.md b/95.md index 6f7612f..292d04c 100644 --- a/95.md +++ b/95.md @@ -23,7 +23,7 @@ The `NIP-94` can be used to broadcast the ID of that event, with the ` and ` tag "kind": 30064, "tags": [ ["d", ], - ["decrypt",,], + ["decrypt",,], ["p", <32-bytes hex of a pubkey>, ], ["hash",< SHA256 hexencoded string of the raw data>] ], -- cgit v1.2.3 From 747517f2c462ad603ee5b0b75c20693ef3913363 Mon Sep 17 00:00:00 2001 From: frbittencourt Date: Fri, 10 Mar 2023 10:18:53 +0000 Subject: ajusts description of decrypt tag --- 94.md | 2 +- 95.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to '94.md') diff --git a/94.md b/94.md index 51ec1e2..7051ee6 100644 --- a/94.md +++ b/94.md @@ -11,7 +11,7 @@ This NIP specifies the use of the `30063` event type (parameterized replaceable * `d` containing the name of the shared file to allow it to be overwritten in the future. * `url` the url to download the file * `type` a string indicating the data type of the file. The MIME types format must be used (https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types) -* `decrypt` (optional) If the file is encrypted, you must indicate in the first value the algorithm used to encrypt the file and in the second value the information (the key) that allow the decryption of the file +* `decrypt` (optional) If the file is encrypted, you must indicate in the first value the algorithm used to encrypt the file and in the second value the parameters that allow the decryption of the file ```json { diff --git a/95.md b/95.md index 292d04c..00132df 100644 --- a/95.md +++ b/95.md @@ -9,7 +9,7 @@ Nostr event This NIP specifies the use of the `30064` event type (parameterized replaceable event), having in `content` the binary data that you want to be stored in Base64 format. * `d` containing the name of the shared file to allow it to be overwritten in the future. * `type` a string indicating the data type of the file. The MIME types format must be used (https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types) -* `decrypt` (optional) If the file is encrypted, you must indicate in the first value the algorithm used to encrypt the file and in the second value the information (the key) that allow the decryption of the file +* `decrypt` (optional) If the file is encrypted, you must indicate in the first value the algorithm used to encrypt the file and in the second value the parameters that allow the decryption of the file This event must not be returned in generic searches. It should only be returned if specifically requested by your ID. This avoids bandwidth consumption and unnecessary overload on the relay and client. -- cgit v1.2.3 From 2b8f12caab99f465785d17e5ac3532e52ca9c93e Mon Sep 17 00:00:00 2001 From: Fernando Bittencourt Date: Fri, 17 Mar 2023 13:29:22 +0000 Subject: Update 94.md suggestion by arthurfranca Co-authored-by: arthurfranca --- 94.md | 1 - 1 file changed, 1 deletion(-) (limited to '94.md') diff --git a/94.md b/94.md index 7051ee6..21eefc9 100644 --- a/94.md +++ b/94.md @@ -8,7 +8,6 @@ Also the goal is to create a base on the protocol for this bountsr "Filesharing Nostr event ------------------ This NIP specifies the use of the `30063` event type (parameterized replaceable event), having in `content` a description of the file content, and a list of tags described below: -* `d` containing the name of the shared file to allow it to be overwritten in the future. * `url` the url to download the file * `type` a string indicating the data type of the file. The MIME types format must be used (https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types) * `decrypt` (optional) If the file is encrypted, you must indicate in the first value the algorithm used to encrypt the file and in the second value the parameters that allow the decryption of the file -- cgit v1.2.3 From fddce814a37e66ba9eaf1f1f1f089ce7761309ec Mon Sep 17 00:00:00 2001 From: Fernando Bittencourt Date: Fri, 17 Mar 2023 13:29:55 +0000 Subject: Update 94.md change tag hash with suggestion by arthurfranca Co-authored-by: arthurfranca --- 94.md | 1 + 1 file changed, 1 insertion(+) (limited to '94.md') diff --git a/94.md b/94.md index 21eefc9..13cd231 100644 --- a/94.md +++ b/94.md @@ -11,6 +11,7 @@ This NIP specifies the use of the `30063` event type (parameterized replaceable * `url` the url to download the file * `type` a string indicating the data type of the file. The MIME types format must be used (https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types) * `decrypt` (optional) If the file is encrypted, you must indicate in the first value the algorithm used to encrypt the file and in the second value the parameters that allow the decryption of the file +* `hash` containing the SHA-256 hexencoded string of the file or the BlurHash string (for images). The third array value is the lowercase chosen algorithm name: "sha256" or "blurhash". ```json { -- cgit v1.2.3 From 6b9d93c2857dd4714675543f45e7f55a653d1ff5 Mon Sep 17 00:00:00 2001 From: Fernando Bittencourt Date: Fri, 17 Mar 2023 13:31:22 +0000 Subject: Update 94.md change hash tag with suggestion by arthutfranca Co-authored-by: arthurfranca --- 94.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to '94.md') diff --git a/94.md b/94.md index 13cd231..13315e0 100644 --- a/94.md +++ b/94.md @@ -24,7 +24,7 @@ This NIP specifies the use of the `30063` event type (parameterized replaceable ["url",], ["decrypt",,], ["p", <32-bytes hex of a pubkey>, ], - ["hash",< SHA256 hexencoded string of the file> + ["hash", "LKN]Rv%2Tw=w]~RBVZRi};RPxuwH", "blurhash"] ], "content": , "sig": <64-bytes hex of the signature of the sha256 hash of the serialized event data, which is the same as the "id" field> -- cgit v1.2.3 From 088c3bba1d730dcc80b376153288f918005ca3ce Mon Sep 17 00:00:00 2001 From: Fernando Bittencourt Date: Fri, 17 Mar 2023 13:34:04 +0000 Subject: Update 94.md fixed by arthurfranca Co-authored-by: arthurfranca --- 94.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to '94.md') diff --git a/94.md b/94.md index 13315e0..81e2bf2 100644 --- a/94.md +++ b/94.md @@ -23,7 +23,7 @@ This NIP specifies the use of the `30063` event type (parameterized replaceable ["d", ], ["url",], ["decrypt",,], - ["p", <32-bytes hex of a pubkey>, ], + ["type", "image/webp"], ["hash", "LKN]Rv%2Tw=w]~RBVZRi};RPxuwH", "blurhash"] ], "content": , -- cgit v1.2.3 From 40fa44b0fc0f358995bf8c162087a11173d912cc Mon Sep 17 00:00:00 2001 From: Fernando Bittencourt Date: Fri, 17 Mar 2023 13:34:21 +0000 Subject: Update 94.md change to regular event Co-authored-by: arthurfranca --- 94.md | 1 - 1 file changed, 1 deletion(-) (limited to '94.md') diff --git a/94.md b/94.md index 81e2bf2..dfc77d9 100644 --- a/94.md +++ b/94.md @@ -20,7 +20,6 @@ This NIP specifies the use of the `30063` event type (parameterized replaceable "created_at": , "kind": 30063, "tags": [ - ["d", ], ["url",], ["decrypt",,], ["type", "image/webp"], -- cgit v1.2.3 From bd32adfc2aba90b3a3e486c7b856c93480301992 Mon Sep 17 00:00:00 2001 From: frbittencourt Date: Fri, 17 Mar 2023 13:41:46 +0000 Subject: change to regular event --- 94.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to '94.md') diff --git a/94.md b/94.md index dfc77d9..533b49c 100644 --- a/94.md +++ b/94.md @@ -7,7 +7,7 @@ Also the goal is to create a base on the protocol for this bountsr "Filesharing Nostr event ------------------ -This NIP specifies the use of the `30063` event type (parameterized replaceable event), having in `content` a description of the file content, and a list of tags described below: +This NIP specifies the use of the `1063` event type (parameterized replaceable event), having in `content` a description of the file content, and a list of tags described below: * `url` the url to download the file * `type` a string indicating the data type of the file. The MIME types format must be used (https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types) * `decrypt` (optional) If the file is encrypted, you must indicate in the first value the algorithm used to encrypt the file and in the second value the parameters that allow the decryption of the file @@ -18,12 +18,12 @@ This NIP specifies the use of the `30063` event type (parameterized replaceable "id": <32-bytes lowercase hex-encoded sha256 of the the serialized event data>, "pubkey": <32-bytes lowercase hex-encoded public key of the event creator>, "created_at": , - "kind": 30063, + "kind": 1063, "tags": [ ["url",], ["decrypt",,], - ["type", "image/webp"], - ["hash", "LKN]Rv%2Tw=w]~RBVZRi};RPxuwH", "blurhash"] + ["type", ], + ["hash", "LKN]Rv%2Tw=w]~RBVZRi};RPxuwH", <"blurhash" or "sha256">] ], "content": , "sig": <64-bytes hex of the signature of the sha256 hash of the serialized event data, which is the same as the "id" field> -- cgit v1.2.3 From f766a850cd6cc72f35681906b519031745cbc5a8 Mon Sep 17 00:00:00 2001 From: Fernando Bittencourt Date: Tue, 28 Mar 2023 09:57:56 +0100 Subject: Apply suggestions from code review add sugestion of arthurfranca and nryo-o Co-authored-by: arthurfranca Co-authored-by: Ryo_o <127748188+nryo-o@users.noreply.github.com> --- 94.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to '94.md') diff --git a/94.md b/94.md index 533b49c..005ef26 100644 --- a/94.md +++ b/94.md @@ -8,7 +8,7 @@ Also the goal is to create a base on the protocol for this bountsr "Filesharing Nostr event ------------------ This NIP specifies the use of the `1063` event type (parameterized replaceable event), having in `content` a description of the file content, and a list of tags described below: -* `url` the url to download the file +* `r` the url to download the file, without trailing slash * `type` a string indicating the data type of the file. The MIME types format must be used (https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types) * `decrypt` (optional) If the file is encrypted, you must indicate in the first value the algorithm used to encrypt the file and in the second value the parameters that allow the decryption of the file * `hash` containing the SHA-256 hexencoded string of the file or the BlurHash string (for images). The third array value is the lowercase chosen algorithm name: "sha256" or "blurhash". @@ -20,7 +20,7 @@ This NIP specifies the use of the `1063` event type (parameterized replaceable e "created_at": , "kind": 1063, "tags": [ - ["url",], + ["r",], ["decrypt",,], ["type", ], ["hash", "LKN]Rv%2Tw=w]~RBVZRi};RPxuwH", <"blurhash" or "sha256">] -- cgit v1.2.3 From bfd2a0fc38f85371a85f47891565f410ed0af48f Mon Sep 17 00:00:00 2001 From: frbittencourt Date: Wed, 5 Apr 2023 15:11:59 +0100 Subject: fixed text description --- 94.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to '94.md') diff --git a/94.md b/94.md index 005ef26..78c7056 100644 --- a/94.md +++ b/94.md @@ -7,8 +7,8 @@ Also the goal is to create a base on the protocol for this bountsr "Filesharing Nostr event ------------------ -This NIP specifies the use of the `1063` event type (parameterized replaceable event), having in `content` a description of the file content, and a list of tags described below: -* `r` the url to download the file, without trailing slash +This NIP specifies the use of the `1063` event type, having in `content` a description of the file content, and a list of tags described below: +* `r` the url to download the file * `type` a string indicating the data type of the file. The MIME types format must be used (https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types) * `decrypt` (optional) If the file is encrypted, you must indicate in the first value the algorithm used to encrypt the file and in the second value the parameters that allow the decryption of the file * `hash` containing the SHA-256 hexencoded string of the file or the BlurHash string (for images). The third array value is the lowercase chosen algorithm name: "sha256" or "blurhash". -- cgit v1.2.3 From 34af61df41f7e6c7668cd2c6fbce17042503751e Mon Sep 17 00:00:00 2001 From: frbittencourt Date: Wed, 12 Apr 2023 14:03:52 +0100 Subject: nip update to reach consensus with other nips --- 94.md | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) (limited to '94.md') diff --git a/94.md b/94.md index 78c7056..5c12565 100644 --- a/94.md +++ b/94.md @@ -8,10 +8,14 @@ Also the goal is to create a base on the protocol for this bountsr "Filesharing Nostr event ------------------ This NIP specifies the use of the `1063` event type, having in `content` a description of the file content, and a list of tags described below: -* `r` the url to download the file -* `type` a string indicating the data type of the file. The MIME types format must be used (https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types) -* `decrypt` (optional) If the file is encrypted, you must indicate in the first value the algorithm used to encrypt the file and in the second value the parameters that allow the decryption of the file -* `hash` containing the SHA-256 hexencoded string of the file or the BlurHash string (for images). The third array value is the lowercase chosen algorithm name: "sha256" or "blurhash". +* `url` the url to download the file +* `m` a string indicating the data type of the file. The MIME types format must be used (https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types) +* `"aes-256-gcm"` (optional) key and nonce for AES-GCM encryption with tagSize always 128bits +* `x` containing the SHA-256 hexencoded string of the file. +* `size` (optional) size of file in bytes +* `magnet` (optional) URI to magnet file +* `i` (optional) torrent infohash +* `blurhash`(optional) for cosmetic purposes ```json { @@ -20,10 +24,14 @@ This NIP specifies the use of the `1063` event type, having in `content` a descr "created_at": , "kind": 1063, "tags": [ - ["r",], - ["decrypt",,], - ["type", ], - ["hash", "LKN]Rv%2Tw=w]~RBVZRi};RPxuwH", <"blurhash" or "sha256">] + ["url",], + ["aes-256-gcm",, ], + ["m", ], + ["x",], + ["size", ], + ["magnet", ], + ["i",], + ["blurhash", ] ], "content": , "sig": <64-bytes hex of the signature of the sha256 hash of the serialized event data, which is the same as the "id" field> -- cgit v1.2.3 From bf8f8e2708ad8bd45c60429c161c0706f8cfdf14 Mon Sep 17 00:00:00 2001 From: Vivek Ganesan Date: Mon, 24 Apr 2023 16:41:00 +0530 Subject: blurhash explanation --- 94.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to '94.md') diff --git a/94.md b/94.md index 5c12565..87b0f3a 100644 --- a/94.md +++ b/94.md @@ -15,7 +15,7 @@ This NIP specifies the use of the `1063` event type, having in `content` a descr * `size` (optional) size of file in bytes * `magnet` (optional) URI to magnet file * `i` (optional) torrent infohash -* `blurhash`(optional) for cosmetic purposes +* `blurhash`(optional) the [blurhash](https://github.com/woltapp/blurhash) to show while the file is being loaded by the client ```json { -- cgit v1.2.3 From 5d0cbcbebfde5b3a32bf8c6fda12cfde40c1bb65 Mon Sep 17 00:00:00 2001 From: fiatjaf Date: Mon, 24 Apr 2023 14:57:37 -0300 Subject: reword NIP-94 to remove confusion. --- 94.md | 36 ++++++++++++++---------------------- README.md | 2 +- 2 files changed, 15 insertions(+), 23 deletions(-) (limited to '94.md') diff --git a/94.md b/94.md index 87b0f3a..d29548e 100644 --- a/94.md +++ b/94.md @@ -1,13 +1,17 @@ -NIP-94 - File Header +NIP-94 ====== -`draft` `optional` `author:frbitten` -The purpose of this NIP is to allow an organization and classification of shared files. So that relays can filter and organize in any way that is of interest. -Also the goal is to create a base on the protocol for this bountsr "Filesharing App" (https://bountsr.org/p2p-filesharing/) to be implemented. +File Metadata +------------- + +`draft` `optional` `author:frbitten` `author:kieran` `author:lovvtide` `author:fiatjaf` + +The purpose of this NIP is to allow an organization and classification of shared files. So that relays can filter and organize in any way that is of interest. With that, multiple types of filesharing clients can be created. NIP-94 support is not expected to be implemented by "social" clients that deal with kind:1 notes or by longform clients that deal with kind:30023 articles. + +## Event format -Nostr event ------------------- This NIP specifies the use of the `1063` event type, having in `content` a description of the file content, and a list of tags described below: + * `url` the url to download the file * `m` a string indicating the data type of the file. The MIME types format must be used (https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types) * `"aes-256-gcm"` (optional) key and nonce for AES-GCM encryption with tagSize always 128bits @@ -15,7 +19,7 @@ This NIP specifies the use of the `1063` event type, having in `content` a descr * `size` (optional) size of file in bytes * `magnet` (optional) URI to magnet file * `i` (optional) torrent infohash -* `blurhash`(optional) the [blurhash](https://github.com/woltapp/blurhash) to show while the file is being loaded by the client +* `blurhash`(optional) the [blurhash](https://github.com/woltapp/blurhash) to show while the file is being loaded by the client ```json { @@ -38,20 +42,8 @@ This NIP specifies the use of the `1063` event type, having in `content` a descr } ``` -Client Behavior ---------------- -The client can use this event as they see fit. Either showing events in the same feed as kind 1 events or creating a specific feed for file listings. - -It allows the app to create image galleries (memes, animations) that can be reused countless times in different notes. As it exists in whatsapp, telegram, etc. - -Example: - -To do this, just select the image from the gallery (events NIP-94) and include the URL of the selected image - +## Suggested use cases -Suggested Use Cases -------------------- -* A relay for indexing shared files. For example to promote torrents -* A Pinterest-like relay and app where people can share their portfolio and inspire others. +* A relay for indexing shared files. For example, to promote torrents. +* A pinterest-like client where people can share their portfolio and inspire others. * A simple way to distribute configurations and software updates. -* Specialized relays can provide collections of emojis, memes and animated gifs to be used in notes. diff --git a/README.md b/README.md index fb0ddb7..0a00d0e 100644 --- a/README.md +++ b/README.md @@ -59,7 +59,7 @@ They exist to document what may be implemented by [Nostr](https://github.com/fia - [NIP-58: Badges](58.md) - [NIP-65: Relay List Metadata](65.md) - [NIP-78: Application-specific data](78.md) -- [NIP-94: File Header](94.md) +- [NIP-94: File Metadata](94.md) ## Event Kinds -- cgit v1.2.3 From 346036208ccca6f31313f1e909ff17ea3563fb46 Mon Sep 17 00:00:00 2001 From: Jonathan Staab Date: Fri, 28 Apr 2023 10:21:18 -0500 Subject: Add dim tag to NIP 94 --- 94.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to '94.md') diff --git a/94.md b/94.md index d29548e..24dd346 100644 --- a/94.md +++ b/94.md @@ -4,7 +4,7 @@ NIP-94 File Metadata ------------- -`draft` `optional` `author:frbitten` `author:kieran` `author:lovvtide` `author:fiatjaf` +`draft` `optional` `author:frbitten` `author:kieran` `author:lovvtide` `author:fiatjaf` `author:staab` The purpose of this NIP is to allow an organization and classification of shared files. So that relays can filter and organize in any way that is of interest. With that, multiple types of filesharing clients can be created. NIP-94 support is not expected to be implemented by "social" clients that deal with kind:1 notes or by longform clients that deal with kind:30023 articles. @@ -17,6 +17,7 @@ This NIP specifies the use of the `1063` event type, having in `content` a descr * `"aes-256-gcm"` (optional) key and nonce for AES-GCM encryption with tagSize always 128bits * `x` containing the SHA-256 hexencoded string of the file. * `size` (optional) size of file in bytes +* `dim` (optional) size of file in pixels in the form `x` * `magnet` (optional) URI to magnet file * `i` (optional) torrent infohash * `blurhash`(optional) the [blurhash](https://github.com/woltapp/blurhash) to show while the file is being loaded by the client @@ -33,6 +34,7 @@ This NIP specifies the use of the `1063` event type, having in `content` a descr ["m", ], ["x",], ["size", ], + ["dim", ], ["magnet", ], ["i",], ["blurhash", ] -- cgit v1.2.3