Skip to content

[Mobile] Wallet: integrate Breez SDK Liquid (React Native) + NWC #7

Description

@Salmatcre8

Summary

Bring the Lightning wallet to the mobile app. Good news: Breez ships a React Native SDK, so we
replace the in-browser WASM (@breeztech/breez-sdk-liquid) with the native binding instead of
fighting WASM on mobile. This should be more reliable than web.

Target / reference

  • Web adapter to mirror: src/lib/wallet/breezAdapter.ts (and the NwcAdapter + shared store
    interface). Keep the same adapter shape on mobile so screens stay portable.
  • Native package: @breeztech/react-native-breez-sdk-liquidverify the exact package name and
    current version
    when starting; Breez naming has changed over releases.

Tasks

  • Add the Breez React Native SDK; this requires a dev build (EAS), not Expo Go.
  • Initialize the SDK with NEXT_PUBLIC_BREEZ_API_KEY's mobile equivalent (config, not a secret —
    Breez ships it client-side by design).
  • Feed it the mnemonic produced by the key-derivation spike (blocked on that issue).
  • Implement: show balance, receive (BOLT11 invoice + QR), send (pay invoice) — matching web.
  • Also port the bring-your-own NWC path (@getalby/sdk) so users with Alby/Mutiny/Primal
    can connect, same as web.

Acceptance criteria

  • On a dev build, a wallet initializes from the derived mnemonic, shows a real balance, and can
    generate a receive invoice and pay one on Liquid/Lightning.
  • NWC connect works for at least one external wallet.

Blocked by

  • Key-derivation spike (the wallet needs a mnemonic/seed source first).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions