AI Reference - Nostr Event Kinds

Machine-readable documentation for AI agents to understand and implement Nostr event kinds.

JSON Data Export

Download complete event reference as JSON

Statistics

Total Event Kinds: 71
Regular Events: 40
Replaceable Events: 13
Addressable Events: 18
Ephemeral Events: 0

Complete Event Reference

KindNameCategorySummaryNIP
0User MetadatareplaceableUser profile data (name, bio, picture) stored as JSON in contentNIP-01
1Short Text NoteregularBasic text post - the main content type on NostrNIP-01
2Recommend RelayregularDeprecated recommend relay eventNIP-01
3FollowsreplaceableUser's follow list - who they follow on NostrNIP-02
4Encrypted Direct MessagesregularDeprecated encrypted direct messages eventNIP-04
5Event Deletion RequestregularEvent requesting deletion of previously published events ...NIP-09
6RepostregularEvent that reposts another event by including the origina...NIP-18
7ReactionregularLike, dislike, or emoji reaction to eventsNIP-25
8Badge AwardregularEvent awarding a badge to a pubkey, referencing the badge...NIP-58
9Chat MessageregularChat Message for messagingNIP-29
10Group Chat Threaded ReplyregularGroup chat threaded reply (deprecated)NIP-29
11ThreadregularThread responseNIP-10
12Group Thread ReplyregularGroup thread reply (deprecated)NIP-29
13SealregularSealed event containing encrypted content as part of the ...NIP-59
14Direct MessageregularDirect Message for messagingNIP-17
15File MessageregularFile messageNIP-17
16Generic RepostregularGeneric repost event that can reference any kind of event...NIP-18
17Reaction to WebsiteregularReaction to a websiteNIP-25
20PictureregularPicture eventNIP-68
21Video EventregularEvent containing video content metadata including URL, th...NIP-71
22Short-form Portrait VideoregularShort-form portrait video eventNIP-71
30Internal ReferenceregularInternal referenceNKBIP-03
31External Web ReferenceregularExternal web referenceNKBIP-03
32Hardcopy ReferenceregularHardcopy referenceNKBIP-03
33Prompt ReferenceregularPrompt referenceNKBIP-03
40Channel CreationregularEvent that creates a new public channel with metadata lik...NIP-28
41Channel MetadataregularChannel metadata updateNIP-28
42Channel MessageregularChannel Message for messagingNIP-28
43Channel Hide MessageregularHide message in channelNIP-28
44Channel Mute UserregularMute user in channelNIP-28
818Merge RequestsregularMerge requestsNIP-54
1018Poll ResponseregularPoll responseNIP-69
1063File MetadataregularEvent containing metadata about a file including URL, has...NIP-94
1311Live Chat MessageregularLive Chat Message for messagingNIP-53
1617PatchesregularPatchesNIP-34
1621IssuesregularIssuesNIP-34
1622RepliesregularRepliesNIP-34
1971Problem TrackerregularProblem trackerNIP-1971
1984ReportingregularEvent for reporting content or users to relay operators w...NIP-56
1985LabelregularEvent for labeling other events or entities with standard...NIP-32
9734Zap RequestregularZap Request for messagingNIP-57
9735ZapregularLightning payment receipt event created when a zap reques...NIP-57
10000Mute ListreplaceableReplaceable mute list eventNIP-51
10001Pin ListreplaceablePin listNIP-51
10002Relay List MetadatareplaceableReplaceable relay list metadata eventNIP-65
10003Bookmark ListreplaceableBookmark listNIP-51
10004Communities ListreplaceableCommunities listNIP-51
10005Public Chats ListreplaceablePublic chats listNIP-51
10006Blocked Relays ListreplaceableBlocked relays listNIP-51
10007Search Relays ListreplaceableSearch relays listNIP-51
10009User Groups ListreplaceableUser groups listNIP-51
10015Interests ListreplaceableInterests listNIP-51
10030User Emoji ListreplaceableUser emoji listNIP-51
30000Categorized PeopleaddressableAddressable categorized people eventNIP-51
30001Categorized BookmarksaddressableCategorized bookmarks listNIP-51
30023Long-form ContentaddressableLong-form articles and blog posts with Markdown supportNIP-23
30024Draft Long-form ContentaddressableDraft long-form contentNIP-23
30078Application-specific DataaddressableApplication-specific dataNIP-78
30315User StatusaddressableUser statusNIP-315
30402Classified ListingaddressableClassified listingNIP-99
30403Draft Classified ListingaddressableDraft classified listingNIP-99
30818Wiki ArticleaddressableWiki articleNIP-54
31922Date-Based Calendar EventaddressableAddressable date-based calendar event eventNIP-52
31923Time-Based Calendar EventaddressableTime-based calendar eventNIP-52
31924CalendaraddressableCalendarNIP-52
31925Calendar Event RSVPaddressableCalendar event RSVPNIP-52
32123Repository AnnouncementaddressableRepository announcementNIP-34
34550Community DefinitionaddressableAddressable community definition eventNIP-72
39000Group MetadataaddressableGroup metadataNIP-29
39001Group AdminsaddressableGroup adminsNIP-29
39002Group MembersaddressableGroup membersNIP-29

Implementation Notes

Kind 0: User Metadata

  • Content must be valid JSON
  • This event type is replaceable - newer events override older ones
  • Profile data is public and cached by relays
  • Standard fields: name, about, picture, nip05, website, banner

Kind 1: Short Text Note

  • Content is plain text (supports mentions and hashtags)
  • Use e tags to reference other events (replies)
  • Use p tags to mention users
  • Use t tags for hashtags

Kind 2: Recommend Relay

  • ⚠️ This event type is deprecated - avoid using in new applications

Kind 3: Follows

  • Each followed user gets a p tag: ["p", pubkey, relay, petname]
  • Content typically empty or contains additional metadata
  • Replaceable event - newer versions override older ones
  • Relay hints help with discovery

Kind 4: Encrypted Direct Messages

  • Content is encrypted for privacy
  • Requires proper key management
  • Required tags: p
  • ⚠️ This event type is deprecated - avoid using in new applications

Kind 5: Event Deletion Request

  • Required tags: e

Kind 6: Repost

  • Content must be valid JSON
  • Validate JSON.parse() before publishing
  • Required tags: e, p

Kind 7: Reaction

  • Content: "+" or empty = like, "-" = dislike, emoji = custom reaction
  • Must include e tag referencing target event
  • Should include p tag for event author
  • k tag indicates kind of event being reacted to

Kind 8: Badge Award

  • Implement according to NIP-58 specification
  • Follow standard Nostr event structure

Kind 9: Chat Message

  • Implement according to NIP-29 specification
  • Follow standard Nostr event structure

Common Gotchas

Kind 0: User Metadata

  • ⚠️ Forgetting to JSON.stringify the profile object
  • ⚠️ Including private data in public profile
  • ⚠️ Not validating JSON structure before publishing

Kind 1: Short Text Note

  • ⚠️ Not including proper e/p tags for replies
  • ⚠️ Exceeding reasonable length limits (varies by client)
  • ⚠️ Forgetting to handle mentions and hashtags properly

Kind 2: Recommend Relay

  • ⚠️ Using deprecated event types in new applications
  • ⚠️ Not validating event structure before publishing
  • ⚠️ Ignoring relay-specific requirements or limits

Kind 3: Follows

  • ⚠️ Not including relay hints (reduces discoverability)
  • ⚠️ Malformed p tag structure
  • ⚠️ Including private information in petnames

Kind 4: Encrypted Direct Messages

  • ⚠️ Using deprecated event types in new applications
  • ⚠️ Not validating event structure before publishing
  • ⚠️ Ignoring relay-specific requirements or limits

Kind 5: Event Deletion Request

  • ⚠️ Malformed tag structure or missing required tags
  • ⚠️ Incorrect tag ordering or format
  • ⚠️ Not validating event structure before publishing
  • ⚠️ Ignoring relay-specific requirements or limits

Kind 6: Repost

  • ⚠️ Invalid JSON syntax causing parsing errors
  • ⚠️ Not properly escaping JSON content
  • ⚠️ Not validating event structure before publishing
  • ⚠️ Ignoring relay-specific requirements or limits

Kind 7: Reaction

  • ⚠️ Missing required e and p tags
  • ⚠️ Not handling duplicate reactions properly
  • ⚠️ Using non-standard reaction content formats

Kind 8: Badge Award

  • ⚠️ Not validating event structure before publishing
  • ⚠️ Ignoring relay-specific requirements or limits

Kind 9: Chat Message

  • ⚠️ Not validating event structure before publishing
  • ⚠️ Ignoring relay-specific requirements or limits