aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2026-01-28 22:51:34 -0800
committerAdam Soltys <[email protected]>2026-01-28 22:51:34 -0800
commit568a936e08586b7ac07b4c7adaf5bf9b8ef6ba2f (patch)
tree56a45c92cd37c8ba1d1d794d300af0462c86dbf3 /doc
parent685d085596a1a20d2b5680cf8000313173bbe6fd (diff)
parent838f74effb5b45e545bf68a4659e1e36c14da81f (diff)
downloadcoinos-ui-nip17dm-fixes.tar.gz
coinos-ui-nip17dm-fixes.zip
Merge remote-tracking branch 'origin/nip17dm'nip17dm-fixes
# Conflicts: # .env.sample
Diffstat (limited to 'doc')
-rw-r--r--doc/nostr-messages.md37
1 files changed, 37 insertions, 0 deletions
diff --git a/doc/nostr-messages.md b/doc/nostr-messages.md
new file mode 100644
index 00000000..a90f9a4a
--- /dev/null
+++ b/doc/nostr-messages.md
@@ -0,0 +1,37 @@
+# coinos Nostr Messages - Technical Information
+
+Last Updated: 2026-01-28
+
+CoinOS uses [Nostr](https://github.com/nostr-protocol/nostr)'s [NIP-17](https://github.com/nostr-protocol/nips/blob/master/17.md) for its direct message system. A CoinOS account is not necessary to send or receive messages using this system, and CoinOS users can interact with non-CoinOS users.
+
+## Relay Usage
+
+CoinOS will search the relays in the environment variable `PUBLIC_DM_RELAYS` for kind-10050 events. `PUBLIC_DM_RELAYS` is a comma-separated list of URLs. Any message sent to a user will go to the relays in their kind-10050 event, as per NIP-17.
+
+## Features
+
+- Send & receive messages
+- Can use either browser extensions ([NIP-07](https://github.com/nostr-protocol/nips/blob/master/07.md)) or user accounts' saved nostr keys.
+- Can chat with any nostr user, not just coinos accounts
+- Can configure your DM relays within the settings page
+- Automatically disappearing messages ([NIP-40](https://github.com/nostr-protocol/nips/blob/master/40.md))
+- Can add users to nostr's mute list, hiding them from the menu
+- UI shows users' nostr information if they're not a coinos account
+
+## Limitations
+
+- There is no way to delete messages, aside from setting them to be deleted automatically, due to [an inherent limitation of the protocol](https://github.com/nostr-protocol/nips/issues/1735).
+
+## Dependencies
+
+coinos's nostr messages depends on the `npm` package [`nostr-tools`](https://www.npmjs.com/package/nostr-tools).
+
+## Relevant NIPs
+
+- [NIP-01](https://github.com/nostr-protocol/nips/blob/master/01.md) - the main protocol
+- [NIP-05](https://github.com/nostr-protocol/nips/blob/master/05.md) - user identity verification via domain names
+- [NIP-07](https://github.com/nostr-protocol/nips/blob/master/07.md) - Nostr browser extensions
+- **[NIP-17](https://github.com/nostr-protocol/nips/blob/master/17.md)** - Private Direct Messages
+- [NIP-40](https://github.com/nostr-protocol/nips/blob/master/40.md) - Message expiration
+- [NIP-44](https://github.com/nostr-protocol/nips/blob/master/44.md) - Message encryption
+- [NIP-51](https://github.com/nostr-protocol/nips/blob/master/51.md) - User lists (used for muting)