Files
bitvid/NIP_INVENTORY.md
T
google-labs-jules[bot]andPR0M3TH3AN 36d79afc55 feat: verify NIP compliance and add NIP-07 test
- Add `tests/compliance/nip07_compliance.test.mjs` to verify NIP-07 retry logic.
- Update `NIP_INVENTORY.md` with verified compliance status for NIPs 04, 07, 44, 51, 56, 65, and kinds 30078, 30079.
- Generate `nip-report-2026-02-12.md` summarizing findings.
- Update `TEST_LOG.md` and `TODO.md`.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-12 13:38:26 +00:00

3.9 KiB

NIP Inventory

NIP / Kind Description Repo Locations Status Notes
NIP-01 Basic Protocol Flow js/nostr/client.js, docs/nips/01.md Compliant Base implementation verified via client.js.
NIP-04 Encrypted Direct Message js/nostr/dmDecryptWorker.js, js/nostr/client.js Compliant Fallback verified in nip04_44_compliance.test.mjs.
NIP-07 window.nostr Capability js/nostr/nip07Permissions.js, js/nostr/adapters/nip07Adapter.js Compliant Retry logic and timeouts verified in nip07_compliance.test.mjs.
NIP-09 Event Deletion js/nostr/client.js, docs/nips/09.md Partial deleteAllVersions implements Kind 5 logic.
NIP-10 Text Notes & Threads js/nostr/commentEvents.js, docs/nips/10.md Compliant buildCommentEvent implements NIP-10 threading markers (E, P, K tags).
NIP-17 Private Direct Messages js/nostr/client.js, js/ui/profileModal/ProfileDirectMessageRenderer.js Compliant Explicit support for Gift Wraps (Kind 1059) and Seals (Kind 13).
NIP-19 bech32-encoded entities js/utils/nostrHelpers.js, js/nostr/nip71.js Compliant Uses nostr-tools for correct encoding/decoding.
NIP-21 nostr: URI scheme docs/nips/21.md Unknown Usage in content parsing verified in js/utils/nostrHelpers.js.
NIP-33 Addressable Events js/nostr/client.js Compliant d tag usage verified in video_note_compliance.test.mjs.
NIP-44 Encrypted Payloads (Versioned) js/nostr/dmDecryptWorker.js, js/nostr/client.js Compliant Preference for v2 verified in nip04_44_compliance.test.mjs.
NIP-46 Nostr Remote Signing js/nostr/nip46Client.js Compliant Full client implementation for remote signing.
NIP-51 Lists js/userBlocks.js, js/subscriptions.js Compliant Mute list (Kind 10000) and Subscription list (Kind 30000) logic aligns with spec.
NIP-56 Reporting js/services/moderationService.js, docs/nips/56.md Compliant buildReportEvent implements Kind 1984.
NIP-59 Gift Wrap js/nostr/client.js Compliant Implemented as part of NIP-17.
NIP-65 Relay List Metadata js/relayManager.js Compliant Verified Kind 10002 loading and parsing in nip65_compliance.test.mjs.
NIP-71 Video Events js/nostr/nip71.js Compliant Verified tag generation for Kind 30078 in video_note_compliance.test.mjs.
NIP-78 Application-specific data js/services/hashtagPreferencesService.js Compliant Used for hashtag preferences (Kind 30015).
NIP-94 File Metadata js/nostr/videoPublisher.js Compliant buildVideoMirrorEvent implements Kind 1063.
NIP-98 HTTP Auth js/services/r2Service.js Compliant Used for R2 service authentication (Kind 27235).
Kind 21 NIP-71 Video js/nostr/nip71.js Compliant Implemented.
Kind 22 NIP-71 Short Video js/nostr/nip71.js Compliant Implemented.
Kind 10000 Mute List js/userBlocks.js Compliant Uses standard NIP-51 (no d tag for main list).
Kind 10002 Relay List js/relayManager.js Compliant Verified.
Kind 1063 File Header js/nostr/videoPublisher.js Compliant Implemented for NIP-94 mirroring.
Kind 30000 Subscription List js/subscriptions.js Compliant Implements NIP-51 follow sets.
Kind 30015 Hashtag Preferences js/services/hashtagPreferencesService.js Compliant Implemented.
Kind 30078 App Data js/nostr/client.js, js/nostr/videoPayloadBuilder.js Compliant Core video note kind. Verified structure.
Kind 30079 Watch History js/nostr/watchHistory.js, config/instance-config.js Compliant Parameterized replaceable list (custom kind). Implements bucketing and encryption.