5a0cfd867b641dd2cae2f5261b4ceb7be24b4e1a14c54a578407eb173e9a212e.json raw
1 {"ast":null,"code":"/**\n * Nostr Event Kinds Database\n * Auto-generated from https://git.mleku.dev/mleku/nostr/raw/branch/main/encoders/kind/kinds.json\n * Version: 2025-12-21\n * Source: https://github.com/nostr-protocol/nips\n *\n * DO NOT EDIT - This file is auto-generated by scripts/fetch-kinds.js\n */\nexport const EVENT_KINDS = [{\n \"kind\": 0,\n \"name\": \"Metadata\",\n \"description\": \"User profile information (name, about, picture, nip05, etc.)\",\n \"nip\": \"01\",\n \"classification\": \"replaceable\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 1,\n \"name\": \"Short Text Note\",\n \"description\": \"Short-form text post (like a tweet)\",\n \"nip\": \"01\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 2,\n \"name\": \"Recommend Relay\",\n \"description\": \"Relay recommendation\",\n \"nip\": \"01\",\n \"classification\": \"regular\",\n \"deprecated\": true,\n \"spec\": null\n}, {\n \"kind\": 3,\n \"name\": \"Follows\",\n \"description\": \"Following list with optional relay hints\",\n \"nip\": \"02\",\n \"classification\": \"replaceable\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 4,\n \"name\": \"Encrypted Direct Message\",\n \"description\": \"Private message using NIP-04 encryption\",\n \"nip\": \"04\",\n \"classification\": \"regular\",\n \"deprecated\": true,\n \"spec\": null\n}, {\n \"kind\": 5,\n \"name\": \"Event Deletion Request\",\n \"description\": \"Request to delete events\",\n \"nip\": \"09\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 6,\n \"name\": \"Repost\",\n \"description\": \"Share/repost another text note\",\n \"nip\": \"18\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 7,\n \"name\": \"Reaction\",\n \"description\": \"Like, emoji reaction to an event\",\n \"nip\": \"25\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 8,\n \"name\": \"Badge Award\",\n \"description\": \"Award a badge to someone\",\n \"nip\": \"58\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 9,\n \"name\": \"Chat Message\",\n \"description\": \"Chat message\",\n \"nip\": \"C7\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 10,\n \"name\": \"Group Chat Threaded Reply\",\n \"description\": \"Threaded reply in group chat\",\n \"nip\": \"29\",\n \"classification\": \"regular\",\n \"deprecated\": true,\n \"spec\": null\n}, {\n \"kind\": 11,\n \"name\": \"Thread\",\n \"description\": \"Thread event\",\n \"nip\": \"7D\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 12,\n \"name\": \"Group Thread Reply\",\n \"description\": \"Reply in group thread\",\n \"nip\": \"29\",\n \"classification\": \"regular\",\n \"deprecated\": true,\n \"spec\": null\n}, {\n \"kind\": 13,\n \"name\": \"Seal\",\n \"description\": \"Sealed/encrypted event wrapper\",\n \"nip\": \"59\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 14,\n \"name\": \"Direct Message\",\n \"description\": \"Private direct message using NIP-17\",\n \"nip\": \"17\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 15,\n \"name\": \"File Message\",\n \"description\": \"File message in DMs\",\n \"nip\": \"17\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 16,\n \"name\": \"Generic Repost\",\n \"description\": \"Repost any event kind\",\n \"nip\": \"18\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 17,\n \"name\": \"Reaction to Website\",\n \"description\": \"Reaction to a website URL\",\n \"nip\": \"25\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 20,\n \"name\": \"Picture\",\n \"description\": \"Picture-first feed post\",\n \"nip\": \"68\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 21,\n \"name\": \"Video Event\",\n \"description\": \"Horizontal video event\",\n \"nip\": \"71\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 22,\n \"name\": \"Short-form Video\",\n \"description\": \"Short-form portrait video (like TikTok)\",\n \"nip\": \"71\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 40,\n \"name\": \"Channel Creation\",\n \"description\": \"Create a public chat channel\",\n \"nip\": \"28\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 41,\n \"name\": \"Channel Metadata\",\n \"description\": \"Set channel name, about, picture\",\n \"nip\": \"28\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 42,\n \"name\": \"Channel Message\",\n \"description\": \"Post message in channel\",\n \"nip\": \"28\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 43,\n \"name\": \"Channel Hide Message\",\n \"description\": \"Hide a message in channel\",\n \"nip\": \"28\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 44,\n \"name\": \"Channel Mute User\",\n \"description\": \"Mute a user in channel\",\n \"nip\": \"28\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 62,\n \"name\": \"Request to Vanish\",\n \"description\": \"Request permanent deletion of all user data\",\n \"nip\": \"62\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 64,\n \"name\": \"Chess (PGN)\",\n \"description\": \"Chess game in PGN format\",\n \"nip\": \"64\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 443,\n \"name\": \"KeyPackage\",\n \"description\": \"Marmot protocol key package\",\n \"nip\": null,\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": \"Marmot\"\n}, {\n \"kind\": 444,\n \"name\": \"Welcome Message\",\n \"description\": \"Marmot protocol welcome message\",\n \"nip\": null,\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": \"Marmot\"\n}, {\n \"kind\": 445,\n \"name\": \"Group Event\",\n \"description\": \"Marmot protocol group event\",\n \"nip\": null,\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": \"Marmot\"\n}, {\n \"kind\": 818,\n \"name\": \"Merge Requests\",\n \"description\": \"Git merge request\",\n \"nip\": \"54\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 1018,\n \"name\": \"Poll Response\",\n \"description\": \"Response to a poll\",\n \"nip\": \"88\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 1021,\n \"name\": \"Bid\",\n \"description\": \"Auction bid\",\n \"nip\": \"15\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 1022,\n \"name\": \"Bid Confirmation\",\n \"description\": \"Confirmation of auction bid\",\n \"nip\": \"15\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 1040,\n \"name\": \"OpenTimestamps\",\n \"description\": \"OpenTimestamps attestation\",\n \"nip\": \"03\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 1059,\n \"name\": \"Gift Wrap\",\n \"description\": \"Encrypted gift-wrapped event\",\n \"nip\": \"59\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 1060,\n \"name\": \"Gift Wrap (Kind 4)\",\n \"description\": \"Gift wrap variant for NIP-04 compatibility\",\n \"nip\": \"59\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 1063,\n \"name\": \"File Metadata\",\n \"description\": \"Metadata for shared files\",\n \"nip\": \"94\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 1068,\n \"name\": \"Poll\",\n \"description\": \"Create a poll\",\n \"nip\": \"88\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 1111,\n \"name\": \"Comment\",\n \"description\": \"Comment on events or external content\",\n \"nip\": \"22\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 1222,\n \"name\": \"Voice Message\",\n \"description\": \"Voice message\",\n \"nip\": \"A0\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 1244,\n \"name\": \"Voice Message Comment\",\n \"description\": \"Comment on voice message\",\n \"nip\": \"A0\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 1311,\n \"name\": \"Live Chat Message\",\n \"description\": \"Message in live stream chat\",\n \"nip\": \"53\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 1337,\n \"name\": \"Code Snippet\",\n \"description\": \"Code snippet post\",\n \"nip\": \"C0\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 1517,\n \"name\": \"Bitcoin Block\",\n \"description\": \"Bitcoin block data\",\n \"nip\": null,\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": \"Nostrocket\"\n}, {\n \"kind\": 1617,\n \"name\": \"Patches\",\n \"description\": \"Git patches\",\n \"nip\": \"34\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 1618,\n \"name\": \"Pull Requests\",\n \"description\": \"Git pull request\",\n \"nip\": \"34\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 1619,\n \"name\": \"Pull Request Updates\",\n \"description\": \"Updates to git pull request\",\n \"nip\": \"34\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 1621,\n \"name\": \"Issues\",\n \"description\": \"Git issues\",\n \"nip\": \"34\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 1622,\n \"name\": \"Git Replies\",\n \"description\": \"Replies on git objects\",\n \"nip\": \"34\",\n \"classification\": \"regular\",\n \"deprecated\": true,\n \"spec\": null\n}, {\n \"kind\": 1630,\n \"name\": \"Status\",\n \"description\": \"Git status\",\n \"nip\": \"34\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 1631,\n \"name\": \"Status\",\n \"description\": \"Git status\",\n \"nip\": \"34\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 1632,\n \"name\": \"Status\",\n \"description\": \"Git status\",\n \"nip\": \"34\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 1633,\n \"name\": \"Status\",\n \"description\": \"Git status\",\n \"nip\": \"34\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 1808,\n \"name\": \"Live Stream\",\n \"description\": \"Live streaming event\",\n \"nip\": null,\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": \"zap.stream\"\n}, {\n \"kind\": 1971,\n \"name\": \"Problem Tracker\",\n \"description\": \"Problem tracking\",\n \"nip\": null,\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": \"Nostrocket\"\n}, {\n \"kind\": 1984,\n \"name\": \"Reporting\",\n \"description\": \"Report content or users\",\n \"nip\": \"56\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 1985,\n \"name\": \"Label\",\n \"description\": \"Label/tag content with namespace\",\n \"nip\": \"32\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 1986,\n \"name\": \"Relay Reviews\",\n \"description\": \"Reviews of relays\",\n \"nip\": null,\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 1987,\n \"name\": \"AI Embeddings\",\n \"description\": \"AI embeddings/vector lists\",\n \"nip\": null,\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": \"NKBIP-02\"\n}, {\n \"kind\": 2003,\n \"name\": \"Torrent\",\n \"description\": \"Torrent magnet link\",\n \"nip\": \"35\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 2004,\n \"name\": \"Torrent Comment\",\n \"description\": \"Comment on torrent\",\n \"nip\": \"35\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 2022,\n \"name\": \"Coinjoin Pool\",\n \"description\": \"Coinjoin coordination\",\n \"nip\": null,\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": \"joinstr\"\n}, {\n \"kind\": 4550,\n \"name\": \"Community Post Approval\",\n \"description\": \"Approve post in community\",\n \"nip\": \"72\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 5000,\n \"name\": \"Job Request\",\n \"description\": \"Data vending machine job request (start of range)\",\n \"nip\": \"90\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 6000,\n \"name\": \"Job Result\",\n \"description\": \"Data vending machine job result (start of range)\",\n \"nip\": \"90\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 7000,\n \"name\": \"Job Feedback\",\n \"description\": \"Feedback on job request/result\",\n \"nip\": \"90\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 7374,\n \"name\": \"Reserved Cashu Wallet Tokens\",\n \"description\": \"Reserved Cashu wallet tokens\",\n \"nip\": \"60\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 7375,\n \"name\": \"Cashu Wallet Tokens\",\n \"description\": \"Cashu wallet tokens\",\n \"nip\": \"60\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 7376,\n \"name\": \"Cashu Wallet History\",\n \"description\": \"Cashu wallet transaction history\",\n \"nip\": \"60\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 7516,\n \"name\": \"Geocache Log\",\n \"description\": \"Geocaching log entry\",\n \"nip\": null,\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": \"geocaching\"\n}, {\n \"kind\": 7517,\n \"name\": \"Geocache Proof of Find\",\n \"description\": \"Proof of geocache find\",\n \"nip\": null,\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": \"geocaching\"\n}, {\n \"kind\": 8000,\n \"name\": \"Add User\",\n \"description\": \"Add user to group\",\n \"nip\": \"43\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 8001,\n \"name\": \"Remove User\",\n \"description\": \"Remove user from group\",\n \"nip\": \"43\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 9000,\n \"name\": \"Group Control Events\",\n \"description\": \"Group control events (start of range)\",\n \"nip\": \"29\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 9041,\n \"name\": \"Zap Goal\",\n \"description\": \"Fundraising goal for zaps\",\n \"nip\": \"75\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 9321,\n \"name\": \"Nutzap\",\n \"description\": \"Cashu nutzap\",\n \"nip\": \"61\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 9467,\n \"name\": \"Tidal Login\",\n \"description\": \"Tidal streaming login\",\n \"nip\": null,\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": \"Tidal-nostr\"\n}, {\n \"kind\": 9734,\n \"name\": \"Zap Request\",\n \"description\": \"Request Lightning payment\",\n \"nip\": \"57\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 9735,\n \"name\": \"Zap\",\n \"description\": \"Lightning payment receipt\",\n \"nip\": \"57\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 9802,\n \"name\": \"Highlights\",\n \"description\": \"Highlighted text selection\",\n \"nip\": \"84\",\n \"classification\": \"regular\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 10000,\n \"name\": \"Mute List\",\n \"description\": \"List of muted users/content\",\n \"nip\": \"51\",\n \"classification\": \"replaceable\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 10001,\n \"name\": \"Pin List\",\n \"description\": \"Pinned events\",\n \"nip\": \"51\",\n \"classification\": \"replaceable\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 10002,\n \"name\": \"Relay List Metadata\",\n \"description\": \"User's preferred relays for read/write\",\n \"nip\": \"65\",\n \"classification\": \"replaceable\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 10003,\n \"name\": \"Bookmark List\",\n \"description\": \"Bookmarked events\",\n \"nip\": \"51\",\n \"classification\": \"replaceable\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 10004,\n \"name\": \"Communities List\",\n \"description\": \"Communities user belongs to\",\n \"nip\": \"51\",\n \"classification\": \"replaceable\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 10005,\n \"name\": \"Public Chats List\",\n \"description\": \"Public chats user is in\",\n \"nip\": \"51\",\n \"classification\": \"replaceable\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 10006,\n \"name\": \"Blocked Relays List\",\n \"description\": \"Relays user has blocked\",\n \"nip\": \"51\",\n \"classification\": \"replaceable\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 10007,\n \"name\": \"Search Relays List\",\n \"description\": \"Preferred search relays\",\n \"nip\": \"51\",\n \"classification\": \"replaceable\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 10008,\n \"name\": \"Relay Group Configuration\",\n \"description\": \"Relay group configuration\",\n \"nip\": null,\n \"classification\": \"replaceable\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 10009,\n \"name\": \"User Groups\",\n \"description\": \"Groups user belongs to\",\n \"nip\": \"29\",\n \"classification\": \"replaceable\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 10012,\n \"name\": \"Favorite Relays List\",\n \"description\": \"User's favorite relays\",\n \"nip\": \"51\",\n \"classification\": \"replaceable\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 10013,\n \"name\": \"Private Event Relay List\",\n \"description\": \"Relays for private events\",\n \"nip\": \"37\",\n \"classification\": \"replaceable\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 10015,\n \"name\": \"Interests List\",\n \"description\": \"User interests/topics\",\n \"nip\": \"51\",\n \"classification\": \"replaceable\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 10019,\n \"name\": \"Nutzap Mint Recommendation\",\n \"description\": \"Recommended Cashu mints for nutzaps\",\n \"nip\": \"61\",\n \"classification\": \"replaceable\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 10020,\n \"name\": \"Media Follows\",\n \"description\": \"Followed media accounts\",\n \"nip\": \"51\",\n \"classification\": \"replaceable\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 10030,\n \"name\": \"User Emoji List\",\n \"description\": \"Custom emoji list\",\n \"nip\": \"51\",\n \"classification\": \"replaceable\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 10050,\n \"name\": \"DM Relays List\",\n \"description\": \"Relays to receive DMs on\",\n \"nip\": \"17\",\n \"classification\": \"replaceable\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 10051,\n \"name\": \"KeyPackage Relays List\",\n \"description\": \"Marmot key package relays\",\n \"nip\": null,\n \"classification\": \"replaceable\",\n \"deprecated\": false,\n \"spec\": \"Marmot\"\n}, {\n \"kind\": 10063,\n \"name\": \"User Server List\",\n \"description\": \"Blossom server list\",\n \"nip\": null,\n \"classification\": \"replaceable\",\n \"deprecated\": false,\n \"spec\": \"Blossom\"\n}, {\n \"kind\": 10096,\n \"name\": \"File Storage Server List\",\n \"description\": \"File storage servers\",\n \"nip\": \"96\",\n \"classification\": \"replaceable\",\n \"deprecated\": true,\n \"spec\": null\n}, {\n \"kind\": 10166,\n \"name\": \"Relay Monitor Announcement\",\n \"description\": \"Relay monitoring announcement\",\n \"nip\": \"66\",\n \"classification\": \"replaceable\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 10312,\n \"name\": \"Room Presence\",\n \"description\": \"Presence in live room\",\n \"nip\": \"53\",\n \"classification\": \"replaceable\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 10377,\n \"name\": \"Proxy Announcement\",\n \"description\": \"Nostr proxy announcement\",\n \"nip\": null,\n \"classification\": \"replaceable\",\n \"deprecated\": false,\n \"spec\": \"Nostr Epoxy\"\n}, {\n \"kind\": 11111,\n \"name\": \"Transport Method Announcement\",\n \"description\": \"Transport method announcement\",\n \"nip\": null,\n \"classification\": \"replaceable\",\n \"deprecated\": false,\n \"spec\": \"Nostr Epoxy\"\n}, {\n \"kind\": 12345,\n \"name\": \"Relay Policy Configuration\",\n \"description\": \"Relay-internal policy configuration (admin only)\",\n \"nip\": null,\n \"classification\": \"replaceable\",\n \"deprecated\": false,\n \"spec\": \"orly\"\n}, {\n \"kind\": 13004,\n \"name\": \"JWT Binding\",\n \"description\": \"Link between JWT certificate and pubkey\",\n \"nip\": null,\n \"classification\": \"replaceable\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 13194,\n \"name\": \"Wallet Service Info\",\n \"description\": \"NWC wallet service information\",\n \"nip\": \"47\",\n \"classification\": \"replaceable\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 13534,\n \"name\": \"Membership Lists\",\n \"description\": \"Group membership lists\",\n \"nip\": \"43\",\n \"classification\": \"replaceable\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 14388,\n \"name\": \"User Sound Effect Lists\",\n \"description\": \"Sound effect lists\",\n \"nip\": null,\n \"classification\": \"replaceable\",\n \"deprecated\": false,\n \"spec\": \"Corny Chat\"\n}, {\n \"kind\": 17375,\n \"name\": \"Cashu Wallet Event\",\n \"description\": \"Cashu wallet event\",\n \"nip\": \"60\",\n \"classification\": \"replaceable\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 21000,\n \"name\": \"Lightning Pub RPC\",\n \"description\": \"Lightning.Pub RPC\",\n \"nip\": null,\n \"classification\": \"ephemeral\",\n \"deprecated\": false,\n \"spec\": \"Lightning.Pub\"\n}, {\n \"kind\": 22242,\n \"name\": \"Client Authentication\",\n \"description\": \"Authenticate to relay\",\n \"nip\": \"42\",\n \"classification\": \"ephemeral\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 23194,\n \"name\": \"Wallet Request\",\n \"description\": \"NWC wallet request\",\n \"nip\": \"47\",\n \"classification\": \"ephemeral\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 23195,\n \"name\": \"Wallet Response\",\n \"description\": \"NWC wallet response\",\n \"nip\": \"47\",\n \"classification\": \"ephemeral\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 23196,\n \"name\": \"Wallet Notification (NIP-04)\",\n \"description\": \"NWC wallet notification (NIP-04 encrypted)\",\n \"nip\": \"47\",\n \"classification\": \"ephemeral\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 23197,\n \"name\": \"Wallet Notification\",\n \"description\": \"NWC wallet notification\",\n \"nip\": \"47\",\n \"classification\": \"ephemeral\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 24133,\n \"name\": \"Nostr Connect\",\n \"description\": \"Remote signer connection\",\n \"nip\": \"46\",\n \"classification\": \"ephemeral\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 24242,\n \"name\": \"Blobs Stored on Mediaservers\",\n \"description\": \"Blossom blob storage\",\n \"nip\": null,\n \"classification\": \"ephemeral\",\n \"deprecated\": false,\n \"spec\": \"Blossom\"\n}, {\n \"kind\": 27235,\n \"name\": \"HTTP Auth\",\n \"description\": \"Authenticate HTTP requests\",\n \"nip\": \"98\",\n \"classification\": \"ephemeral\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 28934,\n \"name\": \"Join Request\",\n \"description\": \"Request to join group\",\n \"nip\": \"43\",\n \"classification\": \"ephemeral\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 28935,\n \"name\": \"Invite Request\",\n \"description\": \"Invite to group\",\n \"nip\": \"43\",\n \"classification\": \"ephemeral\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 28936,\n \"name\": \"Leave Request\",\n \"description\": \"Leave group request\",\n \"nip\": \"43\",\n \"classification\": \"ephemeral\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 30000,\n \"name\": \"Follow Sets\",\n \"description\": \"Categorized people lists\",\n \"nip\": \"51\",\n \"classification\": \"parameterized\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 30001,\n \"name\": \"Generic Lists\",\n \"description\": \"Generic categorized lists\",\n \"nip\": \"51\",\n \"classification\": \"parameterized\",\n \"deprecated\": true,\n \"spec\": null\n}, {\n \"kind\": 30002,\n \"name\": \"Relay Sets\",\n \"description\": \"Categorized relay lists\",\n \"nip\": \"51\",\n \"classification\": \"parameterized\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 30003,\n \"name\": \"Bookmark Sets\",\n \"description\": \"Categorized bookmark lists\",\n \"nip\": \"51\",\n \"classification\": \"parameterized\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 30004,\n \"name\": \"Curation Sets\",\n \"description\": \"Curated content sets\",\n \"nip\": \"51\",\n \"classification\": \"parameterized\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 30005,\n \"name\": \"Video Sets\",\n \"description\": \"Video playlists\",\n \"nip\": \"51\",\n \"classification\": \"parameterized\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 30007,\n \"name\": \"Kind Mute Sets\",\n \"description\": \"Muted event kinds\",\n \"nip\": \"51\",\n \"classification\": \"parameterized\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 30008,\n \"name\": \"Profile Badges\",\n \"description\": \"Badges displayed on profile\",\n \"nip\": \"58\",\n \"classification\": \"parameterized\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 30009,\n \"name\": \"Badge Definition\",\n \"description\": \"Define a badge/achievement\",\n \"nip\": \"58\",\n \"classification\": \"parameterized\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 30015,\n \"name\": \"Interest Sets\",\n \"description\": \"Interest/topic sets\",\n \"nip\": \"51\",\n \"classification\": \"parameterized\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 30017,\n \"name\": \"Stall\",\n \"description\": \"Marketplace stall definition\",\n \"nip\": \"15\",\n \"classification\": \"parameterized\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 30018,\n \"name\": \"Product\",\n \"description\": \"Marketplace product listing\",\n \"nip\": \"15\",\n \"classification\": \"parameterized\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 30019,\n \"name\": \"Marketplace UI/UX\",\n \"description\": \"Marketplace interface settings\",\n \"nip\": \"15\",\n \"classification\": \"parameterized\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 30020,\n \"name\": \"Product Sold as Auction\",\n \"description\": \"Auction product listing\",\n \"nip\": \"15\",\n \"classification\": \"parameterized\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 30023,\n \"name\": \"Long-form Content\",\n \"description\": \"Blog post, article in markdown\",\n \"nip\": \"23\",\n \"classification\": \"parameterized\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 30024,\n \"name\": \"Draft Long-form Content\",\n \"description\": \"Draft article\",\n \"nip\": \"23\",\n \"classification\": \"parameterized\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 30030,\n \"name\": \"Emoji Sets\",\n \"description\": \"Custom emoji sets\",\n \"nip\": \"51\",\n \"classification\": \"parameterized\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 30040,\n \"name\": \"Curated Publication Index\",\n \"description\": \"Publication index\",\n \"nip\": null,\n \"classification\": \"parameterized\",\n \"deprecated\": false,\n \"spec\": \"NKBIP-01\"\n}, {\n \"kind\": 30041,\n \"name\": \"Curated Publication Content\",\n \"description\": \"Publication content\",\n \"nip\": null,\n \"classification\": \"parameterized\",\n \"deprecated\": false,\n \"spec\": \"NKBIP-01\"\n}, {\n \"kind\": 30063,\n \"name\": \"Release Artifact Sets\",\n \"description\": \"Software release artifacts\",\n \"nip\": \"51\",\n \"classification\": \"parameterized\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 30078,\n \"name\": \"Application-specific Data\",\n \"description\": \"App-specific key-value storage\",\n \"nip\": \"78\",\n \"classification\": \"parameterized\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 30166,\n \"name\": \"Relay Discovery\",\n \"description\": \"Relay discovery/monitoring\",\n \"nip\": \"66\",\n \"classification\": \"parameterized\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 30267,\n \"name\": \"App Curation Sets\",\n \"description\": \"Curated app sets\",\n \"nip\": \"51\",\n \"classification\": \"parameterized\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 30311,\n \"name\": \"Live Event\",\n \"description\": \"Live streaming event\",\n \"nip\": \"53\",\n \"classification\": \"parameterized\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 30312,\n \"name\": \"Interactive Room\",\n \"description\": \"Interactive live room\",\n \"nip\": \"53\",\n \"classification\": \"parameterized\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 30313,\n \"name\": \"Conference Event\",\n \"description\": \"Conference/meetup event\",\n \"nip\": \"53\",\n \"classification\": \"parameterized\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 30315,\n \"name\": \"User Statuses\",\n \"description\": \"User status updates\",\n \"nip\": \"38\",\n \"classification\": \"parameterized\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 30388,\n \"name\": \"Slide Set\",\n \"description\": \"Presentation slides\",\n \"nip\": null,\n \"classification\": \"parameterized\",\n \"deprecated\": false,\n \"spec\": \"Corny Chat\"\n}, {\n \"kind\": 30402,\n \"name\": \"Classified Listing\",\n \"description\": \"Classified ad listing\",\n \"nip\": \"99\",\n \"classification\": \"parameterized\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 30403,\n \"name\": \"Draft Classified Listing\",\n \"description\": \"Draft classified ad\",\n \"nip\": \"99\",\n \"classification\": \"parameterized\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 30617,\n \"name\": \"Repository Announcements\",\n \"description\": \"Git repository announcement\",\n \"nip\": \"34\",\n \"classification\": \"parameterized\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 30618,\n \"name\": \"Repository State Announcements\",\n \"description\": \"Git repository state\",\n \"nip\": \"34\",\n \"classification\": \"parameterized\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 30818,\n \"name\": \"Wiki Article\",\n \"description\": \"Wiki article\",\n \"nip\": \"54\",\n \"classification\": \"parameterized\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 30819,\n \"name\": \"Redirects\",\n \"description\": \"URL redirects\",\n \"nip\": \"54\",\n \"classification\": \"parameterized\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 31234,\n \"name\": \"Draft Event\",\n \"description\": \"Draft of any event\",\n \"nip\": \"37\",\n \"classification\": \"parameterized\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 31388,\n \"name\": \"Link Set\",\n \"description\": \"Link collection\",\n \"nip\": null,\n \"classification\": \"parameterized\",\n \"deprecated\": false,\n \"spec\": \"Corny Chat\"\n}, {\n \"kind\": 31890,\n \"name\": \"Feed\",\n \"description\": \"Custom feed definition\",\n \"nip\": null,\n \"classification\": \"parameterized\",\n \"deprecated\": false,\n \"spec\": \"NUD: Custom Feeds\"\n}, {\n \"kind\": 31922,\n \"name\": \"Date-Based Calendar Event\",\n \"description\": \"All-day calendar event\",\n \"nip\": \"52\",\n \"classification\": \"parameterized\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 31923,\n \"name\": \"Time-Based Calendar Event\",\n \"description\": \"Calendar event with time\",\n \"nip\": \"52\",\n \"classification\": \"parameterized\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 31924,\n \"name\": \"Calendar\",\n \"description\": \"Calendar definition\",\n \"nip\": \"52\",\n \"classification\": \"parameterized\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 31925,\n \"name\": \"Calendar Event RSVP\",\n \"description\": \"RSVP to calendar event\",\n \"nip\": \"52\",\n \"classification\": \"parameterized\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 31989,\n \"name\": \"Handler Recommendation\",\n \"description\": \"Recommended app for event kind\",\n \"nip\": \"89\",\n \"classification\": \"parameterized\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 31990,\n \"name\": \"Handler Information\",\n \"description\": \"App handler declaration\",\n \"nip\": \"89\",\n \"classification\": \"parameterized\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 32123,\n \"name\": \"WaveLake Track\",\n \"description\": \"WaveLake music track\",\n \"nip\": null,\n \"classification\": \"parameterized\",\n \"deprecated\": false,\n \"spec\": \"WaveLake\"\n}, {\n \"kind\": 32267,\n \"name\": \"Software Application\",\n \"description\": \"Software application listing\",\n \"nip\": null,\n \"classification\": \"parameterized\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 32388,\n \"name\": \"User Room Favorites\",\n \"description\": \"Favorite rooms\",\n \"nip\": null,\n \"classification\": \"parameterized\",\n \"deprecated\": false,\n \"spec\": \"Corny Chat\"\n}, {\n \"kind\": 33388,\n \"name\": \"High Scores\",\n \"description\": \"Game high scores\",\n \"nip\": null,\n \"classification\": \"parameterized\",\n \"deprecated\": false,\n \"spec\": \"Corny Chat\"\n}, {\n \"kind\": 34235,\n \"name\": \"Video Event Horizontal\",\n \"description\": \"Horizontal video event\",\n \"nip\": \"71\",\n \"classification\": \"parameterized\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 34236,\n \"name\": \"Video Event Vertical\",\n \"description\": \"Vertical video event\",\n \"nip\": \"71\",\n \"classification\": \"parameterized\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 34388,\n \"name\": \"Sound Effects\",\n \"description\": \"Sound effect definitions\",\n \"nip\": null,\n \"classification\": \"parameterized\",\n \"deprecated\": false,\n \"spec\": \"Corny Chat\"\n}, {\n \"kind\": 34550,\n \"name\": \"Community Definition\",\n \"description\": \"Define a community\",\n \"nip\": \"72\",\n \"classification\": \"parameterized\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 37516,\n \"name\": \"Geocache Listing\",\n \"description\": \"Geocache location listing\",\n \"nip\": null,\n \"classification\": \"parameterized\",\n \"deprecated\": false,\n \"spec\": \"geocaching\"\n}, {\n \"kind\": 38172,\n \"name\": \"Cashu Mint Announcement\",\n \"description\": \"Cashu mint announcement\",\n \"nip\": \"87\",\n \"classification\": \"parameterized\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 38173,\n \"name\": \"Fedimint Announcement\",\n \"description\": \"Fedimint announcement\",\n \"nip\": \"87\",\n \"classification\": \"parameterized\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 38383,\n \"name\": \"Peer-to-peer Order Events\",\n \"description\": \"P2P trading orders\",\n \"nip\": \"69\",\n \"classification\": \"parameterized\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 39000,\n \"name\": \"Group Metadata Events\",\n \"description\": \"Group metadata (start of range)\",\n \"nip\": \"29\",\n \"classification\": \"parameterized\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 39089,\n \"name\": \"Starter Packs\",\n \"description\": \"Starter pack lists\",\n \"nip\": \"51\",\n \"classification\": \"parameterized\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 39092,\n \"name\": \"Media Starter Packs\",\n \"description\": \"Media starter packs\",\n \"nip\": \"51\",\n \"classification\": \"parameterized\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 39701,\n \"name\": \"Web Bookmarks\",\n \"description\": \"Web URL bookmarks\",\n \"nip\": \"B0\",\n \"classification\": \"parameterized\",\n \"deprecated\": false,\n \"spec\": null\n}, {\n \"kind\": 39998,\n \"name\": \"ACL Event\",\n \"description\": \"Access control list event\",\n \"nip\": null,\n \"classification\": \"parameterized\",\n \"deprecated\": false,\n \"spec\": null\n}];\nexport const KIND_RANGES = {\n \"regular\": {\n \"start\": 1000,\n \"end\": 9999,\n \"description\": \"Regular events - all versions kept, never replaced\"\n },\n \"replaceable\": {\n \"start\": 10000,\n \"end\": 19999,\n \"description\": \"Replaceable events - only latest per pubkey kept\"\n },\n \"ephemeral\": {\n \"start\": 20000,\n \"end\": 29999,\n \"description\": \"Ephemeral events - forwarded but not stored\"\n },\n \"parameterized\": {\n \"start\": 30000,\n \"end\": 39999,\n \"description\": \"Parameterized replaceable - replaced by d tag value\"\n }\n};\nexport const PRIVILEGED_KINDS = [4, 13, 14, 15, 1059, 1060, 30078];\nexport const DIRECTORY_KINDS = [0, 3, 5, 1984, 10002, 10000, 10050];\nexport const KIND_ALIASES = {\n \"SetMetadata\": 0,\n \"Follows\": 3,\n \"Contacts\": 3,\n \"Deletion\": 5,\n \"MemoryHole\": 1984,\n \"BlockList\": 10000,\n \"Article\": 30023,\n \"CategorizedPeopleList\": 30000,\n \"CategorizedBookmarksList\": 30001\n};\n// Lookup map for fast access\nconst kindMap = new Map(EVENT_KINDS.map(k => [k.kind, k]));\nexport function getKindInfo(kind) {\n return kindMap.get(kind);\n}\nexport function getKindName(kind) {\n const info = kindMap.get(kind);\n return info ? info.name : `Kind ${kind}`;\n}\nexport function isReplaceable(kind) {\n if (kind === 0 || kind === 3) return true;\n return kind >= KIND_RANGES.replaceable.start && kind < KIND_RANGES.replaceable.end;\n}\nexport function isEphemeral(kind) {\n return kind >= KIND_RANGES.ephemeral.start && kind < KIND_RANGES.ephemeral.end;\n}\nexport function isParameterized(kind) {\n return kind >= KIND_RANGES.parameterized.start && kind <= KIND_RANGES.parameterized.end;\n}\nexport function isPrivileged(kind) {\n return PRIVILEGED_KINDS.includes(kind);\n}\nexport function isDirectoryKind(kind) {\n return DIRECTORY_KINDS.includes(kind);\n}","map":null,"metadata":{},"sourceType":"module","externalDependencies":[]}