Amethyst will be removing NIP-04 soon. This is great news because NIP-04 for DMs needs to go away, however this will also will make DMing people using Amethyst from Primal and Damus impossible. DMs are a cluster fuck, but it needs to happen. Sometimes you have to rip the bandaid off.
Discussion
I absolutely do not love that other clients stay with Nip04 until this day. ๐ซ
It's suboptimal.
What's the difference (or advantage) of nip17 over nip04?
It doesn't leak metadata (who send a dm to whom at what time)
No metadata leak with NIP-17. I advise you to watch this great presentation https://www.youtube.com/watch?v=PWKd9aoZ-Cg from nostr:npub1zuuajd7u3sx8xu92yav9jwxpr839cs0kc3q6t56vd5u9q033xmhsk6c2uc
I would remove DM entirely if I could. I'm probably a minority. I get that. Maybe my opinion would change if the system was improved.
Using 0xChat for DMs is an option for Primal and Damus users. Thatโs what Iโm currently doing, but it is a bit of a pain to need a separate app for DMs. Iโm sure a lot of people wonโt be aware of the incompatibilities though so will just miss out on seeing DMs.
I agree. I use 0xchat.
cant happen soon enough. Leaving the shitty dm spec in play all this time has been super suboptimal.
nostr:npub1acg6thl5psv62405rljzkj8spesceyfz2c32udakc2ak0dmvfeyse9p35c whats gonna happen w gossip?
If you send a DM to somebody that has advertised DM relays, it will use NIP-17. Otherwise it will use NIP-04 as a fallback. You can read DMs using both standards.
I'm not going to change this anytime soon. NIP-04 isn't "broken", it is just not as good as NIP-17.
People should understand that nostr and it's various NIP standards are new things that aren't perfect things and if you want state-of-the-art privacy or state-of-the-art security, we simply don't have it here. We only have state-of-the-art decentralization, which yields a less-than-state-of-the-art censorship resistance.
If all the big clients implement NIP-17, then I will remove NIP-04.
BTW: for users that use multiple clients, if any of them advertise DM relays, then gossip sends them NIP-17 DMs. If they then switch to the NIP-04-only client they won't see that DM, they will only see it on their NIP-17 supporting client. That fact alone should provide motivation for users to switch away from NIP-04-only clients, and thereby motivation for such client devs to implement NIP-17.
Can you please explain this to someone with basic experience in programming but not nearly as advanced? Asking for a friend ๐ฅน
There are two standards for DMs over nostr. The original NIP-04 and the more secure newer NIP-17.
NIP-17 says that people need to advertise a kind-10050 event that advertises which relays they receive NIP-17 style DMs on.
So my client, gossip, when you want to send a DM to somebody, it first looks for a kind-10050 for that person. If it finds one, it knows that they are NIP-17 capable, so it chooses the more secure DM standard.
But the slight fly in the ointment is that if such a person goes back to a NIP-04 client (perhaps they use multiple nostr clients) on that NIP-04 client they won't see the NIP-17 DM.
It doesn't make much sense to send a NIP-04 DM in addition to the NIP-17 one for backwards compatibility because if we do, we will never achieve better security. And my client cannot tell that a user wants backwards compability because signalling such a desire wasn't in the NIP-17 standard.
So by no fault of my own, and no intention to "push" clients to upgrade to NIP-17, a bit of a push to do it has arisen nonetheless.
Oh wow ok I didn't realize that. So if I send another gossip guy a DM, it automatically does it?
Is there any way to know if its using 04 or 17?
No way? nostr:nprofile1qqs9xtvrphl7p8qnua0gk9zusft33lqjkqqr7cwkr6g8wusu0lle8jcpp3mhxue69uhkyunz9e5k7qg4waehxw309ajkgetw9ehx7um5wghxcctwvsqs6amnwvaz7tmwdaejumr0ds2g5zx8 refusing to implement yet another crucial part of the protocol, couldn't be nepotism #nsex