UX challenges

IT Trade-offs

Transaction Details

Custodial wallet

Transaction Details

ACME wallet

Transaction Details

Multiple balances (L1 + L2)

Possible solutions

  • Only do layer 1
  • Show both balances (savings / spending account)
  • Keep money in one layer only --> swap

Receiving on both layers

Possible solutions

  • Only allow receiving on one layer
  • Let user switch between layers
  • Propose sensible layer for given amount
  • Use L1-fallback-address in L2-invoice

Sending to both layers

Possible solutions

  • Only allow sending to one layer
  • Close/open a channel (on-the-fly)
  • Use swaps

Edge case: Payee displays both options. How should we pay?

L1: Payment is stuck

  • Payment cannot be canceled
  • Is payment still in mempool?
  • Bump fee

LN: Channel reserves

Channel has a reserve of 1% of the total capacity

User cannot send full balance!

Never display that amount as being owned?

Channel reserves may change.

Solution: Abolish channel reserves on user side?

LN: Multiple channels

User has 3 channels with 1'000 sats outbound-capacity each.

Wants to pay 2'500 sats

Solution: MPP (Multi-path-payments)

On-boarding process

  • Install Lightning app
  • Send on-chain funds to Lightning app
  • Open Lightning channel
  • Spend / swap out sats
  • I can finally receive (some) sats :-)
  • Solution: LSP

Lightning Service Provider

  • Pioneered by Breez
  • Open channel to newly installed wallet
  • Even better: Open channel on-the-fly
  • Explain fee situation! (--> Spontaneous payments?)

Channel opening cost

  • Lightning network fee
  • On-chain fee channel opening
  • Estimated on-chain fee for channel closing
  • Estimated on-chain fees for consolidating UTXOs
  • Channel reserves (?)

Spontaneous payments

  • Mobile is not online
  • User needs to open wallet to pull his funds
  • What if user doesn't open app?
  • On-chain fallback? Dust payment?