Hey apps,
meet bitcoin
Nostr Wallet Connect (NWC) is an open protocol
to connect lightning wallets to apps
NWC allows for sustained interaction between bitcoin lightning wallets and apps.
Once an app connection is created, the app can request payments through a Nostr relay.
NWC allows for sustained interaction between bitcoin lightning wallets and apps.
Once an app connection is created, the app can request payments through a Nostr relay.
NWC allows for sustained interaction
between bitcoin lightning wallets and apps.
Once an app connection is created,
the app can request payments through a Nostr relay.
App
Wallet
Creates app connection
Confirms app connection

Relay
Requests
pay_invoice
Recipient
⚡Invoice paid ⚡
Forwards
pay_invoice
App
Wallet
Creates app connection
Confirms app connection

Relay
Forwards pay_invoice
Requests pay_invoice
Recipient
⚡ Invoice paid ⚡
App
Wallet
Creates app connection
Confirms app connection

Relay
Forwards pay_invoice
Requests pay_invoice
Recipient
⚡ Invoice paid ⚡
Users connect wallets instantly – no Nostr account required
Seamless in-app transactions – no confirmations or QR codes needed
Users come with wallets of choice – your app never touches bitcoin
A single interface that allows to onboard from numerous bitcoin wallets
Choose JavaScript or Rust SDK to easily integrate
NWC into your application.

1
2
3
4
5
6
7
8
9
import { webln } from "@getalby/sdk";
const nwc = new webln.NWC({ nostrWalletConnectUrl });
// connect to the relay
await nwc.enable();
// now you can send payments by passing in an invoice
const response = await nwc.sendPayment(invoice);
1
2
3
4
5
6
use nwc::prelude::*;
let nwc = NWC::new(uri);
let params = PayInvoiceRequest::new(invoice);
let response = nwc.pay_invoice(params).await?;
with +350,000 users
Damus
Social media
Zap Stream
Stream and stack sats
Zapple Pay
Zap from any client
Lume
Social media
Bitcoin Connect
WebLN library
Kiwi
Communities
Boardwalk Cash
ecash web wallet
Wavlake
Creators platform
Amethyst
Social media
Snort
Social media
ZapPlanner
Schedule payments
Habla News
Blogging
Zappy Bird
Loose sats quickly
More Speech
Social media
YANA
Social media
Spring
Nostr browser
Primal
Social media
Wherostr
Map of notes
noStrudel
Social media
YakiHonne
Blogging
Nostur
Social media
Users connect wallets instantly – no Nostr account required
Seamless in-app transactions – no confirmations or QR codes
Users come with wallets of choice – your app never touches bitcoin
A single interface to onboard from numerous bitcoin wallets
Choose JavaScript or Rust SDK to easily integrate NWC into your application.

1
2
3
4
5
6
7
8
9
import { webln } from "@getalby/sdk";
const nwc = new webln.NWC({ nostrWalletConnectUrl });
// connect to the relay
await nwc.enable();
// now you can send payments by passing in an invoice
const response = await nwc.sendPayment(invoice);
1
2
3
4
5
6
use nwc::prelude::*;
let nwc = NWC::new(uri);
let params = PayInvoiceRequest::new(invoice);
let response = nwc.pay_invoice(params).await?;
with +350,000 users
Damus
Social media
Zap Stream
Stream and stack sats
Zapple Pay
Zap from any client
Lume
Social media
Bitcoin Connect
WebLN library
Kiwi
Communities
Boardwalk Cash
ecash web wallet
Wavlake
Creators platform
Amethyst
Social media
Snort
Social media
ZapPlanner
Schedule payments
Habla News
Blogging
Zappy Bird
Loose sats quickly
More Speech
Social media
YANA
Social media
Spring
Nostr browser
Primal
Social media
Wherostr
Map of notes
noStrudel
Social media
YakiHonne
Blogging
Nostur
Social media
building?
Users connect wallets instantly – no Nostr account required
A single interface to onboard from numerous bitcoin wallets
Users come with wallets of choice – your app never touches bitcoin
Seamless in-app transactions, no confirmations or QR codes
Choose JavaScript or Rust SDK to easily integrate
NWC into your application.

1
2
3
4
5
6
7
8
9
import { webln } from "@getalby/sdk";
const nwc = new webln.NWC({ nostrWalletConnectUrl });
// connect to the relay
await nwc.enable();
// now you can send payments by passing in an invoice
const response = await nwc.sendPayment(invoice);
1
2
3
4
5
6
use nwc::prelude::*;
let nwc = NWC::new(uri);
let params = PayInvoiceRequest::new(invoice);
let response = nwc.pay_invoice(params).await?;
with +350,000 users
Damus
Social media
Zap Stream
Stream and stack sats
Zapple Pay
Zap from any client
Lume
Social media
Bitcoin Connect
WebLN library
Kiwi
Communities
Boardwalk Cash
ecash web wallet
Wavlake
Creators platform
Amethyst
Social media
Snort
Social media
ZapPlanner
Schedule payments
Habla News
Blogging
Zappy Bird
Loose sats quickly
More Speech
Social media
YANA
Social media
Spring
Nostr browser
Primal
Social media
Wherostr
Map of notes
noStrudel
Social media
YakiHonne
Blogging
Nostur
Social media

A simple library that combines NWC with WebLN and enables users to connect their wallet to websites on any browser or device.
A simple library that combines NWC with WebLN and enables users to connect their wallet to websites on any browser or device.
A simple library that combines NWC with WebLN and enables users to connect their wallet to websites on any browser or device.




Nostr is so much more than just "decentralised social media".
It's a neutral communication protocol that allows for high degree of interoperability between bitcoin and other technologies.