2022-05-01 06:48:57 -04:00
# NIPs
NIPs stand for **Nostr Implementation Possibilities** . They exist to document what MUST, what SHOULD and what MAY be implemented by [Nostr ](https://github.com/fiatjaf/nostr )-compatible _relay_ and _client_ software.
2022-05-01 07:02:54 -04:00
- [NIP-01: Basic protocol flow description ](01.md )
- [NIP-02: Contact List and Petnames ](02.md )
- [NIP-03: OpenTimestamps Attestations for Events ](03.md )
- [NIP-04: Encrypted Direct Message ](04.md )
- [NIP-05: Mapping Nostr keys to DNS-based internet identifiers ](05.md )
- [NIP-06: Basic key derivation from mnemonic seed phrase ](06.md )
2022-05-06 19:54:45 -04:00
- [NIP-07: `window.nostr` capability for web browsers ](07.md )
2022-05-01 07:02:54 -04:00
- [NIP-08: Handling Mentions ](08.md )
- [NIP-09: Event Deletion ](09.md )
2022-05-05 12:07:49 -04:00
- [NIP-10: Conventions for clients' use of `e` and `p` tags in text events. ](10.md )
2022-05-01 07:02:54 -04:00
- [NIP-11: Relay Information Document ](11.md )
- [NIP-12: Generic Tag Queries ](12.md )
2022-05-05 13:45:27 -04:00
- [NIP-13: Proof of Work ](13.md )
2022-05-29 09:58:34 -04:00
- [NIP-14: Subject tag in text events. ](14.md )
- [NIP-15: End of Stored Events Notice ](15.md )
- [NIP-16: Event Treatment ](16.md )
2023-01-02 14:15:42 -05:00
- [NIP-18: Reposts ](18.md )
2022-12-17 11:16:13 -05:00
- [NIP-19: bech32-encoded entities ](19.md )
2022-11-10 13:07:13 -05:00
- [NIP-20: Command Results ](20.md )
2022-08-13 13:54:28 -04:00
- [NIP-22: Event created_at Limits ](22.md )
2022-07-30 12:34:04 -04:00
- [NIP-25: Reactions ](25.md )
2022-11-28 15:31:50 -05:00
- [NIP-26: Delegated Event Signing ](26.md )
2022-09-10 20:52:09 -04:00
- [NIP-28: Public Chat ](28.md )
2023-01-04 08:26:08 -05:00
- [NIP-33: Parameterized Replaceable Events ](33.md )
2022-12-01 18:41:15 -05:00
- [NIP-36: Sensitive Content ](36.md )
2022-12-17 11:16:13 -05:00
- [NIP-40: Expiration Timestamp ](40.md )
2022-05-01 06:48:57 -04:00
## Event Kinds
2022-10-08 07:13:20 -04:00
| kind | description | NIP |
|-------------|-----------------------------|------------------------|
| 0 | Metadata | [1 ](01.md ), [5 ](05.md ) |
| 1 | Text | [1 ](01.md ) |
| 2 | Recommend Relay | [1 ](01.md ) |
| 3 | Contacts | [2 ](02.md ) |
| 4 | Encrypted Direct Messages | [4 ](04.md ) |
| 5 | Event Deletion | [9 ](09.md ) |
2023-01-02 14:15:42 -05:00
| 6 | Repost | [18 ](18.md ) |
2022-10-08 07:13:20 -04:00
| 7 | Reaction | [25 ](25.md ) |
2023-01-07 19:44:22 -05:00
| 13 | Key Invalidation | [41 ](41.md ) |
2022-10-08 07:13:20 -04:00
| 40 | Channel Creation | [28 ](28.md ) |
| 41 | Channel Metadata | [28 ](28.md ) |
| 42 | Channel Message | [28 ](28.md ) |
| 43 | Channel Hide Message | [28 ](28.md ) |
| 44 | Channel Mute User | [28 ](28.md ) |
| 45-49 | Public Chat Reserved | [28 ](28.md ) |
| 10000-19999 | Replaceable Events Reserved | [16 ](16.md ) |
| 20000-29999 | Ephemeral Events Reserved | [16 ](16.md ) |
2022-10-08 07:02:13 -04:00
## Message types
### Client to Relay
| type | description | NIP |
|-------|-----------------------------------------------------|------------|
| EVENT | used to publish events | [1 ](01.md ) |
| REQ | used to request events and subscribe to new updates | [1 ](01.md ) |
| CLOSE | used to stop previous subscriptions | [1 ](01.md ) |
### Relay to Client
2022-10-08 07:13:20 -04:00
| type | description | NIP |
|--------|---------------------------------------------------------|-------------|
| EVENT | used to send events requested to clients | [1 ](01.md ) |
| NOTICE | used to send human-readable messages to clients | [1 ](01.md ) |
| EOSE | used to notify clients all stored events have been sent | [15 ](15.md ) |
2022-11-10 13:07:13 -05:00
| OK | used to notify clients if an EVENT was successuful | [20 ](20.md ) |
2022-10-08 07:02:13 -04:00
Please update these lists when proposing NIPs introducing new event kinds.
2022-05-02 08:30:30 -04:00
2022-07-11 14:40:58 -04:00
When experimenting with kinds, keep in mind the classification introduced by [NIP-16 ](16.md ).
2022-05-02 08:30:30 -04:00
## Criteria for acceptance of NIPs
2023-01-02 05:16:59 -05:00
1. They should be implemented in at least two clients and one relay -- when applicable.
2022-05-02 08:30:30 -04:00
2. They should make sense.
2022-11-29 09:41:46 -05:00
3. They should be optional and backwards-compatible: care must be taken such that clients and relays that choose to not implement them do not stop working when interacting with the ones that choose to.
2023-01-02 05:16:59 -05:00
4. There should be no more than one way of doing the same thing.
5. Other rules will be made up when necessary.
2022-05-02 08:30:30 -04:00
## License
All NIPs are public domain.