Skip to content
SpendTheBits

Self-custodial Lightning wallet: how Spark works

By , Founder, SpendTheBits ·

In short

A new Self-custodial Lightning wallet does not force you to run a heavy node on your phone. SpendTheBits leverages the Breez Spark SDK to keep your private keys safe on your phone. It uses a hosted LNURL server to handle secure inbound payments even while you are offline.

3
On-chain confirmationsSource: Breez Technology

For a long time, freelancers and remote workers faced a technical barrier when managing their own keys. To get fast digital payments with no middleman, you had to run a full routing node on your phone. This task in the background quickly drained your phone battery and used too much mobile data. This old barrier turned users away from self-custody. It forced them to trust big hubs that held their funds.

Today, modern blockchain technology has introduced a cleaner way to handle peer-to-peer payments. By signing on your own device, a new Self-custodial Lightning wallet offers fast payments without slowing your phone. This change lets self-employed workers get fast, safe payments while they keep full control of their money. In this article, we will explore how this new design works and how it keeps your assets safe.

SpendTheBits Lightning receive screen with an amount entered, beside the three on-chain confirmations figure.

Breaking the node barrier with Spark

When your phone goes offline, traditional routing and channel updates cannot happen. This limit made early mobile payment tools hard to use for freelancers who needed stable payment addresses. Without a web connection, your wallet could not do the complex steps to keep channels open. This tech barrier meant users had to choose between staying online or letting others hold their money.

The Breez Spark SDK solves this problem with a nodeless design for decentralized payments [1]. Instead of running a full node on your phone, the system utilizes a native layer two protocol [1]. This setup lets a Self-custodial Lightning wallet talk to the network without running a local node [1]. The design ensures that your mobile client remains lightweight and fast, preventing third parties from holding your funds while making the network much easier to use [1].

This complete integration brings client-side signing directly to your mobile device [1]. The Breez SDK is free for developers and provides bindings to popular programming languages [1]. Users can also send stablecoins like USDC and USDT on networks like Base and Ethereum [1]. It also allows you to keep your balance stable in USD [1]. This integration simplifies payments by removing the heavy infrastructure requirements of traditional nodes, letting apps offer fast payments to a global audience without losing security [1].

Ownership of private keys and operator limitations

Under this modern decentralized design, you might wonder who actually controls the money. In our wallet, the seed phrase and private keys are made and stored only on your device. The SpendTheBits backend only stores public data like addresses and transaction hashes. This helps run payments and protects your true control. We never see your seed or private key under any circumstances. You must sign every transaction on your local device before it goes to the network.

Because our architecture is fully non-custodial, the cryptographic keys are only held by users [1]. The system operators cannot move your funds, freeze your balance, or reverse any transactions you sign on your phone. This means that even if our servers are completely down, your funds remain secure on your device. The operators simply lack the cryptographic authority to touch your balance. You retain absolute control over your financial assets at all times.

This split of power makes sure you keep full control of your assets with no third party risk. To learn more, read our introductory guide to self-custody. It shows why keeping your keys is vital for financial freedom. This non-custodial security model is fully live on both iOS and Android platforms. One seed phrase makes all your addresses on many networks. It is self-custodial, so the system never holds your funds.

Receiving payments while your phone is offline

Historically, if a client sent you a payment while your phone was off, the transaction would simply fail. This made getting paid hard for remote workers who travel and do not have a steady web connection. It forced many people to use custodial services just to ensure they did not miss inbound payments. The lack of offline support was a major roadblock for the global use of small, fast payments.

The Spark SDK solves this offline problem by using a smart payment delivery system to help you maintain a secure Self-custodial Lightning wallet [3]. This client-side signing process ensures you maintain custody throughout the entire transaction cycle. This ensures you never miss a transaction even if you are offline for days at a time. To make things run even smoother, our app supports simple Lightning addresses like handle@pay.spendthebits.com. These addresses look like standard email addresses and are served by a hosted server [4].

You can read our guide to Lightning addresses to see how this works. This setup means you can share your address and receive Bitcoin safely even when your phone is turned off. When you need to get paid immediately, you can generate a standard invoice [3]. This request specifies the amount the other party must send to your wallet [3]. Generating this payment request only requires your public key, keeping your private keys secure [3]. This off-chain payment goes over the Lightning Network. Still, the app does not support BOLT12 offers.

SpendTheBits Lightning Receive Screen
Accessing your Lightning address in the SpendTheBits app to receive payments seamlessly.

The unilateral exit safety net

A true self-custody system must let you get your funds out if the provider stops working. Spark gives you this high safety through a tool called a unilateral exit [2]. This setup lets you move your whole balance to the main Bitcoin blockchain [2]. You do not need the operator to sign off on the transaction [2]. It acts as a final safeguard for your funds if the operators stop helping you with normal withdrawals [2].

The unilateral exit is a key safety net for your funds if the operators stop helping you [2]. But it is a last resort. It takes many on-chain steps and can take days due to timelocks [2]. It also requires you to have your own separate Bitcoin to pay for the necessary mining fees [2]. These fee-bump transactions use a child-pays-for-parent mechanism to ensure they get confirmed by miners [2]. You must supply this funding from a native SegWit address to make sure the transactions are valid [2].

Your balance is held in a tree of pre-signed transactions, where each leaf represents a portion of your funds [2]. To recover them, you must broadcast these transactions to the network yourself in order [2]. Read our comparison of Lightning versus on-chain payments to see how they compare. This help document explains how transaction fees differ between these two payment methods. By keeping this exit data synced on your device, you do not need any third party server [2].

Understanding leaf optimization and exit costs

When you use a Self-custodial Lightning wallet, how the system builds your balance matters. The SDK splits your total balance into various transaction leaves to facilitate daily payments [2]. This split uses leaf optimization to balance your daily payment experience against your exit costs [2]. More leaves allow for smoother payments without constant adjustments, while fewer leaves cost less to exit [2]. The default settings are optimized to suit most everyday wallets [2].

If your balance is spread across many small leaves, a unilateral exit needs more transactions [2]. This means more of your funds go to on-chain mining fees during an emergency recovery [2]. Because of this, some low-value leaves might be left behind during an emergency exit [2]. You must check these fees carefully before you start a unilateral recovery process. The SDK lets you quote these fees beforehand so you know exactly what to expect [2].

To avoid high fees, use the standard cooperative exit path when the operator is online [2]. Cooperative paths are cheaper and faster, and they do not need to post the whole transaction tree on-chain [2]. Also, SpendTheBits charges no fee on Lightning payments. You only pay standard network routing fees. If you want to learn more about how to secure your setup, read our guide to self-custody for extra tips.

How static identifiers and LNURL-Pay function

Lightning addresses use LNURL-Pay to make Bitcoin payments as simple as sending an email [4]. You do not need to make a new invoice for every payment. You can share one static identifier with clients [5]. The system requests a new invoice behind the scenes when a sender enters your address [4]. This removes the friction of coordinating payment details manually. It makes getting paid for your work incredibly convenient.

This rule is set by LUD-16 [5]. It shows how static web identifiers turn into payment requests [5]. When a wallet finds a static address, it asks the service domain to resolve the destination [5]. This process allows for frictionless tipping and freelance payments across different platforms [5]. The protocol requires adding metadata to the JSON array to identify the payment link [5]. The system also ensures that only the receiver's public key is required to create these invoices [3].

By integrating this standard, we make it easy for remote workers to get paid globally. You can register your custom handle directly within our application and share it with clients. Your handle will then be linked to your public identity key securely [4]. This process does not require sharing your private keys at any point [3]. If you want to bridge other assets, we charge a small fee, under one percent, shown before you confirm.

In the app · 3 steps

Receive Bitcoin on Lightning in SpendTheBits

The wallet runs the Lightning side on your phone, so you keep the keys. Here is where each step lives.

  1. Open Receive and pick Lightning

    Receive has a Lightning tab next to the on-chain address, so you choose the rail before you share anything.

    The Receive screen in SpendTheBits with the Lightning tab selected
  2. Enter an amount if you want one

    Ask for a specific amount or leave it open. The code the app shows follows what you typed.

    The Lightning request screen in SpendTheBits with an amount entered
  3. Share the invoice

    Copy it, show the QR, or share it as an image. The keys that sign never leave the phone.

    A Lightning invoice and QR code in SpendTheBits

Hold your own keys, keep the yield, skip the middleman.

SpendTheBits is a fully non-custodial wallet for 13 chains, free on iOS and Android.

Frequently asked

No, SpendTheBits is a fully non-custodial wallet where keys are generated and stored only on your local device.

Yes, our Lightning addresses are served by a hosted server, allowing you to receive payments safely even when your phone is turned off.

A unilateral exit is an on-chain safety mechanism that lets you retrieve your funds onto the Bitcoin mainnet without needing the operators to sign the withdrawal.

Sources

  1. 1.About Breez SDK - Spark · Breez Technology · accessed 2026-09-19
  2. 2.Unilateral exit · Breez Technology · accessed 2026-09-19
  3. 3.Receiving payments · Breez Technology · accessed 2026-09-19
  4. 4.Receiving payments using LNURL-Pay and Lightning addresses · Breez Technology · accessed 2026-09-19
  5. 5.LUD-16: Paying to static internet identifiers · GitHub · accessed 2026-09-19

This article is educational and reflects observed data and public sources on the date shown. It is not financial, legal or tax advice. Digital assets can lose value; yields shown are observed, not promised.

STB Weekly, every tuesday

The short version of pieces like this one, plus what moved in AI in finance and agent payments. What you get

Product updates and release notes. No price calls, no spam, unsubscribe in one click. We email you once to confirm before anything else is sent.