Getting Started
How to get started quickly with NWC
NWC allows you to easily connect your app with wallets. It provides a simple and intuitive interface for apps to request actions such as payments.
Benefits
Convenient: No need to confirm payments or scan QR codes with connected wallet
Flexible: Build a complete wallet interface or use just a single payment feature
Interoperable: One interface to onboard users from any bitcoin wallet
Risk Free: Move from custodying funds to orchestrating payments
Platform independent: Mobile, backend, CLI tools, desktop apps
Features
Receive payments in real-time
Send single, multiple payments or even automate payments
Show wallet balance
List payments
Check payments
Obtaining a connection string
A client app discovers a wallet service by scanning a QR code, handling a deeplink or pasting in a URI.
The wallet service generates this connection URI with protocol nostr+walletconnect://
and base path it's hex-encoded pubkey
with the following query string parameters:
relay
Required. URL of the relay where the wallet service is connected and will be listening for events. May be more than one.secret
Required. 32-byte randomly generated hex encoded string. The client app MUST use this to sign events and encrypt payloads when communicating with the wallet service.Authorization does not require passing keys back and forth.
The user can have different keys for different applications. Keys can be revoked and created at will and have arbitrary constraints (e.g. budgets).
The key is harder to leak since it is not shown to the user and backed up.
It improves privacy because the user's main key would not be linked to their payments.
The client app should then store this connection and use it when the user wants to perform actions like paying an invoice. Due to this NIP using ephemeral events, it is recommended to pick relays that do not close connections on inactivity to not drop events.
Example connection string
To automate the construction and handling of connection strings check out:
Last updated