mirror of
https://github.com/nostr-protocol/nips.git
synced 2025-08-27 20:50:46 -04:00
01.md
02.md
03.md
04.md
05.md
06.md
07.md
08.md
09.md
10.md
11.md
12.md
13.md
14.md
15.md
16.md
17.md
18.md
19.md
20.md
21.md
22.md
23.md
24.md
25.md
26.md
27.md
28.md
29.md
30.md
31.md
32.md
33.md
34.md
35.md
36.md
37.md
38.md
39.md
40.md
42.md
44.md
45.md
46.md
47.md
48.md
49.md
50.md
51.md
52.md
53.md
54.md
55.md
56.md
57.md
58.md
59.md
60.md
61.md
62.md
64.md
65.md
66.md
68.md
69.md
70.md
71.md
72.md
73.md
75.md
78.md
7D.md
84.md
86.md
88.md
89.md
90.md
92.md
94.md
96.md
98.md
99.md
BREAKING.md
C0.md
C7.md
README.md
as noticed by @bezysoftware at https://github.com/nostr-protocol/nips/pull/1437#issuecomment-2380626514.
I don't know how so many of these instances were left from the original PR at following ca3c52e3e7
.
64 lines
2.0 KiB
Markdown
64 lines
2.0 KiB
Markdown
|
|
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:
|
|
|
|
```json
|
|
{
|
|
"kind": 30315,
|
|
"content": "Sign up for nostrasia!",
|
|
"tags": [
|
|
["d", "general"],
|
|
["r", "https://nostr.world"]
|
|
],
|
|
}
|
|
```
|
|
|
|
```json
|
|
{
|
|
"kind": 30315,
|
|
"content": "Intergalatic - Beastie Boys",
|
|
"tags": [
|
|
["d", "music"],
|
|
["r", "spotify:search:Intergalatic%20-%20Beastie%20Boys"],
|
|
["expiration", "1692845589"]
|
|
],
|
|
}
|
|
```
|
|
|
|
Two common status types are defined: `general` and `music`. `general` represent general statuses: "Working", "Hiking", etc.
|
|
|
|
`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.
|
|
|
|
Any other status types can be used but they are not defined by this NIP.
|
|
|
|
The status MAY include an `r`, `p`, `e` or `a` tag linking to a URL, profile, note, or addressable event.
|
|
|
|
The `content` MAY include emoji(s), or [NIP-30](30.md) custom emoji(s). If the `content` is an empty string then the client should clear the status.
|
|
|
|
# Client behavior
|
|
|
|
Clients MAY display this next to the username on posts or profiles to provide live user status information.
|
|
|
|
# Use Cases
|
|
|
|
* Calendar nostr apps that update your general status when you're in a meeting
|
|
* Nostr Nests that update your general status with a link to the nest when you join
|
|
* Nostr music streaming services that update your music status when you're listening
|
|
* Podcasting apps that update your music status when you're listening to a podcast, with a link for others to listen as well
|
|
* Clients can use the system media player to update playing music status
|