Files
amethyst/desktopApp/plans/2026-05-21-embedded-wallet-phase2-research.md
Claude 6579b5f656 docs: audit, status-stamp, and index all module plans
Audited all 143 plan files across the 10 plans/ folders. Each plan now
carries a Status header (shipped | in-progress | queued | abandoned)
backed by codebase evidence, and every folder has a README.md index
grouping plans by status.

Shipped plans were moved into a per-folder plans/archive/ (via git mv,
history preserved) so each plans/ folder surfaces only live work:

  shipped (archived): 122   in-progress: 8   queued: 7   abandoned: 4

docs/plans/ is the frozen legacy folder; its plans were stamped and
indexed in place (48 of 52 archived) but it remains closed to new plans.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016hpUivtmq4pgzqRbY6MYrA
2026-06-30 15:35:38 +00:00

54 lines
1.9 KiB
Markdown

# Phase 2: Embedded Self-Custodial Wallet — Research Summary
> **Status:** queued — research summary explicitly "parked" pending NWC parity; no embedded-wallet (Breez/ldk-node/lightning-kmp) code exists.
> _Audited 2026-06-30._
**Date:** 2026-05-21
**Status:** Research complete, parked. Return after NWC parity (Phase 1) ships.
## Context
No desktop Nostr client has an embedded wallet. All use NWC. This would be a first.
## Top Candidates (High Sovereignty)
| | Breez SDK Spark | ldk-node-jvm | lightning-kmp |
|---|---|---|---|
| Sovereignty | Full | Full | Full |
| Architecture | No channels | Channels + LSPS2 | Single channel + splicing |
| KMP/JVM | KMP artifact (`breez-sdk-spark-kmp:0.7.10`) | JVM JAR (`ldk-node-jvm:0.7.0`) | KMP (`lightning-kmp:1.8.4`) |
| LSP lock-in | None | Any LSPS2 | ACINQ only |
| Embedding docs | Breez docs | Good | None |
| License | MIT | MIT/Apache-2.0 | Apache-2.0 |
### Recommended path
1. **Spike Breez SDK Spark** — verify KMP artifact works on JVM desktop (not just Android)
2. **Fallback: ldk-node-jvm** — proven JVM, any LSP, well-documented
3. **Skip: lightning-kmp** — ACINQ LSP lock-in, no embedding docs
### Eliminated
- phoenixd: subprocess, no Windows native
- Breez SDK Liquid: Android-only bindings
- Greenlight: weak JVM support
- Cashu: not self-custodial (mint trust)
## Open Questions
1. Does `breez-sdk-spark-kmp` include JVM desktop native libs?
2. Spark fee economics for small zaps (10-100 sats)?
3. Does `ldk-node-jvm` bundle macOS arm64/x64 + Linux x64 natives?
4. Which LSPS2 LSPs are publicly available?
5. Would ACINQ accept third-party lightning-kmp clients?
## Nostr App Landscape
| App | Wallet | Type |
|-----|--------|------|
| Primal | Strike (custodial), maybe migrating to Spark | Built-in |
| 0xchat | cashu-dart | Cashu ecash |
| YakiHonne | Cashu + NWC | Dual |
| Amethyst Android | NWC + Cashu token parsing | External |
| All desktop clients | NWC only | External |