3.4 KiB
NIP-82
Software Applications
draft
optional
This NIP defines kind 32267 to represent a software application.
Application
{
"kind": 32267,
"content": "<description>", // Description of the application, markdown is allowed
"tags": [
["d", "<app-id>"], // Usually reverse domain notation: com.example.app
["name", "<human-readable project name>"], // Name: Example App
["icon", "<icon-url>"], // Icon URL
["image", "<image-url>"], // Image URL, can be used multiple times
["t", "<tag>"], // Tags related to the application, can be used multiple times
["url", "<website-url>"], // Website URL for the app
["repository", "<repo-url>"], // Source code repository URL: https://github.com/example/android
["a", "30617:<destination-pubkey>:<repo-id>", "<relay-url>"], // Pointer to NIP-34 repository
["a", "30063:<destination-pubkey>:<app-id>@<version>"], // Pointer to the latest NIP-51 release artifact set
["commit-id", "<sha1-commit-id>"], // SHA1 commit id used to build the release
["f", "<platform-identifier>"], // Platform identifier, can be used multiple times
["license", "<spdx-id>"] // License ID
]
}
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.
For icon
and image
tags any URL is valid but a Blossom BUD-01 endpoint is recommended.
License IDs are SPDX IDs as defined in https://spdx.org/licenses/.
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.
Platforms
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
:
Identifier | OS | Architecture |
---|---|---|
android-arm64-v8a |
Android | ARMv8-A |
android-armeabi-v7a |
Android | ARMv7-A |
android-x86 |
Android | x86 |
android-x86_64 |
Android | x86-64 |
darwin-arm64 |
MacOS | ARM64 |
darwin-x86_64 |
MacOS | x86-64 |
linux-aarch64 |
Linux | ARM64 |
linux-x86_64 |
Linux | x86-64 |
windows-aarch64 |
Windows | ARM64 |
windows-x86_64 |
Windows | x86-64 |
ios-arm64 |
iOS | ARM64 |
web |
(Web browsers) | - |
Attribution
App authors MAY include their pubkeys as p
tags and zap
tags as per NIP-57 - Appendix G. This is useful in the case of an author other than the one who signed the event, or multiple authors.
Usage
A kind 30063 release artifact set SHOULD have an a
tag reference back to this event, alongside its references to "e"
file metadata events.