Skip to content

Commit bc53923

Browse files
committed
Update kind 32267 to reflect latest usage
1 parent d52b377 commit bc53923

File tree

1 file changed

+36
-15
lines changed

1 file changed

+36
-15
lines changed

82.md

Lines changed: 36 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,67 @@
11
NIP-82
22
======
33

4-
Applications
5-
------------
4+
Software Applications
5+
---------------------
66

77
`draft` `optional`
88

99
This NIP defines kind 32267 to represent a software application.
1010

11-
The description and visuals of an application are optionally provided via a linked [NIP-54](54.md) kind 30818 wiki article.
12-
1311
## Application
1412

1513
```jsonc
1614
{
1715
"kind": 32267,
18-
"content": "",
16+
"content": "<description>", // Description of the application, markdown is allowed
1917
"tags": [
2018
["d", "<app-id>"], // Usually reverse domain notation: com.example.app
21-
["name", "<human-readable project name>"], // Name, in case wiki article is missing
22-
["icon", "<icon-url>"], // Icon URL: https://cdn.zap.store/8a8fc42aed83d76ccb48afd6eec40bb8b15af6296e03a27a9eeab015f07e2a54.png
19+
["name", "<human-readable project name>"], // Name: Example App
20+
["icon", "<icon-url>"], // Icon URL
21+
["image", "<image-url>"], // Image URL, can be used multiple times
22+
["t", "<tag>"], // Tags related to the application, can be used multiple times
23+
["url", "<website-url>"], // Website URL for the app
2324
["repository", "<repo-url>"], // Source code repository URL: https://github.com/example/android
24-
["commit-id", "<sha1-commit-id>"], // SHA1 commit id used to build the release
25-
["a", "30818:<destination-pubkey>:<app-slug>", "<relay-url>"], // Pointer to NIP-54 wiki article
2625
["a", "30617:<destination-pubkey>:<repo-id>", "<relay-url>"], // Pointer to NIP-34 repository
27-
["license", "<spdx-id>"] // License ID from https://spdx.org/licenses/: Apache-2.0
26+
["a", "30063:<destination-pubkey>:<app-id>@<version>"], // Pointer to the latest NIP-51 release artifact set
27+
["commit-id", "<sha1-commit-id>"], // SHA1 commit id used to build the release
28+
["f", "<platform-identifier>"], // Platform identifier, can be used multiple times
29+
["license", "<spdx-id>"] // License ID
2830
]
2931
}
3032
```
3133

32-
All tags are optional except for `d`. Android applications MUST use the application identifier as the `d` tag.
34+
All tags are optional but the `d` tag MUST be present. Applications SHOULD use their application or bundle identifier as the `d` tag, which typically is an ID with dots in reverse-domain notation.
35+
36+
For `icon` and `image` tags any URL is valid but a Blossom [BUD-01](https://github.com/hzrd149/blossom/blob/master/buds/01.md#get-sha256---get-blob) endpoint is recommended.
37+
38+
License IDs are SPDX IDs as defined in https://spdx.org/licenses/.
39+
40+
An `a` tag reference to the latest 30063 event SHOULD be present to facilitate discovering the latest release of an app. Similarly, `f` tags SHOULD be included to describe supported platforms that MUST match predefined identifiers.
3341

34-
The `content` field SHOULD be empty. For `icon` any URL is valid but a Blossom [BUD-01](https://github.com/hzrd149/blossom/blob/master/buds/01.md#get-sha256---get-blob) endpoint is recommended.
42+
### Platforms
3543

36-
Clients SHOULD first check for the availability of the linked kind 30818 to retrieve the app description and display information contained in tags including `title`, `summary`, `image`, `icon`, `url`, `t`, etc. The `name` field MUST be used as fallback if `title` was not available.
44+
Platform is defined as the specific underlying system on which the application is executed, a combination of operating system and hardware architecture. We use the `f` tag for this purpose, with the following identifiers loosely based off `uname -sm`:
3745

38-
Note on [NIP-89](89.md): Not all applications can or should handle nostr events. Those that do MAY choose to publish a NIP-89 event.
46+
| Identifier | OS | Architecture |
47+
| --------- | --- | --- |
48+
| `android-arm64-v8a` | Android | ARMv8-A |
49+
| `android-armeabi-v7a` | Android | ARMv7-A |
50+
| `android-x86` | Android | x86 |
51+
| `android-x86_64` | Android | x86-64 |
52+
| `darwin-arm64` | MacOS | ARM64 |
53+
| `darwin-x86_64` | MacOS | x86-64 |
54+
| `linux-aarch64` | Linux | ARM64 |
55+
| `linux-x86_64` | Linux | x86-64 |
56+
| `windows-aarch64` | Windows | ARM64 |
57+
| `windows-x86_64` | Windows | x86-64 |
58+
| `ios-arm64` | iOS | ARM64 |
59+
| `web` | (Web browsers) | - |
3960

4061
### Attribution
4162

4263
App authors MAY include their pubkeys as `p` tags and `zap` tags as per [NIP-57 - Appendix G](57.md). This is useful in the case of an author other than the one who signed the event, or multiple authors.
4364

4465
## Usage
4566

46-
A kind 30063 [release artifact set](51.md) SHOULD have an `"a"` tag reference to this event, alongside its references to `"e"` [file metadata](94.md) events.
67+
A kind 30063 [release artifact set](51.md) SHOULD have an `a` tag reference back to this event, alongside its references to `"e"` [file metadata](94.md) events.

0 commit comments

Comments
 (0)