{"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":[]}