Inspiration

I played a lot around with webtorrent and torrent in general. What I personally don't like is the amount of dependencies and grown infrastructure. I wanted a simple data transfer solution over the browser, so I can send my files between different devices. That was my initial use-case why I started with WebRTC. How bad could it be? Yeah it's that bad! Then I got introduced to cashu and thought to myself: Maybe I can monetize the data. That makes sense to me, because I'm not just a programmer, I'm an artist, too.

What it does

Creating a basic cashu wallet, giving an imaginary customer some funds and let him buy products. All through the data channel of the WebRTC protocol and a connection mediator based on nostr.

How we built it

  • Browser: HTML, CSS, JavaScript, AlpineJS, cashu-ts, nostr-tools
  • Nostr Relay: nostr-rs-relay
  • Mint: gonuts
  • Lightning network: local lightning setup via Polar

Learnings / Accomplishments

I didn't expected that the nostr signaling implementation went so smoothly. Setting up the development lightning network was kind of a challenge for me. I started basically from the ground up with zero knowledge about cashu and get used to it during one day.

What's next

I have a bunch of ideas:

  • An experiment with streaming audio/video for e-cash over WebRTC.
  • Sending big files > 1GB
  • Building a mesh net with multiple peers
  • Using nostr contact list to create an ad-hoc mesh net
  • creating a CLI for backend streaming solutions
  • Trying Web Bluetooth
  • Building a live environment

Built With

Share this project:

Updates