Skip to content

Expand vocabulary coverage: Missing critical Nostr protocol terms #16

Description

@melvincarvalho

Severity: WARNING (Completeness Gap)

Problem

The vocabulary currently defines only 18 terms, covering basic Event and Person properties. However, many critical Nostr protocol concepts are missing, making the schema incomplete for real-world usage.

Missing Critical Terms

Event Core (NIP-01)

  • id - Event identifier (SHA256 hash) - CRITICAL MISSING FIELD
  • Currently defined: pubkey, created_at, kind, tags, content, sig
  • Missing: id (the most fundamental field!)

Person/Profile Extensions (NIP-05, NIP-57)

  • nip05 - NIP-05 verification identifier (user@domain.com)
  • lud06 - Lightning Address (LNURL)
  • lud16 - Lightning Address (user@domain format)

Relay Metadata (NIP-11, NIP-65)

  • relay_url - Relay URL
  • read - Read relay marker
  • write - Write relay marker
  • relay_metadata - Relay information document

Content Types (Various NIPs)

  • reactions - Event reactions/likes (NIP-25)
  • zaps - Lightning zaps (NIP-57)
  • long_form_content - Long-form articles (NIP-23)
  • event_deletion - Deletion requests (NIP-09)
  • repost - Reposts/quotes (NIP-18)
  • reporting - Content reports (NIP-56)

Social Graph (NIP-02, NIP-51)

  • muted - Muted pubkeys
  • bookmarks - Bookmarked events
  • communities - Community memberships
  • lists - Generic lists (NIP-51)

Events & Scheduling (NIP-52, NIP-53)

  • calendar_event - Calendar events
  • rsvp - Event RSVPs
  • calendar_time - Event timing

Authentication & Encryption (NIP-04, NIP-44)

  • encrypted_message - Encrypted DM content
  • auth_challenge - Authentication challenge

Current Coverage Analysis

Covered NIPs (Partial):

  • NIP-01: Basic protocol (missing id field!)
  • NIP-00: Person metadata (basic fields only)

Not Covered:

  • NIP-02: Contact List
  • NIP-04: Encrypted Direct Messages
  • NIP-05: Mapping Nostr keys to DNS-based identifiers
  • NIP-09: Event Deletion
  • NIP-11: Relay Information Document
  • NIP-18: Reposts
  • NIP-23: Long-form Content
  • NIP-25: Reactions
  • NIP-51: Lists
  • NIP-52: Calendar Events
  • NIP-56: Reporting
  • NIP-57: Lightning Zaps
  • NIP-65: Relay List Metadata

Proposed Expansion

Target: 40-50 terms to cover major NIPs comprehensively.

Phase 1 (Critical - 5 terms):

  1. id - Event identifier
  2. nip05 - DNS verification
  3. lud16 - Lightning address
  4. relay_url - Relay endpoint
  5. event_reference - Event cross-references

Phase 2 (High Priority - 10 terms):

  1. reactions
  2. zaps
  3. long_form_content
  4. muted
  5. bookmarks
  6. communities
  7. lists
  8. encrypted_message
  9. auth_challenge
  10. event_deletion

Phase 3 (Medium Priority - 10 terms):

  1. calendar_event
  2. rsvp
  3. repost
  4. reporting
  5. relay_metadata
  6. read_relay
  7. write_relay
  8. And more...

Impact

Current state:

  • Schema covers ~30% of common Nostr usage
  • Cannot represent many real-world Nostr events
  • Incomplete for production applications

After expansion:

  • 80-90% coverage of common use cases
  • Full NIP-01 compliance (with id field)
  • Production-ready for most Nostr applications

Implementation Strategy

Option 1: Add all terms incrementally via PRs
Option 2: Define priority tiers and implement in phases
Option 3: Community contribution - document needed terms and invite PRs

Priority

HIGH - Schema is incomplete without these terms, particularly the missing id field which is fundamental to Nostr events.

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions