mirror of
https://github.com/nostr-protocol/nips.git
synced 2024-11-13 23:39:08 -05:00
3.5 KiB
3.5 KiB
NIPs
NIPs stand for Nostr Implementation Possibilities. They exist to document what MUST, what SHOULD and what MAY be implemented by Nostr-compatible relay and client software.
- NIP-01: Basic protocol flow description
- NIP-02: Contact List and Petnames
- NIP-03: OpenTimestamps Attestations for Events
- NIP-04: Encrypted Direct Message
- NIP-05: Mapping Nostr keys to DNS-based internet identifiers
- NIP-06: Basic key derivation from mnemonic seed phrase
- NIP-07:
window.nostr
capability for web browsers - NIP-08: Handling Mentions
- NIP-09: Event Deletion
- NIP-10: Conventions for clients' use of
e
andp
tags in text events. - NIP-11: Relay Information Document
- NIP-12: Generic Tag Queries
- NIP-13: Proof of Work
- NIP-14: Subject tag in text events.
- NIP-15: End of Stored Events Notice
- NIP-16: Event Treatment
- NIP-22: Event created_at Limits
- NIP-25: Reactions
- NIP-28: Public Chat
Event Kinds
kind | description | NIP |
---|---|---|
0 | Metadata | 1, 5 |
1 | Text | 1 |
2 | Recommend Relay | 1 |
3 | Contacts | 2 |
4 | Encrypted Direct Messages | 4 |
5 | Event Deletion | 9 |
7 | Reaction | 25 |
40 | Channel Creation | 28 |
41 | Channel Metadata | 28 |
42 | Channel Message | 28 |
43 | Channel Hide Message | 28 |
44 | Channel Mute User | 28 |
45-49 | Public Chat Reserved | 28 |
10000-19999 | Replaceable Events Reserved | 16 |
20000-29999 | Ephemeral Events Reserved | 16 |
Message types
Client to Relay
type | description | NIP |
---|---|---|
EVENT | used to publish events | 1 |
REQ | used to request events and subscribe to new updates | 1 |
CLOSE | used to stop previous subscriptions | 1 |
Relay to Client
type | description | NIP |
---|---|---|
EVENT | used to send events requested to clients | 1 |
NOTICE | used to send human-readable messages to clients | 1 |
EOSE | used to notify clients all stored events have been sent | 15 |
Please update these lists when proposing NIPs introducing new event kinds.
When experimenting with kinds, keep in mind the classification introduced by NIP-16.
Criteria for acceptance of NIPs
- They should be implemented somewhere at least as a prototype somewhere.
- They should make sense.
- Other rules will be made up when necessary.
License
All NIPs are public domain.