Accept Bitcoin at Vending Machine

With the rising popularity of exchanging sats for goods and services in Rust it would be awesome to integrate this seemlessly into the vending machine so that we can complete trades while afk.

The current methods used for accepting sats require the vendor to be online to show the buyer where to send the sats and to release the goods once the payment has been received. e.g. passing a note with a lightning invoice through the trade window or directing customers to a sign containing a QR code, then waiting to see the funds have been received in your wallet before handing over the goods or delivering the service. 

It would be cool if there was a way for shop owners to pair their chosen lightning wallet with their vending machine, perhaps using LNURL-auth and lightning addresses, in such a way that when a customer is interacting with a vending machine the vending machine is providing the invoices/lightning address for the sellers wallet and it is able to detect once the payment has been received so that it can release the goods. 

The minimum viable product would be for the server to operate a central custodial lightning wallet where each player has a balance that they can exchange with each other, then they can deposit and withdraw their sats when they want to (this can already be implemented simply by using the Economics plugin and the Vending machine manager, then requiring that players send sats to the server to add to their balance, and allow players to withdraw sats from the server by withdrawing their balance). However this is not ideal, it exposes the server owner to regulatory risks for acting as a custodian of other peoples money, as well as increasing friction where there shouldn't be any - we want to let the sats flow! We don't want people to have to trust the server.

With so many lightning wallets already on offer it would be great if players can just stick to using whatever they want and this plugin simply facilitates the exchange of information required to complete the transaction. That way this plugin and the servers operating it are protected by free speech laws and cannot be stopped. 

Some examples of modern bitcoin wallets that support new lightning features include: Breez (android, ios), Blue Wallet (android, ios), Coinos (web wallet), Wallet of Satoshi (android, ios), Zebedee (android, ios, browser), Alby (browser) and soon Green Wallet (android, ios, desktop). 

If anyone has any ideas on how to approach this let me know! 

sats4hotel

Bitcoin has always been argued as a store of value. Don't see a reason to be using it for small purchase. There are things like nano which have no fee, instantly transferred and would fair well for something like this. 

Note I don't possess any nano. Used to have a small fortune worth. Idk if they changed much in the last couple years though. 

Bitcoin is currently being used as medium of exchange for micropayments (payments that are a fraction of a cent and not possible with traditional finance intermediaries). Take for example the use case of streaming sats per minute to listen to podcasts with fountain.fm or using sats for upvotes at stacker.news, or tipping sats to users on nostr. Orange Mart is already using it for micropayments on the Orange server, this plugin request is about making it easier to use when the vendor is afk/offline.

Be careful mixing up Bitcoin with 'cryptocurrencies', especially ones that market themselves as being Bitcoin 2.0 or a better Bitcoin, most of the time there is a tradeoff that is hidden from users and it compromises the whole thing, especially when it reduces security of the protocol and the level of decentralisation. If the protocol isn't decentralised then someone can change the monetary policy and that kills the scarcity (making it just like fiat currencies, able to be printed out of thin air!). 



Merged post

It's possible the solution we're looking for could involve lightning addresses and nostr, specifically NIP-57: Lightning zaps. 

"This NIP defines a new note type called a lightning zap of kind 9735. These represent paid lightning invoice receipts sent by a lightning node called the zapper. We also define a another note type of kind 9734 which are zap request notes, which will be described in this document.
 
Having lightning receipts on nostr allows clients to display lightning payments from entities on the network"

https://github.com/nostr-protocol/nips/pull/224