Sooly that’s awesome! Let me decode some of that AI speak for you … and add my thoughts:
- NIP-17 “implements” NIP-59 Gift Wrapped events (which in turn implements NIP-44 encryption) providing “kind 14” Private Direct Messages. It’s a number jumble, but bottom line is that this is the “preferred” way for sending and receiving “no metadata leak” private direct messages.
- “double-layer NIP-44 encryption … Ephemeral keys and timestamp randomization for metadata protection” (blah blah) just means that its NIP-59 Gift Wrap compliant.
- “Automatic fallback to NIP-04…” is a nice touch, for decrypting incoming messages. But NIP-04 DOES NOT support group messages (only one to one) AND leaves metadata exposed.
You want to do everything you can to keep this “NIP 04 fallback” from being implemented. Here’s some things to consider :
- Gift Wrap compatible relays (required because NO METADATA is available for relays to assure that any gift wrapped messages is not spam … so many will reject them outright) is the only reason this fallback is needed.
- you can setup a compatible “gift wrap relay” for use by your app (don’t worry about limiting access quite yet, just get the relay and use it) This can be easily spun up and configured from http://relay.tools (made by nostr:npub1qqqqqqz2gq6drwdc6fzc8c38djw8f28nlv76qt44rw5snrzcqnhsh8zmzc )
- for the “receiving user” using your app … well if your user does NOT have a ‘kind 1059’ event published to specify preferred relays relays for Gift Wrapped DMs , your app can offer to “add your relay to the user’s ‘kind 1059’ DM relay list”.
- in the case that your app receives “kind 04” messages, or if your app user wants to send a “kind 14” mesaage to a user without gift wrap relay specified … it MAY BE possible for your app to offer the external user usage of your app’s DM relay. Implementing this would definitely be off standard … and I’m personally working on some sensible UX flow for this … something like : you app sends a “kind 04” DM indicating that “so and so user wants to send you private DMs” and offering some links to supporting apps and relays … or something. This part is a bit more tricky.
I hope this long message was helpful and not too verbose. Last thing I’ll say is that transparency is key. Always indicating to the end user what kind of message it is and their publishing options will go a long way to making this whole mess less confusing for you and your app users.