Summary in quote form from a nostr DM User
I gave up. Either it works, but is not encrypted - or it doesn't work for me, in which case I just give up and fall back to "tools of the old world". -dissatisfied nostr DM user
Libraries & SDKs
| library/sdk |
nip-04 |
nip-17 |
nip-44 |
MLS |
comment |
| SNSTR |
✅ |
✅ |
✅ |
|
TypeScript library |
| applesauce SDK |
|
✅ |
✅ |
|
Used by noStrudel, provides relay connections, signing, NIP-17 DM support |
| Vector SDK |
|
✅ |
|
|
Rust library for building Nostr bots with private messaging, NIP-96 file uploads, gift wrap events |
| marmot-ts |
|
|
|
✅ |
TypeScript MLS messaging SDK, MIP-03 group messaging |
| MDK |
|
|
|
✅ |
Marmot Development Kit for MLS, v0.6.0 |
| NDK |
✅ |
✅ |
✅ |
|
Gift wrapping + NIP-17 + NIP-44 encryption |
problem statement
Today there are at least four (4) direct messages standards implemented on nostr.
NIP-04 (used by iOS damus)
NIP-17 (amethyst)
double rachet signal (@mmalmi Iris)
MLS (used by white noise @erskingardner)
Example incompatibility betwee Amethyst and Damus: #152
When sending DMs to another profile on nostr, it is not always immediately clear which app(s), and which standard(s) the DM counterparty/receiver is able to receive and read.
Ideally, there is some under the hood communication that takes place, so that DM senders don't have to think about DM standards, and which apps implement which standard(s).
How might we solve this multi-DM standard problem?
cc @mmalmi @erskingardner @vitorpamplona @jb55
cryptography
NIP-17 is encrypted by NIP-44. NIP-44 has been audited. See https://github.com/paulmillr/nip44/blob/ce63c2eaf345e9f7f93b48f829e6bdeb7e7d7964/audit-2023.12.pdf and https://cure53.de/audit-report_nip44-implementations.pdf.
Summary in quote form from a nostr DM User
I gave up. Either it works, but is not encrypted - or it doesn't work for me, in which case I just give up and fall back to "tools of the old world".-dissatisfied nostr DM usernostr-mls) removed from repo — link was 404nak gift wrap/nak gift unwrap(NIP-59 gift wrap for NIP-17 DMs)--dm <pubkey>for NIP-04;--giftwrap-to <pubkey>creates kind 1059 gift wrap with NIP-44 encryptionget_directmsg_contactscaching API.all-nipsfeature flag in Cargo.toml, but no NIP-17 DM UI code found in repocomputeGroupChatId()idfield (NIP-59 requires unsigned but identified rumors). evidence: PR #385,Nip17.ktLibraries & SDKs
problem statement
Today there are at least four (4) direct messages standards implemented on nostr.
NIP-04 (used by iOS damus)
NIP-17 (amethyst)
double rachet signal (@mmalmi Iris)
MLS (used by white noise @erskingardner)
Example incompatibility betwee Amethyst and Damus: #152
When sending DMs to another profile on nostr, it is not always immediately clear which app(s), and which standard(s) the DM counterparty/receiver is able to receive and read.
Ideally, there is some under the hood communication that takes place, so that DM senders don't have to think about DM standards, and which apps implement which standard(s).
How might we solve this multi-DM standard problem?
cc @mmalmi @erskingardner @vitorpamplona @jb55
cryptography
NIP-17 is encrypted by NIP-44. NIP-44 has been audited. See https://github.com/paulmillr/nip44/blob/ce63c2eaf345e9f7f93b48f829e6bdeb7e7d7964/audit-2023.12.pdf and https://cure53.de/audit-report_nip44-implementations.pdf.