# Mint, Melt, Repeat: Interactive E-cash for Bitcoiners This workshop is a live-fire introduction to digital bearer cash. Participants will program their own minimal Cashu wallet, capable of minting, sending, swapping, and melting tokens—using real Chaumian e-cash, not simulation. You’ll connect to a Cashu mint (think: digital “bank”), blind your tokens for privacy, receive and spend them in real time. You’ll experience true cash-like privacy: your tokens are yours alone until you spend or lose them. At the end, you’ll trade and melt tokens with other attendees—no blockchain, no on-chain fees, just pure cryptographic fun. **Core goals:** - Demystify how blinded signatures work (no math PhD required). - See how digital cash can be private, instant, and “bearer” (lose your phone, lose your coins). - Build, debug, and use your own wallet—no magic, no trust required. - Learn the practical protocols that will power Bitcoin’s privacy future. **What would an attendee learn from this workshop?** - How Chaumian e-cash and blinded signatures give privacy guarantees that blockchains never could. - How to implement mint, melt, send, and swap logic interacting with a test Cashu mint. - How to send and receive tokens, and how the protocol protects you from double-spending. - The architectural difference between account-based and bearer-based systems. - Where Cashu fits in the Bitcoin landscape, and why “digital cash” is relevant now. **Is there anything attendees should read up on before they attend this talk?** - If you’ve never heard of Cashu or Chaumian e-cash: [What is Cashu?](https://docs.cashu.space/) - [Cashu Nuts Protocol Specifications](https://cashubtc.github.io/nuts/) **Is there anything attendees should set up before the workshop?** - A code editor or notebook environment. - Python 3.x installed (or JavaScript/Node if you prefer — examples will use Python). - Internet connection (for connecting to the test mint, or run a local mint if you’re feeling brave). ## Where to start Go to the `wallet` folder and follow the readme file there. ## Repo organization Different branches in this repository reflect different stages of the implementation of a (rather simplified) Cashu wallet. - `master`: (wip) full wallet functionality - `0.start_here`: starter code providing a cli interface (`wallet/src/cli.py`), an http client (`wallet/src/client.py`), a crypto library (`wallet/src/crypto.py`), a cashu token data structure (`wallet/src/tokens.py`), and a wallet storage class (`wallet/src/wallet.py`). - `1.implement_minting`: some utility functions are implemented and you should implement the flow for minting a cashu token. - `2.implement_melting`: the minting flow in implemented and you should implement the flow for melting a cashu token. ### Future work - Include the swapping flow to refresh tokens. - Verify the dleq zk proofs. - Implement token encoding and decoding. - Include instructions to run a local mint and use this material as a self-study guide. ### Relevant Links - [Cashu Homepage](https://cashu.space/) - [Cashu Python library](https://github.com/cashubtc/cashu) - [Cashu Protocol Spec](https://cashubtc.github.io/nuts/) - [Blind Signatures for Untraceable Payments](https://www.hit.bme.hu/~buttyan/courses/BMEVIHIM219/2009/Chaum.BlindSigForPayment.1982.PDF) - [Chaumian ecash without RSA](https://web.archive.org/web/20250219234834/http://cypherpunks.venona.com/date/1996/03/msg01848.html) - [Blind Diffie-Hellman Key Exchange (blind ecash)](https://gist.github.com/RubenSomsen/be7a4760dd4596d06963d67baf140406)