Nostr Protocol is an open source decentralized network protocol to build any application – from social media to bitcoin exchange. It can be an alternative to centralized platforms like Twitter, Facebook, and YouTube. It allows users to control their own data and identity while providing censorship resistance.
What is Nostr Protocol?
The term “Nostr” stands for “Notes and Other Stuff Transmitted by Relays” using a decentralized protocol which enables users to take control of their own data and identity, and it also does that in a censorship resistant way. Any flavors of the applications and use cases – from private and public messaging applications like Telegram, to forums, voting sites like Reddit or Hacker News, to full blown social networks like Twitter and Facebook can be built using Nostr protocol while enabling users to control their data, identity and have no limits on free expression of speech.
Current Social Media State and Their Problems
But what about the current solutions and other alternatives? Well, there are several issues with current social media solutions, including Twitter, Mastodon, and Secure Scuttlebutt (SSB).
Twitter has ads, uses techniques to keep users addicted, doesn’t show a historical feed, and has a tendency to ban or shadow-ban users (although that is changing with Elon Mask taking over it).
Mastodon and similar programs have user identities tied to domain names controlled by third parties, and server owners can ban users or block other servers. Migration between servers is difficult and can only be accomplished if servers cooperate, and there are no clear incentives for server owners, leading to amateurish operation and eventual abandonment.
SSB (Secure Scuttlebutt) has a complicated protocol and requires a chain of updates from a single user, and while it was primarily designed for P2P syncing, it may be worth adapting to the client-relay server model. Other solutions that require everyone to run their own server can also be censored through domain name censorship.
Why Nostr Protocol?
The Nostr Protocol is a solution to the problem of censorship on social media platforms. These platforms are important in our daily lives because they allow us to connect with others, share ideas, and stay informed. However, they also have the power to censor content and limit free expression. The Nostr Protocol addresses this issue by providing a way for us to connect and share ideas without censorship.
Without the Nostr Protocol or something similar, censorship will continue to be a concern on social media, whether it’s for political reasons or because content doesn’t align with the platform’s beliefs or sponsors. In some cases, content is and will continue to be removed because it is deemed inappropriate or offensive. In other cases, it is and will continue to be removed because it doesn’t align with the beliefs or interests of the platform or its corporate sponsors.
How does Nostr Protocol work?
The decentralized network utilizes cryptographic key pairs and is designed to be a simple, scalable, and censorship-resistant alternative to centralized networks. This network does not rely on peer-to-peer techniques or have a central server, instead each user runs a client locally to publish messages to Nostr Relays. Other clients that subscribe to these relays will be notified of the messages, and users can subscribe to receive updates through their client by connecting to one or more relays. The official github project describes it is “a truly censorship-resistant alternative to Twitter that has a chance of working”.
Why is Nostr Protocol Censorship Resistant?
On Nostr, a user can be blocked from publishing on a specific relay, but they can still publish on other relays and maintain their identity and follower base. To make it easier for users to find new relays, the client software can automatically add recommendations for new relays to the list of relays it queries whenever someone you are following posts a recommendation.
If a user wants to migrate to a new relay, they can publish a recommendation to their previous relay and move their data. If a user is banned from many relays and cannot broadcast their own recommendations, they can still let their close friends know which relay they are publishing on through other means, and these friends can publish recommendations to the new relay. This process can help the banned user’s old follower base find their posts again through the new relay. The same process applies if a relay ceases operations.
How Nostr is Different from Blockchain and Other Solutions
Here is a great Nostr Introduction video to check out where Kevin Rooke interviews William Casarin who is a developer who works on Bitcoin and Lightning and is currently working on Damus, a project built using the Nostr protocol (we covered Damus here, and we even have a detailed summary of the interview here).
How to follow people on Social Networks using Nostr Protocol?
To find people to follow on Nostr, you must first obtain their public key through some means, such as asking for it or finding it referenced somewhere. Once you are connected to a Nostr social network, you can see other people interacting and follow them and their interactions. To find relays, you can use hints or events provided by your client software or manually connect to the other person’s relay. If you are not connected to the same relays as someone else, it may not be possible to communicate with them, although there are potential ways to address this issue in the future. It is not possible to guarantee perfect reachability for any protocol.
Here are some key points about the relays in the Nostr protocol:
- Relays are the main component of the Nostr protocol, and are responsible for storing events received from clients.
- Relays do not communicate with each other, which means that users have control over which relays they connect to and can use multiple relays to send and receive events.
- Setting up a relay is cheap and easy, and a relay can even run on a low-end smartphone.
- There are currently more than 100 relays available around the globe.
- The decentralized structure of Nostr, with multiple relays that do not communicate with each other, makes it resistant to censorship. Users can simply switch to a different relay if one is blocked.
To summarize, Nostr Relays are lightweight, easy to set up, and can run in as little as 5MB of memory. To get updates you subscribe to one or more relays. Anyone can run a relay and therefore censorship is impossible, since if one of the relays is censoring anything, other relays won’t. The problem is of course discovery of relays- but there are resources – and this site is one of them as well – to help you with that.
A list of relays can be found here.
A Nostr client is a software that implements the Nostr Protocol. Like we already mentioned in the introduction, the applications and platforms that are being built include social media platforms that are similar to Twitter, HackerNews, Reddit, Facebook, and Medium, as well as private and public chat applications, a platform for engaging in governance-related discussions, a decentralized voting platform, and games.
There is a number of other client applications that can be used to access and interact with the Nostr protocol, including command-line clients, desktop apps, and mobile apps. These client applications are written in a variety of programming languages, including Go, Rust, Dart, Scala, Clojure, and Haskell. Here is link to a page that maintains an updated list of clients. Here is an example of how a publicly hosted nostr.rocks client looks like:
How to select a Nostr Client?
While generically many clients will include features include the ability to create and read posts, reply to posts, mention other users, delete posts, send and receive direct messages, the best way to try the clients would be based on their purpose. Based on the list of available clients maintained here we summarized them into different groups – depending on their purpose.
|Twitter Like||Twitter-like client with chat for web, mobile and desktop||branle.netlify.app, nostr.rocks, branle.wlvs.space, branle tor astral.ninja|
damus on testflight. for iOS and MacOS
|HackerNews, Reddit Like||Decentralized, vote-driven community similar to Reddit and HackerNews|
|Facebook Like||Open source social network||Minds|
|Medium Like||Experiment in creator economy with rewards for engaging in governance-related discussion||second exchange|
|Private Encrypted Chats||Desktop app for direct private encrypted chat||loquaz|
|Public Chats||Public group chats and P2P services||ArcadeCity – Public group chats and P2P services (WIP) over nostr|
NostrEmitter– Simple E2E encrypted client and EventEmitter object.
|Telegram Like||Clones of Telegram built on nostr||anigma|
|Games||Playground, chess||alphaama |
|Utilities||Shared clipboard between devices||Sendstr|
|Generic Clients||Basic command-line client, command line client, barebones client||noscl – a basic command-line client written in Go|
nostr console – a nostr command line client written in Dart. Binaries available for Windows, Linux and MacOS.
scalastr – A barebones nostr client written in scala
|Android Generic Clients||Mobile client for Android||Nostros|
|Desktop Generic Clients||Desktop client, desktop app||more-speech – desktop client for nostr written in Clojure|
futr – nostr client desktop app written in Haskell
How to use a Nostr Client?
Nostr can be run on a number of clients. They can be run on your own machine, or on a public instance. We already mentioned above a list of client software. Here is a list of public running instances if you don’t want to install your own client. For example, you can try out Nostr here. All you will need is a private key – you can generate a new one at the time of sign up (or bring the one that you already have).
The current state of Nostr Clients
Based on the current state, it looks like Damus, Nostr Console, More-Speech, Astral, Nostroid, and Alphaama platforms support a wide range of features, including the ability to create and read posts, reply to posts, mention other users, send and receive direct messages, and support for the NIP5 protocol.
The Nostros and Anigma platforms also support many of these features, but do not support deleting posts or participating in channels. The Coracle platform supports some features, including the ability to create and read posts, reply to posts, and mention other users, but does not support direct messages or participating in channels.
Overall, it appears that the Damus, Nostr Console, More-Speech, Astral, Nostroid, and Alphaama platforms offer the most comprehensive set of features as Nostr Clients, while the Nostros and Anigma platforms offer a good set of features but lack some advanced features. Vishal who is an active contributor to Nostr projects on Github maintains the table that compares features of the major Nostr clients.
Who is behind Nostr Protocol?
Nostr was created by @fiatjaf. The project began in late 2020, and the first draft of the protocol was completed on December 27th of that year. It has gained significant support from the developer community on Github, with over a dozen contributors and more than 3,000 stars and 85 forks. The project has also received financial backing from Jack Dorsey, the founder of Twitter, who has pledged 14 BTC to the project and included the #nostr hashtag on his profile.
By the way, following Dorsey’s mention of Nostr, the project’s telegram channel saw a significant influx of new members, and it now has over 3,000 members. The community is highly active, with more than 1,000 new messages being posted every day discussing various proposals and potential use cases for the project.
More on the Nostr Protocol
IF you would like to find out more about the Nostr Protocol, the core protocol is described here and can be extended via NIPs. The NIPs are a way to extent the base Nostr functionality. Already there are NIPs for encrypted chat, contact management, profiles, relay management, Tor relays, Open Timestamps and much more.