aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
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)