← All NIPs

NIP-38

User Statuses

DraftEvents

Share a live status next to your name, like what you're doing or the song you're playing, as a kind 30315 event that can expire on its own.

At a glance

Status
In use and still allowed to change.
Kinds
Tags
  • d
  • expiration
  • r
Last changed
Aug 13, 2025

Try it

Edit the form or the JSON: both stay in sync, the badge says whether the result is valid, and tapping any field explains it.

Examples
Valid 1 note

Not signed yet Β· Demo keys only. These personas' secret keys are public on purpose.

Form
Jan 1, 2025, 12:00 AM UTC

Content

The status text. Empty clears the status.

Tags

  1. d Required

    The status type. Required.

  2. a Optional

    An addressable event related to the status (a live event, an article).

Add tag

How this NIP works

Step 1 of 5

One status per type

kind 30315 is addressable and the d tag is the status type, so you have one current "general" status and one "music" status. Publishing again replaces it.

In the course

No course chapter covers this NIP yet. The editor above is the quickest way in.

Builds on

See also

Specification

Specification text is quoted in English from the nostr-protocol/nips repository. Our explanations and the interface are translated. Source on GitHub at commit 0046368

Read the spec313 words, quoted from the repository at commit 0046368.

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:

{
  "kind": 30315,
  "content": "Sign up for nostrasia!",
  "tags": [
    ["d", "general"],
    ["r", "https://nostr.world"]
  ],
}
{
  "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 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