Files
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
nips/38.md
fiatjaf a736e629be complete renaming to "addressable" events.
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.
2024-09-28 12:29:03 -03:00

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