upleb.uk

Public git repos — served from a NIP-34 GRASP relay at git.upleb.uk

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam Casarin <jb55@jb55.com>2023-08-23 19:56:20 -0700
committerfiatjaf_ <fiatjaf@gmail.com>2023-08-25 08:40:18 -0300
commitf7b7b865e629789cb4d64b45a836c116e2831cbe (patch)
tree4fad5dd1852c783f44685340893aa2ca35c68fb2
parent208dee210249f84496ddfa823542d023e23b3edb (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.md60
-rw-r--r--README.md2
2 files changed, 62 insertions, 0 deletions
diff --git a/315.md b/315.md
new file mode 100644
index 0000000..0f4f0a1
--- /dev/null
+++ b/315.md
@@ -0,0 +1,60 @@
1
2NIP-315
3=======
4
5User Statuses
6--------------
7
8`draft` `optional` `author:jb55`
9
10## Abstract
11
12This 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
16A 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
18For 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
41Two 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
45Any other status types can be used but they are not defined by this NIP.
46
47The 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
51Clients 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
diff --git a/README.md b/README.md
index f8b77df..f6b57f1 100644
--- a/README.md
+++ b/README.md
@@ -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) |