nostr README

The project's README from github.com/nostr-protocol/nostr. As one markdown file: README.md.

Nostr - Notes and Other Stuff Transmitted by Relays

The simplest open protocol that is able to create a censorship-resistant global "social" network once and for all.

It doesn't rely on any trusted central server, hence it is resilient; it is based on cryptographic keys and signatures, so it is tamperproof; it does not rely on P2P techniques, and therefore it works.

The initial description of the idea can be found at https://fiatjaf.com/nostr.html. A less dry presentation of the idea can be found in this video from Uncle Bob.

How it works

It's a very simple idea: each person can publish their notes to multiple relays (which are just simple servers), and people who follow them can connect to these relays and fetch the notes. The protocol just defines the messages that can be sent between clients and relays in order to publish and fetch the content they want.

These relays can be hosted by anyone and have any rule or internal policy they want. The fact that the protocol is open makes it so that, as long as there is any relay willing to host someone, they can still publish their stuff for their followers, and the followers can find their stuff in that relay.

Relays can also lie about data published by others, but to ensure that isn't a problem, public-key cryptography is used and every note is signed. When you follow someone you're actually following their public key and clients will check notes received from relays to ensure they were properly signed. Here is a video that explains the role of relays pretty well: nostr:nevent1qqsqhrasmmw0nnwjfeeka9sy4zl3c6rw5w2mtv4lugutl4luw57x7nqpr4mhxue69uhkummnw3ezucnfw33k76twv4ezuum0vd5kzmp0qyfhwumn8ghj7mmxve3ksctfdch8qatz9uq3wamnwvaz7tmjv4kxz7fwdehhxarj9e3xzmny9u76jrg5.

The hardest part is how to find in which relay you will find notes of each person you follow, since they can be anywhere. There are multiple heuristics currently being used to approach this issue. An animated description of one possible flow can be seen at https://how-nostr-works.pages.dev/#/outbox.

Protocol specification

See the NIPs and especially NIP-01 for a reasonably-detailed explanation of the protocol spec, it's very small.

Getting started

There are many ways to get started using Nostr, but one simple and recommended way is to visit https://start.njump.me/ and go from there.

Software

A list of mostly-ready to use apps is kept at https://nostrapps.com/.

A very big and daunting list of clients and libraries for all platforms and languages imaginable can be found at https://nostr.net/.

License

Public domain.

nostr (nostr-protocol/nostr)

Searching Database…

12.1K ·GitHub
What is this?Nostr (Notes and Other Stuff Transmitted by Relays) is an open protocol for a censorship-resistant global social network. This repo holds the idea and spec, not an app.
Is Nostr an app I can install, or something else?It's a protocol, not a program: it defines the messages clients and relays exchange. The actual apps (clients) and relay servers are separate projects listed in the README.
How do I get started using it?Follow the getting-started site recommended in the README and pick a client there. The README also links a list of mostly-ready apps and a huge catalog of clients and libraries for all platforms and languages.
Do I need to run my own relay server to post?No — you publish your notes to whichever relays you like. Relays are simple servers that anyone can host, each free to set its own rules and internal policy.
What's the hardest part of using Nostr?Discovering which relay holds the notes of each person you follow, since they can be anywhere. Clients currently work around this with various heuristics.
Is the protocol free to use, any licensing catches?It's in the public domain — anyone can use and implement it without restrictions.
What stops a relay from faking or tampering with my notes?Every note is signed with public-key cryptography, and clients verify the signatures of notes they receive from relays. When you follow someone you're actually following their public key, so a lying relay can't pass off forged notes.
Why doesn't Nostr use P2P like other decentralized networks?That's a deliberate design choice: the README states it doesn't rely on P2P techniques 'and therefore it works'. Notes go through ordinary relay servers, which keeps the system simple and dependable.
Where is the protocol specification, and how big is it?In the NIPs (Nostr Implementation Possibilities), with NIP-01 as the core document. The README stresses that the spec is very small.
Are there ready-to-use apps already?Yes — the README points to a list of mostly-ready-to-use apps, plus a very big and daunting list of clients and libraries 'for all platforms and languages imaginable'.
Size
0.5 MB
Stars
12.1K
Age
5y
Commits · 90 Days