The Breez SDK provides developers with an end-to-end solution for integrating self-custodial Lightning into their apps and services. It eliminates the need for third parties, simplifies the complexities of Bitcoin and Lightning, and enables seamless onboarding for billions of users to the future of value transfer.
The Breez SDK is free for developers.
It’s a nodeless integration that offers a self-custodial, end-to-end solution for integrating Lightning, utilizing the Bitcoin-native Layer 2 Spark with on-chain interoperability. Using the SDK you'll able to:
- Send payments via various protocols such as: Bolt11, LNURL-Pay, Lightning address, BTC address, Spark address
- Receive payments via various protocols such as: Bolt11, BTC address, Spark address
Key Features
- Send/Receive Lightning payments
- Send/Receive Spark payments
- Send/Receive via on-chain addresses
- Send LNURL-pay & Lightning address payments
- Keys are only held by users
- Free open-source solution
Head over to the Breez SDK - Nodeless (Spark Implementation) documentation to start implementing Lightning in your app.
You'll need an API key to use the Breez SDK - Nodeless (Spark Implementation). To request an API key is free — you just need to complete this simple form.
API documentation is here.
The Breez SDK - Nodeless (Spark Implementation) cli is a command line client that allows you to interact with and test the functionality of the SDK.
Looking for a quick way to try the SDK in the browser? Check out our WASM demo app:
- Repo: breez/breez-sdk-spark-example
- Live demo: https://breez-sdk-spark-example.vercel.app
Note: The demo is for demonstration purposes only and not intended for production use.
Have a question for the team? Join our Telegram channel or email us at contact@breez.technology
The Breez SDK – Nodeless (Spark implementation) uses Spark, a Bitcoin-native Layer 2 built on a shared signing protocol, to enable real-time, low-fee, self-custodial payments.
When sending a payment, Spark delegates the transfer of on-chain bitcoin to the recipient through a multi-signature process. Spark Operators help facilitate the transfer, but they cannot move funds without the user. This allows the payment to settle almost instantly, without requiring a blockchain confirmation.
When receiving a payment, the same process works in reverse: the network updates ownership of the bitcoin to the user through the shared signing system, recording the change off-chain while always keeping the funds secure.
Unlike blockchains, rollups, or smart contracts, Spark doesn’t create a new ledger or require trust in external consensus. On Bitcoin’s main chain, Spark transactions appear as a series of multi-sig wallets. Off-chain, Spark keeps a lightweight record of balances and history.
Funds are self-custodial: you can exit Spark at any time and reclaim your bitcoin directly on the Bitcoin main chain.
- crates: Contains the root Rust cargo workspace.
- breez-sdk: Collection of Breez SDK crates.
- bindings: The FFI bindings for Go, Kotlin, Python, React Native, and Swift.
- cli: Contains the Rust command line interface client for the SDK.
- common: The common Breez SDK Rust library.
- core: The core Breez SDK Rust library.
- wasm: The Wasm interface bindings.
- spark: The Spark crate.
- breez-sdk: Collection of Breez SDK crates.
- packages: Contains the packages for Flutter, React Native and Wasm.
Contributions are always welcome. Please read our contribution guide to get started.
- Send/Receive Lightning payments
- Send/Receive Spark payments
- Send/Receive via on-chain addresses
- CLI Interface
- Go, JS, Kotlin, Python & Swift languages bindings
- Send via LNURL-Pay
- Send to a Lightning address
- Payments persistency including restore support
- Automatic claims
- WebAssembly support
- Flutter & React Native bindings
- Receive via LNURL-Pay w/ offline & Lightning address support
- Support Spark tokens
- Real-time sync
- C# language binding
- LNURL-Withdraw
- LNURL-Auth
- External input parsers
- Bolt12
- WebLN
- NWC
- Add additional fees via a dedicated portal