# Nostr.how Full Export This file contains the full English markdown for Nostr.how's current public pages. ## What are Nostr Clients? Source: https://nostr.how/en/clients Markdown: https://nostr.how/en/clients/index.html.md # What are Nostr Clients? An overview of what Clients are in Nostr and a comparison of a few of our favorites. ## What's a client? A client in Nostr is just the app that you use to access and interact with the protocol. It's like the Twitter iOS app or web app that you use to interact with Twitter's feed of tweets. Because the Nostr protocol is very simple and flexible, different clients have focused on implementing different aspects of the protocol in slightly different ways. For example, some clients focus on beautiful and usable UI, others focus more on enabling lighting payments, still others focus on Nostr for creative use cases like playing chess (Yes, you can [play chess](https://jesterui.github.io?utm_source=nostr.how&ref=nostr.how) via the Nostr protocol). Most of the clients that have been built so far are centered around the social media use-case. But we're starting to see more interesting use cases. A few examples: - [White Noise](https://whitenoise.chat?utm_source=nostr.how&ref=nostr.how): End to end encrypted messenger - [Shakespeare](https://shakespeare.diy?utm_source=nostr.how&ref=nostr.how): AI app builder - [zap.stream](https://zap.stream?utm_source=nostr.how&ref=nostr.how): Twitch-like streaming site with zaps - [Habla](https://habla.news?utm_source=nostr.how&ref=nostr.how): Long-form content - like Medium - [Jester](https://jesterui.github.io?utm_source=nostr.how&ref=nostr.how): Play chess on Nostr ## Can I switch clients? Yes. Because a client is just a way to access the underlying data held by relays, you can switch clients or sign into as many clients as you'd like. As long as each client is looking at the same set of relays for their data, you'll see the same messages in each client. ## Should I enter my private key in the client? Generally, it's better not to enter your private key into any client. Most clients that ask for private keys do their absolute best to keep your key secure but given the nature of software, there are always breaches, exploits, and bugs that could potentially expose your private key. Remember, your private key is your identity in Nostr, so if it is compromised, you'll have to start from scratch rebuilding your identity, and you'll lose your list of followers and all your private messages. ## A few of our favorite clients ### Web - [Primal](https://primal.net?utm_source=nostr.how&ref=nostr.how) - This is our recommended client for new users. - [Ditto](https://ditto.pub?utm_source=nostr.how&ref=nostr.how) - [Nostrudel](https://nostrudel.ninja?utm_source=nostr.how&ref=nostr.how) - [Iris](https://iris.to?utm_source=nostr.how&ref=nostr.how) - [Snort](https://snort.social?utm_source=nostr.how&ref=nostr.how) - [Coracle](https://coracle.social?utm_source=nostr.how&ref=nostr.how) ### Desktop - [Gossip](https://www.github.com/mikedilger/gossip?utm_source=nostr.how&ref=nostr.how) - Gossip is a very opinionated desktop client that requires a bit more technical knowledge to use. The payoff is that it gives users more control over how they interact with Nostr. - [Nostur](https://www.nostur.com?utm_source=nostr.how&ref=nostr.how) - Mac client with extensive features ### iOS - [Primal](https://apps.apple.com/it/app/primal/id1673134518?utm_source=nostr.how&ref=nostr.how) - This is our recommended client for new users. - [Damus](https://apps.apple.com/app/damus/id1628663131?utm_source=nostr.how&ref=nostr.how) - This is the first & best iOS client for Nostr. - [Nostur](https://www.nostur.com?utm_source=nostr.how&ref=nostr.how) - iOS/iPad/Mac client with large feature list including new and experimental ones - [Nootti](https://www.nootti.com?utm_source=nostr.how&ref=nostr.how) - iOS/iPad native cross-posting client for Nostr, Bluesky and Mastodon ### Android - [Primal](https://play.google.com/store/apps/details?id=net.primal.android&hl=en&utm_source=nostr.how&ref=nostr.how) - This is our recommended client for new users. - [Amethyst](https://play.google.com/store/apps/details?id=com.vitorpamplona.amethyst?utm_source=nostr.how&ref=nostr.how) – A beautiful client for Android. ## Donate Source: https://nostr.how/en/donate Markdown: https://nostr.how/en/donate/index.html.md # Donate Support Nostr.how with a zap, a direct Lightning donation, or by reaching out about larger sponsorship. If Nostr.how has been useful, these are the simplest ways to help keep the site improving. ## Zap on Nostr If you already use Nostr, the easiest way to support Nostr.how is to zap JeffG directly from your favorite client. - Open JeffG on Primal: https://primal.net/jeffg ## Send sats directly If you prefer a straight Lightning payment, you can send sats directly to the Nostr.how Lightning address below. - Lightning address: `erskingardner@getalby.com` - Open your Lightning wallet: lightning:erskingardner@getalby.com ## Support bigger improvements If you want to help fund a larger content, translation, or design push, reach out to JeffG on Nostr and we can coordinate. - Get in touch on Nostr: https://primal.net/jeffg ## Get started with Nostr Source: https://nostr.how/en/get-started Markdown: https://nostr.how/en/get-started/index.html.md # Get started with Nostr This guide will help you understand the basics of Nostr and get you all set up and ready to use Nostr with a new account. We’ll cover how to create a new lightning wallet, create an account, and sign into a client safely. ## Understanding keys Each Nostr account is based on a public/private key pair. A simple way to think about this is that your public key is your username and your private key is your password, with one major caveat. Unlike a password, your private key cannot be reset if lost. Let me say that again so it's clear: **If you lose your private key your Nostr account is lost. If somene else gains access to your private key, they can take control of your account.** Make sure you store you private key somewhere safe, like a password manager (we like [1Password](https://1password.com?utm_source=nostr.how&ref=nostr.how)) or a browser extension like [Alby](https://getalby.com/?utm_source=nostr.how&ref=nostr.how#alby-extension). ## Protocol vs Client Nostr itself is just a protocol; an agreed upon procedure for passing messages around on the internet. You will access Nostr (the protocol) via a client. Clients can be web, desktop, or mobile apps. Some Nostr clients allow you to sign in by pasting in your private key. On the web, this is generally not recommended - it's tedious and insecure. Instead, we recommend using a signing extension in your browser, which is a piece of software specifically designed to safely manage private keys and cryptographically sign events. [Alby](https://getalby.com?utm_source=nostr.how&ref=nostr.how) is a popular signing extension and bitcoin lightning wallet that has built-in support for Nostr. It's a great option for new users. ## Create your account Try out some of our favorite Nostr apps: - [Primal](https://primal.net?utm_source=nostr.how&ref=nostr.how) (Web, iOS, Android) User-friendly client with built-in lightning wallet on mobile. - [Ditto](https://ditto.pub?utm_source=nostr.how&ref=nostr.how) (Web) - [Damus](https://apps.apple.com/app/damus/id1628663131?utm_source=nostr.how&ref=nostr.how) (iOS) - [Amethyst](https://play.google.com/store/apps/details?id=com.vitorpamplona.amethyst?utm_source=nostr.how&ref=nostr.how) (Android) ## Find friends to follow - If you know someone is on Nostr, find their profile by searching for their public key. - Many Twitter users are tweeting their Nostr pubkeys with the hashtag #nostr so searching this hashtag can give you a good start. - [nostr.directory](https://nostr.directory?utm_source=nostr.how&ref=nostr.how) is a database mapping twitter users to their Nostr pubkeys. ## What does "Signing" mean? In order to interact with the Nostr protocol you must create a cryptographic signature each time you perform an action. Think of this signature as an authentication step where you confirm that you are, indeed, who you say you are. Most Nostr clients try to make this easy and quick (or allow you to save your private key in the client so that they can sign on your behalf anytime you do anything). By only providing our public key above, we'll be prompted to sign anytime we want to interact with any posts or perform any updates to our profile. When that happens, Alby will automatically pop up (like it did during the sign up step) and you can confirm that you actually want to sign. ## Can I use other clients? Yes! Now that you have created your public/private key pair, you can use this pair on any Nostr client to access your account. Remember, the client is just an interface to see messages broadcast on the Nostr protocol. ## Next steps Great, now you're set up with a lightning wallet, an identity (your keypair), and have tried out a client. Here are a few links that might be handy as you venture further into Nostr: - [Verify your identity](/en/get-verified) - [What are Relays and how do they work?](/en/relays) - [Learn more about NIPs and the development of the protocol](/en/the-protocol) ## Get NIP-05 verified Source: https://nostr.how/en/get-verified Markdown: https://nostr.how/en/get-verified/index.html.md # Get NIP-05 verified How to verify your identity on Nostr to get a verification checkmark and an easier way to share your account. ## What you'll learn in this guide You might have noticed on many different clients that some users have checks, just like on Twitter. NIP-05 specifies how Nostr users can verify their identities. Different clients show verification in slightly different ways but it's an important way of showing the Nostr community that you're a real user. ![Snort Verified](/images/snort-verified.webp) The verification process on Nostr is documented in a Nostr Implementation Possibilities (NIP) called [NIP-05](https://github.com/nostr-protocol/nips/blob/master/05.md). NIP-05 enables a Nostr user to map their public key to a DNS-based internet identifier. The verification mechanism is similar to how Google requires you to verify your ownership of a domain using a DNS record. The major benefit of verification is that it allows a Nostr user to be identified by a human-readable name, instead of a long, hard-to-remember public key. This enables verified Nostr users to easily share their identity with others. To utilize NIP-05, Nostr users add a nip05 url to their profile (most clients have support for this). NIP-05 urls look like emails – bob@example.com. Let's break down the parts: 1. Everything before the `@` symbol ("bob", in our example). This must match the value of the name field in your Nostr profile. 1. Everything after the `@` symbol ("example.com", in our example). This is the domain where the client can look to find a `/.well-known/nostr.json` file that contains the user's name & public key. When clients see a nip05 url, they will look for a `/.well-known/nostr.json` file at the specified domain. This file must contain the nostr public key for the specified user. Read more specifics in the NIP-05 spec. While it sounds technical, it's suprisingly easy to get verified. Let's see how to do it. ## Get verified through a free service At the moment, there are several providers who are helping folks get verified for free. This is great option if you don't have sats in your lightning wallet yet. If possible, support these projects via donations. ⚡🤙 - [Nostrcheck.me](https://nostrcheck.me?utm_source=nostr.how&ref=nostr.how) - [zaps.lol](https://zaps.lol?utm_source=nostr.how&ref=nostr.how) - [Nostr-Check.com](https://nostr-check.com?utm_source=nostr.how&ref=nostr.how) - [Verified Nostr](https://verified-nostr.com?utm_source=nostr.how&ref=nostr.how) - [Cosa Nostr](https://cosanostr.com?utm_source=nostr.how&ref=nostr.how) ## Pay a provider for verification If you don't have your own domain or don't want to set it up yourself, you can take advantage of a free or paid (usually just a few [sats](https://coinmarketcap.com/alexandria/glossary/satoshi-sats?utm_source=nostr.how&ref=nostr.how)) NIP-05 service. Here are a few: - [Nostrly](https://www.nostrly.com?utm_source=nostr.how&ref=nostr.how) - [Nostrplebs](https://nostrplebs.com?utm_source=nostr.how&ref=nostr.how) - [Nostr Verified](https://nostrverified.com?utm_source=nostr.how&ref=nostr.how) - [Alby](https://getalby.com?utm_source=nostr.how&ref=nostr.how) - [Nostr Directory](https://nostr.directory?utm_source=nostr.how&ref=nostr.how) - [Stacker News](https://stacker.news?utm_source=nostr.how&ref=nostr.how) - [Nostrich House](https://nostrich.house?utm_source=nostr.how&ref=nostr.how) - [Happy Tavern](https://happytavern.co/nostr-verified?utm_source=nostr.how&ref=nostr.how) ## Self hosted verification If you already own a domain, this is a free option. You just need to add a `.well-known/nostr.json` file to your domain. The contents of the file should be the following: ```json { "names": { "YOUR_NOSTR_NAME": "YOUR_NOSTR_PUBLIC_KEY" } } ``` Optionally you can also add a section to let clients know which relays they are likely to find you on: ```json { "names": { "YOUR_NOSTR_NAME": "YOUR_NOSTR_PUBLIC_KEY_IN_HEX_FORMAT" }, "relays": { "YOUR_NOSTR_PUBLIC_KEY_IN_HEX_FORMAT": [ "wss://relay.one", "wss://relay.two", ... ] } } ``` Make sure you use the hex version of your public key in your `nostr.json` file. This is the version of the key that **doesn't** start with `npub`. You can ask your favorite LLM to convert your npub value into a "hex pubkey" and it'll happily oblige. Finally, make sure this file is served with the `Access-Control-Allow-Origin` header set to `*` as it needs to be accessible by clients. ## What are Nostr Relays? Source: https://nostr.how/en/relays Markdown: https://nostr.how/en/relays/index.html.md # What are Nostr Relays? A quick overview of what Nostr relays are, why are they important, and how they work. ## What are relays? Relays are like the backend servers for Nostr. They allow Nostr clients to send them messages, and they may (or may not) store those messages and broadcast those messages to all other connected clients. The world of relays is changing fast so expect many changes here in the future. One thing to note, because Nostr is decentralized and depends on relays to store and retreive data, if you notice that your Nostr client feels slow, it's most likely due to the relays that you're using. It might be worth adding a few more relays (or removing a few) to your client. ## Paid vs Free relays Many relays are currently free to use. Given the costs of running a relay (paying for compute, storage, and bandwidth), most people expect that paid relays will be the norm in the future. One major benefit of using paid relays now is the higher signal of users and notes on paid relays. The "proof of work" of paying for relay access is something that helps keep spam accounts from infesting the network. ### Where can I find a list of all relays? The best resource we've found for browsing and assessing the speed of known relays is the [Nostr.watch site](https://nostr.watch?utm_source=nostr.how&ref=nostr.how). ## What happens if all the relays I use stop working? If _all_ the relays that you have used in the past go offline, all your posts will be unretrievable. This is one reason that Nostr allows users to connect to many relays – this ensures some degree of backup. That said, if you're really interested in being uncensorable, you can and should run your own personal relay. ## Should I run my own relay? For most people, no, it's not worth the hassle. That said, if you're technical and want to ensure that your speech is absolutely uncensorable or want to run a private relay for a small group, then you can and should run your own relay. This ensures that you always have a copy of all your Nostr posts and interactions for all time. There are many different relay implementations written in many different programming languages or added to popular services like StartOS or Alby Hub. ## The Nostr Protocol Source: https://nostr.how/en/the-protocol Markdown: https://nostr.how/en/the-protocol/index.html.md # The Nostr Protocol This is a high-level overview of the Nostr protocol with details on Event types and how Nostr Implementation Possibilities (NIPs) work. ## Nostr at the highest level - There are two main components to the Nostr network: [clients](/en/clients) & [relays](/en/relays). - **Clients** are the interface that users use to read and write data to relays. In a social media context, think of this as the Twitter web app or mobile app. It's a client that is allowing you to read data from and write data to Twitter's centralized database. - **Relays** are like databases (though they do a lot more than just store data). They allow clients to send them data and store that data in a database. Clients can then read data out of relays to be shown to users. - Every user is identified by a public key. Every event object (e.g. message you're posting, update to your following list, etc.) is signed. Clients validate these signatures to ensure they're correct. - Clients fetch data from relays and publish data to relays. The relays are almost always chosen by the user. Relays don't have to talk to one another, but might potentially in the future. - For example, to update your profile, you just instructs your client to send an event of kind 0 to the relays you want to use. The relays will then store that event. - On startup, your client queries data from the relays that you tell it to. This can be filtered to only show events for users you follow or you can ask for everything from everyone, then the client displays that data to you. - There are many different kinds of events. Events can contain all sorts of structured data, and the most used structures are finding their way into [Nostr Implementation Possibilities](#nips) (NIPs – protocol standards that everyone adheres to) so all clients and relays can handle them seamlessly. - The data that you can see on Nostr is completely dependent on the relays that you decide to connect to. See the network diagram below for more on this. ### Network diagram ![Nostr network diagram](/images/nostr-network.webp) You can see the diagram above that we have 3 relays and 3 users. Each of the users is connecting to Nostr with a different client (and on a different Platform). Given the reads and writes in the diagram: - Bob can see all of Alice's posts, but can't see anything from Mary (and doesn't even know she exists) - Alice can see all of Bob's posts, but can't see anything from Mary (and doesn't even know she exists) - Mary can see all of Bob's and Alice's posts. This is because while she only writes to Relay 3, she is reading from Relay 2, where Bob and Alice are writing their posts. This is a very simplified situation but you can already see that the choice of which relays you want to connect to can have a large impact on who and what you'll see when using Nostr. ## Events Events are the only object type on the Nostr network. Each event object has a `kind`, which denotes what sort of event it is (what sort of action a user might take or messages that might be received). Here's what a kind 1 event looks like (kind 1 is for Short text notes – i.e. something like a Twitter tweet) ```json { "id": "4376c65d2f232afbe9b882a35baa4f6fe8667c4e684749af565f981833ed6a65", "pubkey": "6e468422dfb74a5738702a8823b9b28168abab8655faacb6853cd0ee15deee93", "created_at": 1673347337, "kind": 1, "tags": [ ["e", "3da979448d9ba263864c4d6f14984c423a3838364ec255f03c7904b1ae77f206"], ["p", "bf2376e17ba4ec269d10fcc996a4746b451152be9031fa48e74553dde5526bce"] ], "content": "Walled gardens became prisons, and nostr is the first step towards tearing down the prison walls.", "sig": "908a15e46fb4d8675bab026fc230a0e3542bfade63da02d542fb78b2a8513fcd0092619a2c8c1221e581946e0191f2af505dfdf8657a414dbca329186f009262" } ``` - The `id` field tells us the ID of the event - The `pubkey` field tells us the public key of the user who sent the event - The `created_at` field tells us when the event was published - The `kind` field tells us what sort of event it is - The `tags` field tells us about tags on the event. These are used for creating links, adding media, and mentioning other users or events. - The `content` field gives us the content of the event. In this case, the short text post. - The `sig` field is the signature that clients use to verify that the user with this pubkey did in fact send this event on the date specified. ### Event Kinds There are many many different kinds of nostr events. The most up-to-date list of popular event kinds can always be found on the [Nostr NIPs repository](https://github.com/nostr-protocol/nips). ## NIPs A Nostr Implementation Possibilty, or NIP for short, exist to document what MUST, what SHOULD and what MAY be implemented by Nostr-compatible relay and client software. NIPs are the documents that outline how the Nostr protocol works. ### Why should I care about NIPs? Nostr is decentralized and not owned by a centralized service (like Twitter). This means that the direction of the protocol is up to all of us! We can suggest and advocate for changes and offer feedback on ideas suggested by others. Being an active part of the community gives you a say in the direction of the network. NIPs published in the main repository are already approved. Adding new ideas is done via Pull Request on that repo. ### Where can I find NIPs? You can see all current NIPs in the [Nostr NIP repo](https://github.com/nostr-protocol/nips). ## Decentralized publishing for the web Source: https://nostr.how/en/what-is-nostr Markdown: https://nostr.how/en/what-is-nostr/index.html.md # Decentralized publishing for the web Nostr is a simple, open protocol that enables truly censorship-resistant and global value-for-value publishing on the web. ## What is Nostr? Nostr stands for "Notes and Other Stuff Transmitted by Relays". Like HTTP or TCP-IP, Nostr is a protocol; an open standard upon which anyone can build. Nostr itself is not an app or service that you sign up for. Nostr is designed for simplicity and enables censorship-resistant and globally decentralized publishing on the web. Let's unpack that a little: ### Simple The protocol is based on very simple & flexible `Event` objects (which are passed around as plain JSON) and uses standard public-key cryptography for keys & signing. This makes it easy to run relays and build clients and ensures that the protocol can be extended over time. ### Resilient Because Nostr doesn't rely on a small number of trusted servers for moving or storing data, it's very resilient. The protocol assumes that relays will disappear and allows users to connect & publish to an arbitrary number of relays that they can change over time. ### Verifiable Because Nostr accounts are based on [public-key cryptography](https://en.wikipedia.org/wiki/Public-key_cryptography?utm_source=nostr.how&ref=nostr.how) it's easy to verify messages were really sent by the user in question. ## How can I participate? Check out our [guide](/en/get-started) to get started! ## Why we need Nostr Source: https://nostr.how/en/why-nostr Markdown: https://nostr.how/en/why-nostr/index.html.md # Why we need Nostr Why Nostr and the broader idea of decentralizing the internet is an important concept. ## Do we really need another publishing protocol? Publishing on the web is fundamentally broken. What started as an open web of pages created by individuals has collapsed into a centralized oligopoly controlled by a handful of the world's most powerful companies. These companies control, often in ways they themselves don't even understand, what we read, who we talk to, and what ideas gain traction in our culture. Their pursuit of "engagement" has had tremendous negative consequences for society. It's time for the web to return to it's open and decentralized roots. It's time for us to take back control of what information we consume, and how we consume it. It's time for us to build more open-minded and constructive communities on internet. Nostr enables this. ## What Nostr enables - Simple, flexible `Event` format enables publishing of all types: Social media posts, long-form content, rich media, ecommerce, etc. - Verifiability that notes come from a specific user. This helps to combat spam and bots. - Users can connect to many relays, and run their own relays. This makes it hard to censor ideas and people. - Integrated with lightning, Nostr enables new [value-for-value](https://value4value.info?utm_source=nostr.how&ref=nostr.how) business models that have the potential to be more fair. - Nostr is the network for agents. No captcha's, no phone number verifications, no credit cards, no limits. Nostr is perfect for communicating with your OpenClaw or other agent. And since Bitcoin is built in at the protocol level, you can even give your agent a wallet in under 1 minute. There's an [MCP server](https://nostrbook.dev/mcp?utm_source=nostr.how&ref=nostr.how) for Nostr documentation if you're keen to start building. ## The status quo ### Mainstream media 1. Uses your attention to sell ads 1. Uses outragous headlines to create click-bait 1. Focuses on negativity and outrage (refer to point 1) 1. Struggling old-school business model creates desperation trying to keep up with big tech social media ### Big tech social media 1. Uses your attention to sell ads 1. Uses bizarre techniques to keep you addicted (refer to point 1) 1. Decides what content to show you based on secret algorithms that you can't inspect or change 1. Has complete control over who can participate and who is censored 1. Is overrun with spam and bots ### Mastodon (and other federated social media platforms) 1. User identities are attached to domain names which are controlled by third-parties. 1. These third-parties can ban you, just like centralized social media platforms. Server owners can also block other servers. 1. Migration between servers is difficult and can only be accomplished if servers cooperate. 1. There are no clear incentives to run servers, therefore they tend to be run by enthusiasts and people who want to have their name attached to a cool domain. Because of this, users are subject to the despotism of a single person, which is often worse than that of a big company like Twitter, and they can't migrate out. 1. Since servers tend to be run by amateurs, they are often abandoned. This effectively bans everybody that signed up via that server. 1. There are huge issues with data duplication across servers. ## What are Zaps? Source: https://nostr.how/en/zaps Markdown: https://nostr.how/en/zaps/index.html.md # What are Zaps? Learn about what Zaps are, how they work, and what you need to use them on your Nostr client. ## The basics The simplest way to think about Zaps is that they are simply tips. Tips which are transmitted over the [Lightning network](https://www.investopedia.com/terms/l/lightning-network.asp?utm_source=nostr.how&ref=nostr.how) at the speed of light with basically no transaction fees. In the beginning of the Nostr protocol, it was common to see Lightning invoices in notes. Since [NIP-57](https://github.com/nostr-protocol/nips/blob/master/57.md) was implemented, Zaps have become the main way that value is transmitted in Nostr notes. Let's take a closer look at what NIP-57 implemented and how Zaps work. ## NIP-57 [NIP-57](https://github.com/nostr-protocol/nips/blob/master/57.md) is the document that describes how Zaps should be implemented. It creates two new kinds of notes, kind 9735 (A Zap) and kind 9734 (A Zap request). In concert these two kinds make it possible for Nostr clients to request Zap invoices from LNURL servers and pay them. The NIP-57 spec also describes how Lightning wallets that receive Zap payments should create notes to be sent to relays. 💡 Fun fact, the note kind chosen for Zaps is the same as the networking port (9735) that Lightning uses. ## How Zaps work ![Zap flowchart](/images/zap-flow.webp) We won't get into the deep technical weeds here but for the curious among you, let's look at the basic mechanics of how Zaps work. 1. When you click or tap on the little ⚡ icon in your client (Damus, Iris, Amethyst, etc), the first thing that happens is that the client pings the [LNURL server](https://thebitcoinmanual.com/articles/what-is-ln-url-and-how-does-it-work/?utm_source=nostr.how&ref=nostr.how) that sits in front of lightning wallet of the person that you're trying to Zap. The first request goes something like, "Hi there, I would love to give Alice some sats." 2. The LNURL server responds and, if Alice's wallet supports Zaps, it will tell the client so and send/confirm Alice's public key. 3. At this point, the client does a little work to put together a Zap request (a kind 9734 note) with data about the profile or note that it would like to Zap, the amount, the relays it should broadcast the note to, and a few other things. This is effectively a request for an invoice from the LNURL server. 4. The LNURL server responds with the requested invoice. 5. At this point the client will hand that invoice off to the user's lightning wallet to be paid. If you are using a wallet like Alby in the browser (and have set a budget) this process can happen very quickly. 6. Once the user has paid the invoice directly to the wallet of the person they're zapping, the receiver's wallet will create a kind 9735 note and then broadcast that to the relays specified earlier in the Zap request. 7. Relays receiving this note will then be able to tell connected clients about the zap and clients can show the zap to users in their UI. And this all happens in just a few seconds and costs a tiny fraction of a penny. ## How do I send and receive Zaps? To Zap other people in Nostr, you need just two things: 1. A Zap-compatible lightning wallet (like [Alby](https://getalby.com?utm_source=nostr.how&ref=nostr.how) or [Wallet of Satoshi](https://www.walletofsatoshi.com?utm_source=nostr.how&ref=nostr.how)) 2. A client that has implemented Zaps (like [Primal](https://primal.net?utm_source=nostr.how&ref=nostr.how), [Damus](https://apps.apple.com/app/damus/id1628663131?utm_source=nostr.how&ref=nostr.how), or [Amethyst](https://play.google.com/store/apps/details?id=com.vitorpamplona.amethyst?utm_source=nostr.how&ref=nostr.how)) The only other thing that you need to do is make sure you have your lightning address set in your Nostr profile. This is the address where you'll receive Zaps.