/LightningATM

This ATM sends bitcoin over the Lightning Network - pretty fun.

Primary LanguagePythonMIT LicenseMIT

LightningATM

This LightningATM was built to distribute small amounts of BTC - obviously - it only accepts coins. It shall demonstrate the power of Bitcoins Lightning Network. A two cent coin is enough to buy some satoshis at the LightningATM.

A physical coin exchanged into bitcoin and send to your lightning wallet in seconds. Use this project to educate your family and friends or guests at your bitcoin meetup - a convenient and easy on-boarding process for people that are new to bitcoin.

Please be aware that this is a hobbyist project and it is not secure and reliable enough to withstand attacks. I discourage the use of this setup in a professional environment - but it's rather a good educational tool

A comprehensive guide on how to setup the LightningATM can be found here https://docs.lightningatm.me. Also join the Telegram group of LightningATM builders here https://t.me/lightningatm_building or contact me on Twitter (https://twitter.com/21isenough).

Please check out this video, to see the LightningATM in action:

alt text

Parts list (price estimate: 50-70 USD)

Please find the detailed parts list on the LightningATM documentation website:

https://docs.lightningatm.me/requirements/hardware-requirements

Todo

Prio 1

Prio 2

  • Dashboard for settings (via mobile)
  • Add second button and admin menu
  • Add admin function only available through qr pass
  • Run certain functions in threads
  • Additional button for restart and shutdown
  • Find solution to work without jumper cables
  • Add encrypted partition with sensible data

Prio 3

Done

  • Check out BTCPay API to integrate backend
  • Add coin return stopper to 3d design
  • Try different e-ink screen
  • Add a language file to change strings easily
  • Write installations instructions (see docs.lightningatm.me)
  • Rethink the design decisions in regards to hardware (https://www.arrow.com/en/products)
  • Add encryption of admin.macaroon in idle mode
  • Design ideas for case
  • Slightly recline front board to the back, add immersion for camera
  • Move scanning function into utils
  • Move all display functions into display.py
  • Implement lnurl with lntxbot
  • Draw printer and boards in 3D (https://www.onshape.com/)
  • Write list of all compatible wallets/qr qr_codes
  • Test qr code on 2" eInk display (works)
  • Research camera resolutions / qr code scanning
  • Check if there's other zbar python libraries
  • Change to wide angle camera
  • Sort out scan errors
  • QR code scan function
  • Validate requested amount
  • Reject to high amounts
  • Add config file
  • Add parts list to readme
  • Ask for rescan of QR code
  • Inform about failed scan
  • Implement continuous QR Scan
  • Lower case ln invoices
  • Find a faster solution for QR scans (zbarcam)
  • Organize todos better

Mentioned