Nostr is an open-source project that focuses on allowing users to communicate with one another in a decentralised manner, using public and private key cryptography. As an open-source project, anyone with an idea or improvement can contribute to Nostr, be it an overall change to the protocol, adding additional features or standardising and streamlining certain elements.
There are three main elements to Nostr.
- The user who creates a set of private keys creates an account using a set of private keys. These private keys can then be used to write content to any relays that grant it permission.
- The relay which are servers that store Nostr notes and events which are created by users using their private key.
- Then there are the clients; these are the web, mobile and desktop applications one would use in connection with your private key. The client allows the user to broadcast to a relay and read information from other relays.
Users can contribute to any of the elements of Nostr as source code that is made available to the public to view, use, modify, and distribute under a permissive license. Open-source projects result from contributions from people with all skill levels – and not only coding skills but also other skills like writing and languages, all looking at the project from a different lens. This is what makes open-source so powerful, and you can draw from varying levels of expertise and skills and draw from a global pool.
Open-source contributions are not only about coding, but any time someone fixes a typo, adds an alert about a possible compiler warning, standardises naming conventions and labelling, fixes a bug, or even adds detailed documentation to a project, progress is made.
If we take all these small contributions from different people with different skills and put them together, projects can develop rapidly and solve problems in real-time.
Keeping everyone reading off the same script
While Nostr doesn’t have a blockchain, it does require standardisation and consensus from all parties involved, or the network would devolve into a complete mess. If clients, key signing applications and relays were to make changes on the protocol level that others do not support, it would create fragmentation.
Sure different users and clients could use different versions of the Nostr protocol. Still, to keep the network communicating with all parties involved, there needs to be a standard for implementation, and this is where NIPs come in.
What is a NIP?
NIPs stand for Nostr Implementation Possibilities, and the process is rather similar to the Bitcoin Improvement Proposal (BIP) system, while not as complicated since you’re not dealing with pushing updates to a network holding billions of dollars in people’s money.
NIPs exist to document what MUST, what SHOULD and what MAY be implemented by Nostr-compatible relay and client software. If you’re developing a tool for Nostr, past NIPs give you all the information you need to standardise your implementation, so it remains compatible with the wider network.
A NIP is a formal process used by the Nostr community to propose ideas, suggest changes, and make improvements to Nostr. Anyone can propose a NIP and get feedback from others in the community; they can showcase code and examples or provide a way to test their idea.
Once a NIP moves from the draft phase to the proposed phase, a NIP can be withdrawn, rejected, or accepted. If accepted, relays and clients that wish to use this NIP can then merge these new features into their code base.
Nostr is meant to be open, decentralised, and accessible to anyone, and the NIP process is aimed at being transparent with decisions made by the community while encouraging contribution and making it easy to build on the protocol.
Criteria for acceptance of NIPs
- The NIP should be implemented in at least two clients and one relay — when applicable.
- The NIP should make sense.
- The NIP should be optional and backwards-compatible: care must be taken such that clients and relays that choose not to implement them do not stop working when interacting with the ones that choose to.
- The NIP should be no more than one way of doing the same thing.
- Other rules will be made up when necessary, and later NIPs might have additional restrictions.
Why should you contribute to Nostr?
Contributing to open-source projects can be a rewarding way to learn, teach, share, build experience and even earn an income. There are plenty of reasons why you should contribute to an open-source project like Nostr, such as:
- To improve the software you rely on daily.
- To build on software that you think will be in demand in the future.
- Find a mentor if you need one.
- To learn new skills or improve on existing ones.
- To share your skills.
- To gain a much deeper knowledge about the software you’re using.
- To build up your reputation in a particular community or code base.
- Plus, it’s fun and gives you personal satisfaction.
- To test yourself with a new project or skillset.
- To secure bounties for specific tasks that need to be completed.
- To build a portfolio of contributions, you can use it to showcase to clients or possible job applicants.
- To drive ideas that might not have been possible with previous projects.
- To leverage other people’s work to improve your existing product or project.
Are you ready to contribute?
If you’d like to check out the complete list of NIPs and their status, you can find them on GitHub.
Are you on Nostr?
If you are a Nostr user and want to hang out and chat with us or follow our content on your preferred Nostr front end, feel free to add us using our PubKey below.
7ecd3fe6353ec4c53672793e81445c2a319ccf0a298a91d77adcfa386b52f30d
The Bitcoin Manual’s Nostr Pubkey
Please give us your notes.
If you have used Nostr, which client do you prefer and why? Are there any clients that you think deserve mention? Let us know in the comments down below.