Community

Crays NIP strategy

Crays NIP Strategy

The product decision matrix for which Nostr standards we should use now, prepare next, keep as reference or avoid.

Crays NIP Strategy visual
Route Under the hood Events, NIPs, relay behavior and the shared formats apps can trust.
Protocol route

Protocol and NIPs guide

This shelf turns standards into plain consequences: what becomes portable, what gets safer, what clients must support and what still needs product judgment.

NIPs All NIPs pages 242 pages in this routeNIP explainer pages, NIP reference pages, Protocol orientation Browse pagesClose shelf

NIP explainer pages

NIP reference pages

Android Signer Application Basic key derivation from mnemonic seed phrase Basic protocol flow bech32-encoded entities BLE Communications Blossom Bridged Events Calendar Events Chats Chess Classified Listings Code Snippets Comments Complete NIP Archive Index Crays NIP Strategy Custom Emoji Data Vending Machines Dealing with Unknown Events Delegated Event Signing Draft Events E2EE Messaging using MLS Ecash Mint Discoverability Encrypted Direct Message Event Deletion Request Expiration Timestamp External Content IDs External Identities Extra metadata fields and tags File Metadata Follow List Forum Threads Geocaching Gift Wrap git stuff Handling Mentions HTTP Auth HTTP File Storage Integration Labeling Lists Live Activities Mapping Nostr keys to DNS-based identifiers Moderated Communities Negentropy Syncing NIP and standards research NIP-01: Basic protocol flow NIP-01: NIP-01 NIP-02: Follow List NIP-02: NIP-02 NIP-03: NIP-03 NIP-03: OpenTimestamps Attestations NIP-04: Encrypted Direct Message NIP-04: NIP-04 NIP-05: Mapping Nostr keys to DNS-based identifiers NIP-05: NIP-05 NIP-06: Basic key derivation from mnemonic seed phrase NIP-06: NIP-06 NIP-07: NIP-07 NIP-07: window.nostr capability for web browsers NIP-08: Handling Mentions NIP-08: NIP-08 NIP-09: Event Deletion Request NIP-09: NIP-09 NIP-10: NIP-10 NIP-10: Text Notes and Threads NIP-12: NIP-12 NIP-13: NIP-13 NIP-13: Proof of Work NIP-14: NIP-14 NIP-14: Subject tag NIP-15: NIP-15 NIP-16: NIP-16 NIP-17: NIP-17 NIP-17: Private Direct Messages NIP-18: NIP-18 NIP-18: Reposts NIP-19: bech32-encoded entities NIP-19: NIP-19 NIP-20: NIP-20 NIP-21: NIP-21 NIP-21: nostr: URI scheme NIP-22: Comments NIP-22: NIP-22 NIP-23: NIP-23 NIP-24: Extra metadata fields and tags NIP-24: NIP-24 NIP-25: NIP-25 NIP-25: Reactions NIP-26: Delegated Event Signing NIP-26: Delegator: NIP-27: NIP-27 NIP-27: Text Note References NIP-28: NIP-28 NIP-28: Public Chat NIP-29: NIP-29 NIP-30: Custom Emoji NIP-30: NIP-30 NIP-31: Dealing with Unknown Events NIP-31: NIP-31 NIP-32: Labeling NIP-32: NIP-32 NIP-33: NIP-33 NIP-34: git stuff NIP-34: NIP-34 NIP-35: NIP-35 NIP-35: Torrents NIP-36: NIP-36 NIP-36: Sensitive Content NIP-37: Draft Events NIP-37: NIP-37 NIP-38: NIP-38 NIP-38: User Statuses NIP-39: External Identities NIP-39: NIP-39 NIP-40: Expiration Timestamp NIP-40: NIP-40 NIP-42: NIP-42 NIP-43: NIP-43 NIP-44: Calculates length of the padded byte array. NIP-44: Versioned Encryption NIP-45: Counting Results NIP-45: NIP-45 NIP-46: NIP-46 NIP-46: Nostr Remote Signing NIP-47: NIP-47 NIP-48: Bridged Events NIP-48: NIP-48 NIP-49: NIP-49 NIP-49: Private Key Encryption NIP-50: Search Capability NIP-51: Lists NIP-51: NIP-51 NIP-52: Calendar Events NIP-52: NIP-52 NIP-53: Live Activities NIP-53: NIP-53 NIP-54: NIP-54 NIP-54: Wiki NIP-55: Android Signer Application NIP-55: NIP-55 NIP-56: NIP-56 NIP-56: Reporting NIP-57: NIP-57 NIP-58: NIP-58 NIP-59: Gift Wrap NIP-59: NIP-59 NIP-5A: Static Websites / nsites NIP-60: NIP-60 NIP-61: NIP-61 NIP-62: NIP-62 NIP-62: Request to Vanish NIP-64: Chess NIP-64: NIP-64 NIP-65: NIP-65 NIP-68: NIP-68 NIP-68: Picture-first feeds NIP-69: NIP-69 NIP-69: Peer-to-peer Order events NIP-70: NIP-70 NIP-70: Protected Events NIP-71: NIP-71 NIP-72: Moderated Communities NIP-72: NIP-72 NIP-73: External Content IDs NIP-73: NIP-73 NIP-75: NIP-75 NIP-77: Negentropy Syncing NIP-77: NIP-77 NIP-78: Application-specific data NIP-78: NIP-78 NIP-7D: Forum Threads NIP-84: Highlights NIP-84: NIP-84 NIP-85: NIP-85 NIP-85: Trusted Assertions NIP-86: NIP-86 NIP-87: Ecash Mint Discoverability NIP-87: NIP-87 NIP-88: NIP-88 NIP-88: Polls NIP-89: NIP-89 NIP-89: Recommended Application Handlers NIP-90: Data Vending Machines NIP-90: NIP-90 NIP-92: NIP-92 NIP-94: File Metadata NIP-94: NIP-94 NIP-96: HTTP File Storage Integration NIP-96: NIP-96 NIP-98: HTTP Auth NIP-98: NIP-98 NIP-99: Classified Listings NIP-99: NIP-99 NIP-A0: Voice Messages NIP-A4: Public Messages NIP-B0: Web Bookmarks NIP-B7: Blossom NIP-BE: BLE Communications NIP-C0: Code Snippets NIP-C7: Chats NIP-CC: Geocaching NIP-EE: E2EE Messaging using MLS NIP-F4: Podcasts NIPs mirror Nostr NIPs Nostr Remote Signing nostr-protocol/nips nostr: URI scheme OpenTimestamps Attestations Peer-to-peer Order events Picture-first feeds Podcasts Polls Private Direct Messages Private Key Encryption Proof of Work Protected Events Public Chat Public Messages Reactions Reporting Reposts Request to Vanish Search Capability Sensitive Content Static Websites / nsites Subject tag Text Note References Text Notes and Threads Torrents Trusted Assertions User Statuses Versioned Encryption Voice Messages Web Bookmarks Wiki window.nostr capability for web browsers

Protocol orientation

NIPs11 min readCrays NIP strategy

Crays NIP Strategy

The product decision matrix for which Nostr standards we should use now, prepare next, keep as reference or avoid.

The Crays Nostr product should not chase NIP numbers for their own sake. Each standard has to earn its place in a real user flow: login, discussion, source review, project submission, moderation, relay strategy, media, search, People | Users or crawler evidence.

The quick readThe product decision matrix for which Nostr standards we should use now, prepare next, keep as reference or avoid.
The full archive should feel organized enough to browse for hours.
The full archive should feel organized enough to browse for hours.
Every branch of the atlas should still feel connected to real work.
Every branch of the atlas should still feel connected to real work.

The key correction

NIP-72 was requested because it describes Reddit-style moderated communities, but the current upstream NIPs repository marks it unrecommended and points new group work toward NIP-29. We still keep NIP-72 as compatibility because existing clients and references use it, but the durable our product path should be NIP-7D forum threads, NIP-22 comments, NIP-29 relay-based groups, NIP-32 labels and NIP-56 reports.

That lets us build a product that feels like a Nostr-native Reddit without betting the whole architecture on one discouraged standard.

  • Forum roots. NIP-7D kind 11 starts durable topic threads.
  • Replies. NIP-22 kind 1111 attaches comments to pages, events and forum roots.
  • Groups. NIP-29 becomes the enforced community layer when Crays runs or partners with a relay.
  • Compatibility. NIP-72 stays supported for clients and communities that already understand it.

Decision tiers

This is the practical gate for implementation. Use-now NIPs can appear in the current product design. Prepare-next NIPs are planned but need backend, relay, media, wallet or moderation infrastructure. Reference-only NIPs stay in the archive. Avoid NIPs are deprecated, unrecommended or wrong for new our product surfaces.

Foundation nowUse in the first product layer: NIP-01, NIP-05, NIP-07, NIP-09, NIP-10, NIP-11, NIP-12, NIP-16, NIP-19, NIP-20, NIP-21, NIP-22, NIP-24, NIP-25, NIP-27, NIP-32, NIP-33, NIP-36, NIP-39, NIP-40, NIP-42, NIP-45, NIP-46, NIP-49, NIP-50, NIP-51, NIP-56, NIP-65, NIP-66, NIP-70, NIP-73, NIP-78, NIP-7D, NIP-84, NIP-85, NIP-88, NIP-89, NIP-92, NIP-94, NIP-98, NIP-B0, NIP-B7, NIP-C0
Community spineUse as the product model for the Reddit-like layer: NIP-7D forum roots, NIP-22 comments, NIP-25 reactions, NIP-29 relay groups for enforced spaces, NIP-32 labels, NIP-56 reports and NIP-72 only for compatibility with existing community clients.
Prepare nextUseful once backend, media, wallet or event workflows exist: NIP-17, NIP-23, NIP-34, NIP-37, NIP-44, NIP-47, NIP-52, NIP-53, NIP-57, NIP-58, NIP-59, NIP-5A, NIP-60, NIP-61, NIP-68, NIP-69, NIP-71, NIP-75, NIP-77, NIP-86, NIP-87, NIP-99, NIP-A0, NIP-A4, NIP-C7, NIP-F4
Index/reference onlyShow in the NIP atlas but avoid making them product dependencies now: NIP-02, NIP-13, NIP-14, NIP-18, NIP-30, NIP-35, NIP-38, NIP-48, NIP-55, NIP-64, NIP-CC
Avoid or compatibilityDo not build new core features on these unless there is a narrow reason: NIP-03, NIP-04, NIP-06, NIP-08, NIP-15, NIP-26, NIP-28, NIP-31, NIP-72, NIP-90, NIP-96, NIP-BE, NIP-EE
Standards are boring only until they save the room from chaos.
Standards are boring only until they save the room from chaos.
A good protocol rule is a quiet agreement that lets everyone keep building.
A good protocol rule is a quiet agreement that lets everyone keep building.

What this lets the community do

The community product is not a comment box. It is a signed work system: ask, answer, submit, nominate, review, label, report, vote, claim projects, attach sources and eventually merge accepted evidence into stable our pages.

The NIP choices below map directly to those jobs.

  • Community login. NIP-07, NIP-46, NIP-19, NIP-49 and NIP-98 keep identity usable without server-side private keys.
  • Discussions. NIP-7D, NIP-22, NIP-25, NIP-32 and NIP-56 create forum threads, replies, votes, labels and reports.
  • Groups. NIP-29 gives the future Crays relay a real membership/moderation boundary.
  • Project submissions. NIP-34, NIP-78, NIP-89, NIP-99 and NIP-B0 map repos, app handlers, listings and source bookmarks.
  • People | Users. NIP-05, NIP-24, NIP-39, NIP-51, NIP-65 and NIP-85 support identity, public links and trust signals.
  • Crawler and search. NIP-11, NIP-45, NIP-50, NIP-66, NIP-73, NIP-84 and NIP-B0 turn fresh discoveries into reviewable evidence.
  • Media. NIP-92, NIP-94 and NIP-B7 are the safer media direction; NIP-96 is deprecated.
  • Moderation. NIP-09, NIP-32, NIP-36, NIP-40, NIP-56, NIP-70 and local review states keep the archive from becoming chaotic.

All current NIPs: Crays decision matrix

This matrix is intentionally product-oriented. It does not claim every NIP is bad or good in general; it says whether we should use it for the living Nostr hub now.

NIP-01 iconNIP-01Basic protocol flow. Decision: use now. Crays use: Event validation, signing model, relay messages and every review/event template. NIP-02 iconNIP-02Follow list. Decision: prepare. Crays use: People discovery, social graph hints and trusted contributor context. NIP-03 iconNIP-03OpenTimestamps attestations. Decision: avoid. Crays use: Keep as archive reference only; upstream marks it unrecommended. NIP-04 iconNIP-04Encrypted direct message. Decision: avoid. Crays use: Do not build new private messaging on it; use NIP-17/NIP-44/NIP-59 path later. NIP-05 iconNIP-05DNS identity. Decision: use now. Crays use: Readable Crays and public-user identity checks. NIP-06 iconNIP-06Mnemonic seed phrase. Decision: avoid. Crays use: Do not push users into mnemonic generation; prefer signer/local nsec flow through nostr-login. NIP-07 iconNIP-07Browser signer. Decision: use now. Crays use: Primary Community login and signing path through window.nostr. NIP-08 iconNIP-08Old mention handling. Decision: avoid. Crays use: Deprecated by NIP-27; index only. NIP-09 iconNIP-09Event deletion request. Decision: use now. Crays use: Respect deletion requests in cached/community surfaces where possible. NIP-10 iconNIP-10Text notes and threads. Decision: use now. Crays use: Compatibility for ordinary Nostr threads and quoted social context. NIP-11 iconNIP-11Relay information. Decision: use now. Crays use: Relay directory, capability checks, policy display and crawler metadata. NIP-12 iconNIP-12Generic tag queries. Decision: use now. Crays use: Relay filtering for page tags, people, projects, labels and communities. NIP-13 iconNIP-13Proof of work. Decision: reference. Crays use: Possible anti-spam signal only, never a mainstream user requirement. NIP-14 iconNIP-14Subject tag. Decision: prepare. Crays use: Useful for discussion titles and support threads. NIP-15 iconNIP-15Marketplace. Decision: avoid. Crays use: Upstream recommends NIP-99 instead. NIP-16 iconNIP-16Event treatment. Decision: use now. Crays use: Mandatory relay/client treatment rules for replaceable and ephemeral events. NIP-17 iconNIP-17Private direct messages. Decision: prepare. Crays use: Future private moderator/user messages, with NIP-44/NIP-59. NIP-18 iconNIP-18Reposts. Decision: prepare. Crays use: Curation and source amplification, not needed for first review flow. NIP-19 iconNIP-19bech32 entities. Decision: use now. Crays use: npub, note, nevent and naddr display/parse rules. NIP-20 iconNIP-20Command results. Decision: use now. Crays use: Relay publish status and event acceptance/failure handling. NIP-21 iconNIP-21nostr URI scheme. Decision: use now. Crays use: Deep links from our pages into Nostr clients. NIP-22 iconNIP-22Comments. Decision: use now. Crays use: Page discussions, replies and community threads. NIP-23 iconNIP-23Long-form content. Decision: prepare. Crays use: Future article/project posts and canonical long-form mirrors. NIP-24 iconNIP-24Extra metadata. Decision: use now. Crays use: Richer profile rendering for People and project maintainers. NIP-25 iconNIP-25Reactions. Decision: use now. Crays use: Upvotes, downvotes, helpful markers and lightweight feedback. NIP-26 iconNIP-26Delegated signing. Decision: avoid. Crays use: Upstream warns against it; use NIP-46 signers instead. NIP-27 iconNIP-27Text note references. Decision: use now. Crays use: Render mentions, note links and source references. NIP-28 iconNIP-28Public chat. Decision: avoid. Crays use: Upstream points to NIP-29; keep only for compatibility context. NIP-29 iconNIP-29Relay-based groups. Decision: use now. Crays use: Primary path for enforceable Crays groups once a relay is available. NIP-30 iconNIP-30Custom emoji. Decision: reference. Crays use: Nice-to-have display feature, not product infrastructure. NIP-31 iconNIP-31Unknown event kinds. Decision: avoid. Crays use: Upstream marks it unrecommended. NIP-32 iconNIP-32Labels. Decision: use now. Crays use: Moderation labels, review states, source quality and topic classification. NIP-33 iconNIP-33Parameterized replaceable events. Decision: use now. Crays use: Addressable profiles, lists, app data and community definitions. NIP-34 iconNIP-34Git stuff. Decision: prepare. Crays use: Developer/project submissions and repository events. NIP-35 iconNIP-35Torrents. Decision: reference. Crays use: Media/library archive reference only. NIP-36 iconNIP-36Sensitive content. Decision: use now. Crays use: Content warning and moderation display. NIP-37 iconNIP-37Draft wraps. Decision: prepare. Crays use: Future safer draft workflows for contributors. NIP-38 iconNIP-38User statuses. Decision: reference. Crays use: Profile detail, not a core Crays flow. NIP-39 iconNIP-39External identities. Decision: use now. Crays use: People | Users verification and cross-profile source trails. NIP-40 iconNIP-40Expiration timestamp. Decision: use now. Crays use: Temporary challenges, drafts and time-bound moderation objects. NIP-42 iconNIP-42Client relay authentication. Decision: use now. Crays use: Private/paid/search relay access and future Crays relay auth. NIP-43 iconNIP-43Relay access metadata. Decision: prepare. Crays use: Relay directory, paid/free policy and access request tracking. NIP-44 iconNIP-44Versioned encryption. Decision: prepare. Crays use: Future private messages and encrypted app data. NIP-45 iconNIP-45Event counts. Decision: use now. Crays use: Search/relay metrics, discussion counts and moderation summaries. NIP-46 iconNIP-46Remote signing. Decision: use now. Crays use: Nostr Connect/Bunker login with private keys kept outside the site. NIP-47 iconNIP-47Nostr Wallet Connect. Decision: prepare. Crays use: Wallets, zaps, paid community features and creator flows later. NIP-48 iconNIP-48Bridged events. Decision: reference. Crays use: Useful for cross-network context, not a core dependency. NIP-49 iconNIP-49Private key encryption. Decision: use carefully. Crays use: Only for explicit local backup/storage flows; never server-side. NIP-50 iconNIP-50Search capability. Decision: use now. Crays use: Relay search and Search Atlas expansion beyond static JSON. NIP-51 iconNIP-51Lists. Decision: use now. Crays use: Curations, bookmarks, topic lists, people lists and moderator sets. NIP-52 iconNIP-52Calendar events. Decision: prepare. Crays use: Nostr conferences, Crays events and venue programming later. NIP-53 iconNIP-53Live activities. Decision: prepare. Crays use: Live streams, talks, event rooms and media moments later. NIP-54 iconNIP-54Wiki. Decision: prepare. Crays use: Potential community knowledge pages after review governance exists. NIP-55 iconNIP-55Android signer. Decision: reference. Crays use: Mobile signer compatibility reference, not web core. NIP-56 iconNIP-56Reporting. Decision: use now. Crays use: Reports, abuse queue and moderation evidence. NIP-57 iconNIP-57Lightning zaps. Decision: prepare. Crays use: Creator support, project funding and reputation signals later. NIP-58 iconNIP-58Badges. Decision: prepare. Crays use: Contributor badges, moderator trust and proof-of-role later. NIP-59 iconNIP-59Gift wrap. Decision: prepare. Crays use: Private messaging path with NIP-17/NIP-44. NIP-5A iconNIP-5AStatic websites. Decision: prepare. Crays use: Future nsite publishing and Crays mirror experiments. NIP-60 iconNIP-60Cashu wallets. Decision: prepare. Crays use: Wallet research and future commerce/wallet pages. NIP-61 iconNIP-61Nutzaps. Decision: prepare. Crays use: Cashu/Nostr value flow research. NIP-62 iconNIP-62Request to vanish. Decision: prepare. Crays use: Privacy and cache-policy handling for future backend. NIP-64 iconNIP-64Chess. Decision: reference. Crays use: Keep in the NIP atlas only. NIP-65 iconNIP-65Relay list metadata. Decision: use now. Crays use: User relay choice, outbox hints and default relay strategy. NIP-66 iconNIP-66Relay liveness monitoring. Decision: use now. Crays use: Relay health, discovery and crawler evidence. NIP-68 iconNIP-68Picture-first feeds. Decision: prepare. Crays use: Media/creator surfaces later. NIP-69 iconNIP-69Peer-to-peer order events. Decision: prepare. Crays use: Commerce and marketplace research later. NIP-70 iconNIP-70Protected events. Decision: use now. Crays use: Anti-spam and moderation policy display. NIP-71 iconNIP-71Video events. Decision: prepare. Crays use: Video/media route and event clips later. NIP-72 iconNIP-72Moderated communities. Decision: compatibility. Crays use: Do not make it the only spine; upstream recommends NIP-29 for new group work. NIP-73 iconNIP-73External content IDs. Decision: use now. Crays use: Crawler matching, citations, GitHub/issues/articles and duplicate detection. NIP-75 iconNIP-75Zap goals. Decision: prepare. Crays use: Fundraising and project goals later. NIP-77 iconNIP-77Negentropy syncing. Decision: prepare. Crays use: Cache/index sync for backend phase. NIP-78 iconNIP-78Custom app data. Decision: use now. Crays use: Crays review drafts and app-specific queue state. NIP-7D iconNIP-7DForum threads. Decision: use now. Crays use: Reddit-like forum roots paired with NIP-22 replies. NIP-84 iconNIP-84Highlights. Decision: use now. Crays use: Source highlights and research snippets with attribution. NIP-85 iconNIP-85Trusted assertions. Decision: use now. Crays use: Trust/reputation assertions for source and contributor quality. NIP-86 iconNIP-86Relay management API. Decision: prepare. Crays use: Crays relay administration later. NIP-87 iconNIP-87Ecash mint discoverability. Decision: prepare. Crays use: Wallet and commerce research later. NIP-88 iconNIP-88Polls. Decision: use now. Crays use: Community polls for priorities, not binding governance yet. NIP-89 iconNIP-89Recommended application handlers. Decision: use now. Crays use: App directory, project submissions and handler recommendations. NIP-90 iconNIP-90Data vending machines. Decision: avoid core. Crays use: Upstream marks it unrecommended; use only as research context for automation. NIP-92 iconNIP-92Media attachments metadata. Decision: use now. Crays use: Media display, crawler extraction and safe attachment metadata. NIP-94 iconNIP-94File metadata. Decision: use now. Crays use: File/source/media records before any upload becomes editorial. NIP-96 iconNIP-96HTTP file storage. Decision: avoid. Crays use: Deprecated in favor of NIP-B7/Blossom. NIP-98 iconNIP-98HTTP auth. Decision: use now. Crays use: Signed API/challenge auth for future review and crawler backend. NIP-99 iconNIP-99Classified listings. Decision: prepare. Crays use: Commerce listings, marketplace and project offers later. NIP-A0 iconNIP-A0Voice messages. Decision: prepare. Crays use: Audio/community media later. NIP-A4 iconNIP-A4Public messages. Decision: prepare. Crays use: Public messaging experiments later. NIP-B0 iconNIP-B0Web bookmarks. Decision: use now. Crays use: Crawler findings, source queue and public bookmark trails. NIP-B7 iconNIP-B7Blossom media. Decision: use now. Crays use: Preferred media upload/storage path once moderation exists. NIP-BE iconNIP-BEBLE communications. Decision: avoid. Crays use: Upstream marks it unrecommended. NIP-C0 iconNIP-C0Code snippets. Decision: use now. Crays use: Developer route, examples and implementation notes. NIP-C7 iconNIP-C7Chats. Decision: prepare. Crays use: Chat-like flows later, after group/thread model is stable. NIP-CC iconNIP-CCGeocaching events. Decision: reference. Crays use: Archive curiosity, not our product dependency. NIP-EE iconNIP-EEMLS E2EE messaging. Decision: avoid. Crays use: Upstream says superseded; use newer messaging paths later. NIP-F4 iconNIP-F4Podcasts. Decision: prepare. Crays use: Media/podcast route and creator submissions later.

Hard product rules

A NIP is not a feature until the user can understand what they are signing, where it appears, how it is moderated and whether it can change an editorial page. These rules protect the product while still inviting the Nostr community in.

  • No server-held keys. The Community login path must never send private keys to us.
  • No NIP-72-only bet. NIP-72 remains compatibility, not the only community architecture.
  • No blind crawler publishing. Crawler output becomes findings and review items, never instant editorial content.
  • No deprecated media path. Use Blossom/NIP-B7 for the future media path instead of NIP-96.
  • No DVM core dependency. NIP-90 is interesting for automation history, but not the first automation spine because upstream warns against it.
Back to the Crays Nostr page