NIP-73 External Content IDs draft optional
There are certain established global content identifiers such as Book ISBNs , Podcast GUIDs , and Movie ISANs that are useful to reference in nostr events so that clients can query all the events assosiated with these ids.
i tags are used for referencing these external content ids, with k tags representing the external content id kind so that clients can query all the events for a specific kind.
NIP-70 Protected Events draft optional
When the "-" tag is present, that means the event is “protected”.
A protected event is an event that can only be published to relays by its author. This is achieved by relays ensuring that the author is authenticated before publishing their own events or by just rejecting events with ["-"] outright.
The default behavior of a relay MUST be to reject any event that contains ["-"].
NIP-55 Android Signer Application draft optional
This NIP describes a method for 2-way communication between an Android signer and any Nostr client on Android. The Android signer is an Android Application and the client can be a web client or an Android application.
Usage for Android applications The Android signer uses Intents and Content Resolvers to communicate between applications.
To be able to use the Android signer in your application you should add this to your AndroidManifest.
NIP-54 Wiki draft optional
This NIP defines kind:30818 (an addressable event) for descriptions (or encyclopedia entries) of particular subjects, and it’s expected that multiple people will write articles about the exact same subjects, with either small variations or completely independent content.
Articles are identified by lowercase, normalized ascii d tags.
Articles { "content": "A wiki is a hypertext publication collaboratively edited and managed by its own audience.", "tags": [ ["d", "wiki"], ["title", "Wiki"], ] } d tag normalization rules Any non-letter character MUST be converted to a -.
NIP-34 git stuff draft optional
This NIP defines all the ways code collaboration using and adjacent to git can be done using Nostr.
Repository announcements Git repositories are hosted in Git-enabled servers, but their existence can be announced using Nostr events, as well as their willingness to receive patches, bug reports and comments in general.
{ "kind": 30617, "content": "", "tags": [ ["d", "<repo-id>"], // usually kebab-case short name ["name", "<human-readable project name>"], ["description", "brief human-readable project description>"], ["web", "<url for browsing>", .
NIP-92 Media Attachments Media attachments (images, videos, and other files) may be added to events by including a URL in the event content, along with a matching imeta tag.
imeta (“inline metadata”) tags add information about media URLs in the event’s content. Each imeta tag SHOULD match a URL in the event content. Clients may replace imeta URLs with rich previews.
The imeta tag is variadic, and each entry is a space-delimited key/value pair.
NIP-49 Private Key Encryption draft optional
This NIP defines a method by which clients can encrypt (and decrypt) a user’s private key with a password.
Symmetric Encryption Key derivation PASSWORD = Read from the user. The password should be unicode normalized to NFKC format to ensure that the password can be entered identically on other computers/clients.
LOG_N = Let the user or implementer choose one byte representing a power of 2 (e.
NIP-96 HTTP File Storage Integration draft optional
Introduction This NIP defines a REST API for HTTP file storage servers intended to be used in conjunction with the nostr network. The API will enable nostr users to upload files and later reference them by url on nostr notes.
The spec DOES NOT use regular nostr events through websockets for storing, requesting nor retrieving data because, for simplicity, the server will not have to learn anything about nostr relays.
NIP-64 Chess (Portable Game Notation) draft optional
This NIP defines kind:64 notes representing chess games in PGN format, which can be read by humans and is also supported by most chess software.
Note Content The .content of these notes is a string representing a PGN-database .
Notes { "kind": 64, "content": "1. e4 *", // other fields... } { "kind": 64, "tags": [ ["alt", "Fischer vs. Spassky in Belgrade on 1992-11-04 (F/S Return Match, Round 29)"], // rest of tags.
NIP-44 Encrypted Payloads (Versioned) optional
The NIP introduces a new data format for keypair-based encryption. This NIP is versioned to allow multiple algorithm choices to exist simultaneously. This format may be used for many things, but MUST be used in the context of a signed event as described in NIP 01.
Note: this format DOES NOT define any kinds related to a new direct messaging standard, only the encryption required to define one.
NIP-71 Video Events draft optional
This specification defines video events representing a dedicated post of externally hosted content. These video events are addressable and delete-requestable per NIP-09 .
Unlike a kind 1 event with a video attached, Video Events are meant to contain all additional metadata concerning the subject media and to be surfaced in video-specific clients rather than general micro-blogging clients. The thought is for events of this kind to be referenced in a Netflix, YouTube, or TikTok like nostr client where the video itself is at the center of the experience.
NIP-29 Relay-based Groups draft optional
This NIP defines a standard for groups that are only writable by a closed set of users. They can be public for reading by external users or not.
Groups are identified by a random string of any length that serves as an id.
There is no way to create a group, what happens is just that relays (most likely when asked by users) will create rules around some specific ids so these ids can serve as an actual group, henceforth messages sent to that group will be subject to these rules.
NIP-84 Highlights draft optional
This NIP defines kind:9802, a “highlight” event, to signal content a user finds valuable.
Format The .content of these events is the highlighted portion of the text.
.content might be empty for highlights of non-text based media (e.g. NIP-94 audio/video).
References Events SHOULD tag the source of the highlight, whether nostr-native or not. a or e tags should be used for nostr events and r tags for URLs.
NIP-24 Extra metadata fields and tags draft optional
This NIP defines extra optional fields added to events.
kind 0 These are extra fields not specified in NIP-01 that may be present in the stringified JSON of metadata events:
display_name: an alternative, bigger name with richer characters than name. name should always be set regardless of the presence of display_name in the metadata. website: a web URL related in any way to the event author.
NIP-75 Zap Goals draft optional
This NIP defines an event for creating fundraising goals. Users can contribute funds towards the goal by zapping the goal event.
Nostr Event A kind:9041 event is used.
The .content contains a human-readable description of the goal.
The following tags are defined as REQUIRED.
amount - target amount in milisats. relays - a list of relays the zaps to this goal will be sent to and tallied from.
NIP-38 User Statuses draft optional
Abstract This NIP enables a way for users to share live statuses such as what music they are listening to, as well as what they are currently doing: work, play, out of office, etc.
Live Statuses A special event with kind:30315 “User Status” is defined as an optionally expiring addressable event, where the d tag represents the status type:
For example:
{ "kind": 30315, "content": "Sign up for nostrasia!
NIP-59 Gift Wrap optional
This NIP defines a protocol for encapsulating any nostr event. This makes it possible to obscure most metadata for a given event, perform collaborative signing, and more.
This NIP does not define any messaging protocol. Applications of this NIP should be defined separately.
This NIP relies on NIP-44 ’s versioned encryption algorithms.
Overview This protocol uses three main concepts to protect the transmission of a target event: rumors, seals, and gift wraps.
NIP-17 Private Direct Messages draft optional
This NIP defines an encrypted direct messaging scheme using NIP-44 encryption and NIP-59 seals and gift wraps.
Direct Message Kind Kind 14 is a chat message. p tags identify one or more receivers of the message.
{ "id": "<usual hash>", "pubkey": "<sender-pubkey>", "created_at": "<current-time>", "kind": 14, "tags": [ ["p", "<receiver-1-pubkey>", "<relay-url>"], ["p", "<receiver-2-pubkey>", "<relay-url>"], ["e", "<kind-14-id>", "<relay-url>", "reply"] // if this is a reply ["subject", "<conversation-title>"], // rest of tags.
NIP-72 Moderated Communities (Reddit Style) draft optional
The goal of this NIP is to enable public communities. It defines the replaceable event kind:34550 to define the community and the current list of moderators/administrators. Users that want to post into the community, simply tag any Nostr event with the community’s a tag. Moderators may issue an approval event kind:4550.
Community Definition Kind:34550 SHOULD include any field that helps define the community and the set of moderators.
NIP-48 Proxy Tags draft optional
Nostr events bridged from other protocols such as ActivityPub can link back to the source object by including a "proxy" tag, in the form:
["proxy", <id>, <protocol>] Where:
<id> is the ID of the source object. The ID format varies depending on the protocol. The ID must be universally unique, regardless of the protocol. <protocol> is the name of the protocol, e.g. "activitypub". Clients may use this information to reconcile duplicated content bridged from other protocols, or to display a link to the source object.
NIP-90 Data Vending Machine draft optional
This NIP defines the interaction between customers and Service Providers for performing on-demand computation.
Money in, data out.
Kinds This NIP reserves the range 5000-7000 for data vending machine use.
Kind Description 5000-5999 Job request kinds 6000-6999 Job result 7000 Job feedback Job results always use a kind number that is 1000 higher than the job request kind. (e.g. request: kind:5001 gets a result: kind:6001).
NIP-99 Classified Listings draft optional
This NIP defines kind:30402: an addressable event to describe classified listings that list any arbitrary product, service, or other thing for sale or offer and includes enough structured metadata to make them useful.
The category of classifieds includes a very broad range of physical goods, services, work opportunities, rentals, free giveaways, personals, etc. and is distinct from the more strictly structured marketplaces defined in NIP-15 that often sell many units of specific products through very specific channels.
NIP-53 Live Activities draft optional
Service providers want to offer live activities to the Nostr network in such a way that participants can easily log and query by clients. This NIP describes a general framework to advertise the involvement of pubkeys in such live activities.
Concepts Live Event A special event with kind:30311 “Live Event” is defined as an addressable event of public p tags. Each p tag SHOULD have a displayable marker name for the current role (e.
NIP-52 Calendar Events draft optional
This specification defines calendar events representing an occurrence at a specific moment or between moments. These calendar events are addressable and deletable per NIP-09 .
Unlike the term calendar event specific to this NIP, the term event is used broadly in all the NIPs to describe any Nostr event. The distinction is being made here to discern between the two terms.
Calendar Events There are two types of calendar events represented by different kinds: date-based and time-based calendar events.
NIP-89 Recommended Application Handlers draft optional
This NIP describes kind:31989 and kind:31990: a way to discover applications that can handle unknown event-kinds.
Rationale Nostr’s discoverability and transparent event interaction is one of its most interesting/novel mechanics. This NIP provides a simple way for clients to discover applications that handle events of a specific kind to ensure smooth cross-client and cross-kind interactions.
Parties involved There are three actors to this workflow:
NIP-32 Labeling draft optional
This NIP defines two new indexable tags to label events and a new event kind (kind:1985) to attach those labels to existing events. This supports several use cases, including distributed moderation, collection management, license assignment, and content classification.
New Tags:
L denotes a label namespace l denotes a label Label Namespace Tag An L tag can be any string, but publishers SHOULD ensure they are unambiguous by using a well-defined namespace (such as an ISO standard) or reverse domain name notation.
NIP-31 Dealing with unknown event kinds draft optional
When creating a new custom event kind that is part of a custom protocol and isn’t meant to be read as text (like kind:1), clients should use an alt tag to write a short human-readable plaintext summary of what that event is about.
The intent is that social clients, used to display only kind:1 notes, can still show something in case a custom event pops up in their timelines.
NIP-30 Custom Emoji draft optional
Custom emoji may be added to kind 0, kind 1, kind 7 (NIP-25 ) and kind 30315 (NIP-38 ) events by including one or more "emoji" tags, in the form:
["emoji", <shortcode>, <image-url>] Where:
<shortcode> is a name given for the emoji, which MUST be comprised of only alphanumeric characters and underscores. <image-url> is a URL to the corresponding image file of the emoji. For each emoji tag, clients should parse emoji shortcodes (aka “emojify”) like :shortcode: in the event to display custom emoji.
NIP-98 HTTP Auth draft optional
This NIP defines an ephemeral event used to authorize requests to HTTP servers using nostr events.
This is useful for HTTP services which are built for Nostr and deal with Nostr user accounts.
Nostr event A kind 27235 (In reference to RFC 7235 ) event is used.
The content SHOULD be empty.
The following tags MUST be included.
u - absolute URL method - HTTP Request Method Example event:
NIP-47 Nostr Wallet Connect draft optional
Rationale This NIP describes a way for clients to access a remote Lightning wallet through a standardized protocol. Custodians may implement this, or the user may run a bridge that bridges their wallet/node and the Nostr Wallet Connect protocol.
Terms client: Nostr app on any platform that wants to pay Lightning invoices. user: The person using the client, and want’s to connect their wallet app to their client.