Skip to content

design(dm): UX for NIP-04/NIP-17 dual-protocol messaging and reachability #2435

@NotThatKindOfDrLiz

Description

@NotThatKindOfDrLiz

Summary

Divine currently sends DMs using a dual-protocol strategy: NIP-17 (gift-wrapped, metadata-private) as the primary protocol, with a NIP-04 (kind 4) fallback copy for interoperability with clients like Damus and Primal that don't support NIP-17.

This works technically, but there are UX and design gaps around how we communicate this to users and how we ensure reachability for users we need to contact.

Problem

  • Most popular Nostr clients (Damus, Primal, etc.) still use NIP-04 as their primary DM protocol
  • Some Divine users self-custody their keys and have no email address on file — DMs are the only reliable way to reach them (moderation notices, account communications, etc.)
  • If a user doesn't have push notifications enabled for Divine, they may not know Divine has messaged them — but they would see it if the NIP-04 copy surfaces in their primary client
  • There's currently no indication in the Divine UI about whether a message was sent/received via NIP-04 or NIP-17, or what the privacy implications are
  • Users have no way to understand the metadata trade-offs between the two protocols

Design questions to resolve

  • How should the UI indicate whether a conversation or message is using NIP-04 vs NIP-17?
  • Should users see any kind of privacy indicator (e.g., NIP-17-only conversations are "private", dual-send conversations have visible metadata on relays)?
  • When Divine sends system/moderation messages to users, should it always include the NIP-04 copy to maximize the chance the user sees it?
  • Should there be a user-facing setting to control protocol preference?
  • How do we handle the case where a conversation starts as dual-send but we later detect the recipient supports NIP-17?

Context

Metadata

Metadata

Type

No type

Projects

Status

Triage

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions