aboutsummaryrefslogtreecommitdiffstats
path: root/doc/nostr-messages.md
blob: 4f19a4f4b4986018f4b17881ef57c41021a1275a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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)