diff options
| author | William Casarin <jb55@jb55.com> | 2023-08-23 19:56:20 -0700 |
|---|---|---|
| committer | fiatjaf_ <fiatjaf@gmail.com> | 2023-08-25 08:40:18 -0300 |
| commit | f7b7b865e629789cb4d64b45a836c116e2831cbe (patch) | |
| tree | 4fad5dd1852c783f44685340893aa2ca35c68fb2 | |
| parent | 208dee210249f84496ddfa823542d023e23b3edb (diff) | |
NIP-315: User Statuses
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.
| -rw-r--r-- | 315.md | 60 | ||||
| -rw-r--r-- | README.md | 2 |
2 files changed, 62 insertions, 0 deletions
| @@ -0,0 +1,60 @@ | |||
| 1 | |||
| 2 | NIP-315 | ||
| 3 | ======= | ||
| 4 | |||
| 5 | User Statuses | ||
| 6 | -------------- | ||
| 7 | |||
| 8 | `draft` `optional` `author:jb55` | ||
| 9 | |||
| 10 | ## Abstract | ||
| 11 | |||
| 12 | 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. | ||
| 13 | |||
| 14 | ## Live Statuses | ||
| 15 | |||
| 16 | A special event with `kind:30315` "User Status" is defined as an *optionally expiring* _parameterized replaceable event_, where the `d` tag represents the status type: | ||
| 17 | |||
| 18 | For example: | ||
| 19 | |||
| 20 | ```js | ||
| 21 | { | ||
| 22 | "kind": 30315, | ||
| 23 | "content": "Sign up for nostrasia!", | ||
| 24 | "tags": [ | ||
| 25 | ["d", "general"], | ||
| 26 | ["r", "https://nostr.world"] | ||
| 27 | ], | ||
| 28 | } | ||
| 29 | |||
| 30 | { | ||
| 31 | "kind": 30315, | ||
| 32 | "content": "Intergalatic - Beastie Boys", | ||
| 33 | "tags": [ | ||
| 34 | ["d", "music"], | ||
| 35 | ["r", "spotify:search:Intergalatic%20-%20Beastie%20Boys"], | ||
| 36 | ["expiration", "1692845589"] | ||
| 37 | ], | ||
| 38 | } | ||
| 39 | ``` | ||
| 40 | |||
| 41 | Two common status types are defined: `general` and `music`. `general` represent general statuses: "Working", "Hiking", etc. | ||
| 42 | |||
| 43 | `music` status events are for live streaming what you are currently listening to. The expiry of the `music` status should be when the track will stop playing. | ||
| 44 | |||
| 45 | Any other status types can be used but they are not defined by this NIP. | ||
| 46 | |||
| 47 | The status MAY include an `r`, `p`, `e` or `a` tag linking to a URL, profile, note, or parameterized replaceable event. | ||
| 48 | |||
| 49 | # Client behavior | ||
| 50 | |||
| 51 | Clients MAY display this next to the username on posts or profiles to provide live user status information. | ||
| 52 | |||
| 53 | # Use Cases | ||
| 54 | |||
| 55 | * Calendar nostr apps that update your general status when you're in a meeting | ||
| 56 | * Nostr Nests that update your general status with a link to the nest when you join | ||
| 57 | * Nostr music streaming services that update your music status when you're listening | ||
| 58 | * Podcasting apps that update your music status when you're listening to a podcast, with a link for others to listen as well | ||
| 59 | * Clients can use the system media player to update playing music status | ||
| 60 | |||
| @@ -67,6 +67,7 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos | |||
| 67 | - [NIP-94: File Metadata](94.md) | 67 | - [NIP-94: File Metadata](94.md) |
| 68 | - [NIP-98: HTTP Auth](98.md) | 68 | - [NIP-98: HTTP Auth](98.md) |
| 69 | - [NIP-99: Classified Listings](99.md) | 69 | - [NIP-99: Classified Listings](99.md) |
| 70 | - [NIP-315: User Statuses](315.md) | ||
| 70 | 71 | ||
| 71 | ## Event Kinds | 72 | ## Event Kinds |
| 72 | 73 | ||
| @@ -113,6 +114,7 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos | |||
| 113 | | `30024` | Draft Long-form Content | [23](23.md) | | 114 | | `30024` | Draft Long-form Content | [23](23.md) | |
| 114 | | `30078` | Application-specific Data | [78](78.md) | | 115 | | `30078` | Application-specific Data | [78](78.md) | |
| 115 | | `30311` | Live Event | [53](53.md) | | 116 | | `30311` | Live Event | [53](53.md) | |
| 117 | | `30315` | User Statuses | [315](315.md) | | ||
| 116 | | `30402` | Classified Listing | [99](99.md) | | 118 | | `30402` | Classified Listing | [99](99.md) | |
| 117 | | `30403` | Draft Classified Listing | [99](99.md) | | 119 | | `30403` | Draft Classified Listing | [99](99.md) | |
| 118 | | `31922` | Date-Based Calendar Event | [52](52.md) | | 120 | | `31922` | Date-Based Calendar Event | [52](52.md) | |