nostr_core_lib/todo.md

5.7 KiB

Tier 1: Foundational & High-Priority NIPs (The Essentials)

These are fundamental features that most Nostr applications rely on.

| NIP | Description | nostr_core_lib Status | nak / nostr-tools Status | Recommendation | | :-- | :--- | :--- | :--- | :--- | | NIP-04 | Encrypted Direct Messages | Missing | Supported | High Priority. Essential for private communication. The encrypt / decrypt functions are a must-have. | | NIP-05 | Mapping to DNS-based Names | Missing | Supported | High Priority. Needed for user-friendly identifiers (e.g., user@domain.com). We should add a function to verify these. | | NIP-07 | window.nostr for Web Browsers | Missing | Supported | Medium Priority (for C). This is browser-specific, but we should consider adding helper functions to format requests for browser extensions that implement NIP-07. | | NIP-11 | Relay Information Document | Missing | Supported | High Priority. Crucial for client-side relay discovery and capability checking. A function to fetch and parse this JSON is needed. | | NIP-21 | nostr: URI Scheme | Missing | Supported | Medium Priority. Useful for linking to profiles, events, etc. from outside Nostr clients. We should add parsing and generation functions. | | NIP-57| Lightning Zaps | Missing | Supported | High Priority. Zaps are a cornerstone of value-for-value on Nostr. We need functions to create and verify zap request events (Kind 9734) and zap receipt events (Kind 9735). |


Tier 2: Advanced & Ecosystem NIPs (Expanding Capabilities)

These features enable more complex interactions and integrations.

| NIP | Description | nostr_core_lib Status | nak / nostr-tools Status | Recommendation | | :-- | :--- | :--- | :--- | :--- | | NIP-25 | Reactions | Missing | Supported | Medium Priority. Relatively simple to implement (Kind 7 events) and common in social clients. | | NIP-26 | Delegated Event Signing| Missing| Supported| Medium Priority. Allows for one key to authorize another to sign events, useful for temporary or restricted keys. | | NIP-44 | Versioned Encryption (v2) | Missing | Supported | High Priority (along with NIP-04). Newer standard for encryption. We should aim to support both, but prioritize NIP-44 for new applications. | | NIP-46 | Nostr Connect (Remote Signing)| Missing | Supported | Low Priority (for C library). More of an application-level concern, but we could provide structures and helpers to facilitate communication with signing "bunkers". | | NIP-47 | Nostr Wallet Connect | Missing | Supported| Low Priority (for C library). Similar to NIP-46, this is primarily for app-level integration, but helpers would be valuable. | | NIP-58 | Badges | Missing | Supported | Medium Priority. Defines how to award and display badges (Kind 30008/30009 events). | | NIP-94 | File Metadata | Missing | Supported| Medium Priority. For events that reference external files (images, videos), providing metadata like hashes and URLs. | | NIP-98 | HTTP Auth| Missing | Supported| High Priority. Allows services to authenticate users via a Nostr event, a powerful tool for integrating Nostr identity with web services. |


Tier 3: Specialized & Less Common NIPs (Future Considerations)

| NIP | Description | nostr_core_lib Status | nak / nostr-tools Status | Recommendation | | :-- | :--- | :--- | :--- | :--- | | NIP-18| Reposts | Missing | Supported| Low Priority. Simple to implement (Kind 6 events) but less critical than other features. | | NIP-28| Public Chat Channels| Missing | Supported| Low Priority. Defines event kinds for creating and managing public chat channels. | | NIP-39| External Identities | Missing | Supported| Low Priority. For linking a Nostr profile to identities on other platforms like GitHub or Twitter. | | NIP-42 | Relay Authentication | Missing| Supported| Medium Priority. For paid relays or those requiring login. Essential for interacting with the full relay ecosystem. | | NIP-43| Musig2 (Multisig) | Missing | Supported| Low Priority. A very powerful but niche feature. Complex to implement correctly. |


Proposed Roadmap

Based on this analysis, I recommend the following roadmap, prioritized by impact and foundational need:

  1. Immediate Next Steps (High-Impact Basics):

    • Implement NIP-04 & NIP-44: Encrypted messaging is a huge gap.
    • Implement NIP-11: Fetching and parsing relay info documents.
    • Implement NIP-05: DNS-based name verification.
    • Implement NIP-57: Create and verify Zap events.
    • Implement NIP-98: HTTP Auth for web services.
  2. Phase 2 (Ecosystem & Social Features):

    • Implement NIP-25: Reactions.
    • Implement NIP-26: Delegation.
    • Implement NIP-42: Relay Authentication.
    • Implement NIP-21: nostr: URI handling.
    • Implement NIP-58: Badges.
  3. Phase 3 (Advanced & Specialized Features):

    • Implement NIP-18: Reposts.
    • Implement NIP-43: Musig2 (this is a big one).
    • Add helpers for NIP-07, NIP-46, and NIP-47.

What are your thoughts on this assessment and proposed roadmap? We can adjust the priorities based on your goals for the library. Once we have a plan you're happy with, I can start implementing the first features when you're ready to switch to

Act Mode (⌘⇧A).