Skip to content

cryptoquick/nostr-guide

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 

Repository files navigation

Nostr Guide

For those who keep hearing about Nostr but don't know where to start, this guide might just be for you. Be aware, you still need to be slightly technical to use Nostr to its fullest, though a casual user can certainly get started as long as they don't mind if they can't change certain things, or things might work in unexpected ways. This guide might also get outdated since things are changing quickly, Nostr is growing fast, and the developer community is vibrant for such a new project.

Clients

Nostr has multiple client implementations, relay implementations, and relay servers. They can be mixed and matched and data is reasonably portable between them. It works surprisingly well, even if not all features work everywhere in the same way always.

Damus is the fullest featured client at present. It only supports iOS, but if you have a working i-device of some kind, that might be worth dusting off just for Damus, it's that good. It has support for likes, many other clients don't, and it's been updated to support changing your profile details within the app itself.

If you do not have one, an Android Damus client is in the works, as are desktop clients. The web clients might have security issues, however.

Also, when you get your security details, definitely write down your nsec in a safe place and your npub in a convenient place, and try not to mix up the two. Similar for your public key and private key.

astral.ninja is my favorite web-based client. I would not recommend using a web client at the moment, however, since there are people who are exploiting browser bugs to steal people's private keys. It can also be a little slow if you have a lot of people you're following, especially on mobile. If you have an npub from Damus, that will work here, but be sure to grab the hex encoding also. A note on encodings: Hex encoding is 64 characters from 0-9 and a-f. An npub is a bech32 encoding, and is about same the length, but it starts with npub1 and is considered more "modern", but are less compatible with older clients. For those curious, see NIP-19: bech32-encoded entities.

Damus also operates a site for converting your npub and nsec keys to hex encoding for use on other clients that don't support the newer key format. See: https://damus.io/key/. Damus also has a web client, but it's down right now due to the aforementioned private key stealing issue.

Astral also lacks likes / hearts, and it has trouble loading images that aren't served from websites that have their HTTP servers configured to allow something called CORS. To fix this, if you run your own HTTP server like Nginx, look into this issue.

Be aware, if you follow more than a couple dozen people, Astral might become unusable just because of memory constraints. That's why it can be difficult to use on mobile.

There's no image upload feature on Nostr clients, so you have to use third-party sites like Imgur. I personally have a site I self-host from my residence from Synology NAS that has a CloudFlare CDN put in front for speed and IP privacy.

You may want to verify your identity using something called NIP-05: Mapping Nostr keys to DNS-based internet identifiers. I basically just put a file containing this JSON here: https://cryptoquick.com/.well-known/nostr.json?name=cryptoquick. Then, in astral.ninja, I put cryptoquick@cryptoquick.com as my NIP-05 identifier. This won't work for anyone else, because I specified my public key within the file, and nobody else should have my secret key that I use to sign my messages when they're checked against that public key.

NVK created a helpful guide for using GitHub Pages for NIP-05 verification: https://nvk.org/n00b-nip5

Damus recently rolled out a Lightning payments feature. To use it, if you're also a Strike user, go to https://strike.army and enter your Strike username. It'll generate something that looks like an email address called an LNURL. I got it working within Phoenix, but not Blue Wallet.

Syntax

To mention a user, get their pk and prepend it with an @ sign. You can get it by tapping the key on their profile. It's that simple.

Relays

Definitely add more relays, it can help a lot. Here's a list of mine:

  • wss://nostr-relay.wlvs.space
  • wss://relay.damus.io
  • wss://relay.nostr.info
  • wss://nostr-2.zebedee.cloud
    • This one is supposed to be particularly well-tuned and performant, thanks, andreneves!
  • wss://nostr-relay.untethr.me
  • wss://relay.nostr.ch
  • wss://relay.nostr.pro

Once set, these relays will generally propagate and be already setup between clients. To find more, here's a helpful list: https://nostr.watch/

Social

Considering that Nostr is great as a social network (though not limited to being just that), if you have all this set up and want to follow some people, here's some folks I recommend following:

Builders

  • fiatjaf
    • does stuff with nostr, kind of a big deal
    • 3bf0c63fcb93463407af97a5e5ee64fa883d107ef9e558472c4eb9aaaefa459d
  • jb55
    • damus, bitcoin dev
    • 32e1827635450ebb3c5a7d12c1f8e7b2b514439ac10a67eef3d9fd9c5c68e245
  • andreneves
    • runs the zebedee relay
    • 1b11ed41e815234599a52050a6a40c79bdd3bfa3d65e5d4a2c8d626698835d6d
  • negrunch
    • made the rana pubkey generator tool (it's how the nostr cool kids get these cool zeroes in front of our keys)
    • 000000000652e452ee68a01187fb08c899496cb46cb51d1aa0803d063acedba7
  • cryptoquick
    • wrote this guide, does some stuff with rust and bitcoin
    • 000000000332c7831d9c5a99f183afc2813a6f69a16edda7f6fc0ed8110566e6

Celebs

  • jack
    • founder of twitter, spiral
    • 82341f882b6eabcd2ba7f1ef90aad961cf074af15b9ef44a09f9d2a8fbfbe6a2
  • jack mallers
    • the other jack, strike
    • c4eabae1be3cf657bc1855ee05e69de9f059cb7a059227168b80b89761cbc4e0

Also be sure to check out the nostr.directory which will also post your pubkey on Twitter.

Final Thoughts

For those wondering, Nostr definitely does use servers, but clients-- of which there are many-- are configured to use multiple servers and it's all pretty seamless. It's basically what Mastodon should have been, even though it might still run into scaling problems. The best part is even when one relay is over capacity, your client can use another easily enough. You might have a fragmented social experience that might be a bit confusing, but is that better than seeing the failwhale? You decide.

Also bear in mind, Nostr is a protocol that's actually much more flexible than just a use as a Twitter-like social media platform. For example, Anigma is a client that's more similar to a Telegram chat than a Twitter feed.

For more up-to-date links and information, see the resources listed on [Nostr.net]](https://www.nostr.net/). Also, for those who find technical stuff interesting, the NIPs are pretty short and well-written, they have a list of all the NIP by title.

Feel free to create an issue, file a PR, or reach out to me via a Nostr encrypted DM!

About

cryptoquick's practical guide to Nostr

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published