The Protocol

The Protocol

Details on how the Nostr Protocol works and why


Nostr is very simple and yet very powerful.

There are no owners, no certification authorities, no central server with an API that requires access, it is just a language that programs speak between each other.

The language is basically a set of WebSocket messages that clients and relays exchange between each other. The messages often contain events, which are JSON documents (e.g. a tweet-like note), or filters, which are a description of what events a client is interested in receiving from the relay.

Clients always act on behalf of users (they are the apps that users run on their devices), while relays are servers that anyone can host.

Clients connect to relays and subscribe to events, and then relays will send events to the clients. What events? The events that other clients are publishing to these relays.

Finally, in order for clients to easily know who really authored each event without having to trust the relay, they must always check the cryptographic signature contained in them, produced only by the secret key of the signer.


If you are interested in the details and in how to learn to start developing Nostr applications, try reading NIP-01 directly.