Exploring Settlement Architecture for an Open Source Community Project in Belgrade Hub
We're researching the architecture for a settlement application we want to create in the Belgrade Hub as a open source community project. We're using bitcoin so we don't have to trust a third party that a transaction happened (in a social setting, and global).
Challenges
-
How might we know if an was settled for the application?
-
How might we make it most widely accessible?
We are considering what the architecture is here's some of the current options on our radar.
Settle using a light node within the application (currently preferred)
By having a node within the application we're able to determine if an invoice is settled, but would then require some funding operation from somewhere external. This creates some additional challenges on the development side. It provides a non-custodial experience which is super important!
- Light Weight Nodes like
breez-sdk / greenlight
Settle using an external wallet (not ideal UX because it's difficult to verify the settlement)
While this by far is the easiest to implement. Since we can rely on lightning addresses we're able to fetch an invoice from the users lightning wallet. (Can be non-custodial but most cases it's from Wallet Of Satoshi, Get Alby or some other custodial provider).
On lightning the only option you have for payment verification is the pre-image. If we settle in an external wallet this could cause some problems with verifying if the payment was made.
- Rely just on Lightning Addresses in profiles and have a UX like The Bitcoin Company, or Damus which uses deep linking to external wallets.
Research Nostr Zaps...
Settle using a remote node
-
Remote controlled node to e.g.
btc-pay-server
-
Lightning Node Connect (lightning labs) can also be researched for connect to LND nodes
Offload custody to another service
- Get Alby has a API for their custodial accounts which also provides Nostr Addresses + Lightning Addresses