diff --git a/README.md b/README.md index 2c4dfcb..3721a24 100644 --- a/README.md +++ b/README.md @@ -97,20 +97,26 @@ See the [NIPs](nips) and especially [NIP-01](nips/01.md) for a reasonably-detail ### Relays - - [nostr-relay-poc](https://github.com/fiatjaf/nostr-relay-poc), written in Go, very naïve ([docker-compose files for it](https://gist.github.com/Dolu89/5d98cb929ef7d27c59bf01b14767cda2)). + - [nostr-rs-relay](https://sr.ht/~gheartsfield/nostr-rs-relay/), a minimalistic relay written in Rust that saves data on SQLite. + - [Relayer Basic](https://github.com/fiatjaf/relayer/tree/master/basic), a simple relay based on _relayer_ backed by Postgres. + - [rsslay](https://github.com/fiatjaf/rsslay), a bridge that puts RSS feeds into Nostr. - [nodestr](https://github.com/Dolu89/nodestr-relay), A Node.js implementation. ### Clients - - [nostr-web-client-poc](https://github.com/fiatjaf/nostr-web-client-poc), a web client written with Vue. - - [nostr-twitter](https://github.com/arcbtc/nostr), a Twitter-like UI that also implements private direct messages. ([nostr.com](https://nostr.com/), [nostwitter.netlify.app](https://nostwitter.netlify.app/#/)) + - [branle](https://github.com/fiatjaf/branle), a Twitter-like client also with chat. - [noscl](https://github.com/fiatjaf/noscli), a basic command-line client written in Go. + - [nostr-chat](https://github.com/emeceve/nostr-chat), a desktop app written in Rust for direct encrypted chat. + - [chastr](https://github.com/dolu89/chastr), a mobile directed encrypted chat app written in Xamarin. + - [nostr-twitter](https://github.com/arcbtc/nostr), a Twitter-like UI that also implements private direct messages. ### Libraries - [nostr-tools](https://github.com/fiatjaf/nostr-tools), a JavaScript client that abstracts the relay management code for use by clients. + - [NNostr](https://github.com/Kukks/NNostr), a C# Nostr library. - [go-nostr](https://github.com/fiatjaf/go-nostr), a Go library that implements relay management, plus event encoding and signing utils. - - [nostr-rs](https://github.com/futurepaul/nostr-rs), a non-functional Rust implementation of the nostr protocol. + - [nostr-rs](https://github.com/futurepaul/nostr-rs), a Rust implementation of the nostr protocol. + - [relayer](https://github.com/fiatjaf/relayer), a server framework for writing custom relays. ### Tools diff --git a/nips/01.md b/nips/01.md index 0b74733..611e699 100644 --- a/nips/01.md +++ b/nips/01.md @@ -66,6 +66,7 @@ Clients can send 3 types of messages, which must be JSON arrays, according to th "#e": , "#p": , "since": , + "until": , "authors": } ``` @@ -100,5 +101,3 @@ A relay may choose to treat different message kinds differently, but it should d - Clients should not open more than one websocket to each relay. It also is advised that clients do not open more than 3 subscriptions to the same relay. 3 is enough for most use cases and relays should impose limits to prevent over usage by clients. - The `tags` array can store any kind of tag the message may be related to. This NIP defines `"p"` — meaning "profile", which points to a pubkey of someone that is referred to in the event —, and `"e"` — meaning "event", which points to the id of an event this event is quoting, replying to or referring to somehow. - The `` item present on the `"e"` and `"p"` tags is an optional (could be set to `""`) URL of a relay the client could attempt to connect to fetch the tagged event or other events from a tagged profile. It MAY be ignored, but it exists to increase censorship resistance and make the spread of relay addresses more seamless across clients. -- If a message contains an @-prefixed readable name in the body of it — for example, _"hello @bob and @carol"_ — and then 2 or more `"p"` tags, the client MAY replace the text of "@bob" and "@carol" with links to the 2 `"p"` pubkeys, in the order they're found. Or it MAY just show the list of tags somewhere on the side of the note. -- If a message contains 2 or more `"e"` tags, the client MAY interpret it as being a message that belongs to the message thread initiated by the first `"e"` event, and a direct reply to the second `"e"` event. diff --git a/nips/06.md b/nips/06.md new file mode 100644 index 0000000..9b6a7b8 --- /dev/null +++ b/nips/06.md @@ -0,0 +1,15 @@ +NIP-06 +====== + +Basic key derivation from mnemonic seed phrase +---------------------------------------------- + +`draft` `optional` `author:fiatjaf` + +[BIP39](https://bips.xyz/39) is used to generate mnemonic seed words and derive a binary seed from them. + +[BIP32](https://bips.xyz/32) is used to derive the path `m/44'/1237'/0'/0'` (according to the Nostr entry on [SLIP44](https://github.com/satoshilabs/slips/blob/master/slip-0044.md)). + +This is the default for a basic, normal, single-key client. + +Other types of clients can still get fancy and use other derivation paths for their own other purposes.