App
Kind: 32267 from NIP-82 (PR).
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.
Example
{
"id": "18263af7904801e06e3c9f25d37e0a49ec27751dbe3e11e1b476ed43c04c3ee6",
"pubkey": "78ce6faa72264387284e647ba6938995735ec8c7d5c5a65737e55130f026307d",
"sig": "5c4197e30adfcae065f3a3f0d41ce5da440cf35817b7ebec9cb69bb148fcf5bd1688e44796bd67dcf825272c8947791c7faff81b379ad79298ce0e7944574b14",
"kind": 32267,
"created_at": 1732315685,
"content": "The social permissionless app store",
"tags": [
[
"icon",
"https://cdn.zapstore.dev/5509e42f3ccd45b7011b461dfa16cfd3b5a4d2e34d0af583473f3c63fdc45eb0"
],
[
"name",
"Zapstore"
],
[
"repository",
"https://github.com/zapstore/zapstore"
],
[
"url",
"https://zapstore.dev"
],
[
"license",
"MIT"
],
[
"f",
"android-arm64-v8a"
],
[
"t",
"android"
],
[
"t",
"apk"
],
[
"t",
"app"
],
[
"t",
"appstore"
],
[
"t",
"grapheneos"
],
[
"t",
"lightning"
],
[
"t",
"lightning-network"
],
[
"t",
"nostr"
],
[
"t",
"obtainium"
],
[
"t",
"permissionless"
],
[
"t",
"playstore"
],
[
"t",
"sha256"
],
[
"t",
"social-graph"
],
[
"t",
"weboftrust"
],
[
"a",
"30063:78ce6faa72264387284e647ba6938995735ec8c7d5c5a65737e55130f026307d:dev.zapstore.app@0.1.6"
],
[
"d",
"dev.zapstore.app"
]
]
}