Yo!
Cashu is a new Chaumian Ecash system with Bitcoin Lightning capabilities. Very briefly summarized, Cashu a way to improve the privacy in Bitcoin custody by using Chaumian Ecash.
A classical custodial wallet provider (for example: Wallet of Satoshi) knows how much money you have and who you're transacting with. With Cashu, they don't.
The purpose of @CashuBTC is not only to be a simple-to-use wallet and mint that can be run by everyone (we're working on that right now) but to become a simple library that can be integrated into existing Bitcoin apps.
The long-term mission is to blind all custodians.
  • Follow the Cashu Twitter account for updates
  • Here is the Github repo
  • There is some work on a Javascript client to implement it on websites.
  • Ben Arc has presented how it could look like integrated into LNbits.
  • There has been a Cashu torch going on Twitter, here is the current tip.
reply
@calle Thank you for sharing this interesting work. Would you mind quickly summarizing the similarities and differences between cashu and fedimint? Are the tradeoffs mostly the same?
reply
I think the two main differences are that Cashu is not a federated system and it has no on-chain support (yet?). To be clear, I freaking love Fedimint!
I haven't spent too much time thinking about tradeoffs but there is clearly an improved trust relationship with the mint if they are federated. On the other hand, a non-federated approach is a lot simpler to implement, which means that it should be a lot easier to add to existing Bitcoin applications.
The simplicity of Cashu (and the standardized client protocol we're currently working on) should enable other devs to build their own clients and thus make it actually useful.
reply

Quick tutorial

Install Cashu
Super easy install (check GitHub if this doesn't work):
pip install cashu
Use Cashu
The following commands are supported:
$ cashu --help Usage: cashu [OPTIONS] COMMAND [ARGS]... Options: -h, --host TEXT Mint address. -w, --wallet TEXT Wallet to use. --help Show this message and exit. Commands: mint Mint tokens. balance See balance. send Send tokens. receive Receive tokens. burn Burn spent tokens. pending Show pending tokens. pay Pay lightning invoice. info Information about Cashu wallet.
Try it
Here, take these 128 sats using cashu receive <token>. First come, first serve :)
W3siYW1vdW50IjogMTI4LCAic2VjcmV0IjogIi1saEhJa01KczdUV1R1NEVoeEswX1EiLCAiQyI6ICIwMjg2NTZjNmE1NTQzMWZjMmMwMWIxOWMzNzJhNjc2YWVkN2NlOTk0ZDM4ZjIwNTZmNDgwY2NkMzEzYjVhNzY4MzkifV0=
reply
Great work. And thanks for explaining the architecture to the rest of us.
reply
Cashu outside, how 'bout that!?
reply
I suppose that inbound and outbound liquidity is managed by lightning?, I mean, can issue like 100k sats and starts sending to others cashu accounts without dealing with liquidity?.
reply
How does it compare to Fedimint?
reply
I think the two main differences are that Cashu is not a federated system and it has no on-chain support (yet?). To be clear, I freaking love Fedimint!
reply
Is it curious that Fedimint is taking over an year to build what Cashu has done in one weekend?
reply
Not really, to be honest. This is a much simpler, bare bones (and proof of concept) system. At least for now. Also it doesn't even attempt to do the most difficult thing that Fedimint does: federations of mints with threshold signing.
reply
Does that really take 2 years to build?
reply
If the goal is to decentralize all custodians, how are you going to replace accounts, usernames, passwords or even lightning logins? For example, here on SN we can login by multiple means but we have our accounts and a balance attached to them. If we were to operate with just chaumian tokens we would have to keep cryptographic material somewhere safe?
reply
After running
cashu info
i get
sqlite3.OperationalError: near "ON": syntax error
The above exception was the direct cause of the following exception:
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) near "ON": syntax error [SQL: INSERT INTO dbversions (db, version) VALUES (?, ?) ON CONFLICT (db) DO UPDATE SET version = ? ] [parameters: ('wallet', 1, 1)] (Background on this error at: http://sqlalche.me/e/13/e3q8)
How to fix this?
reply
If anyone wants 10 sat tokens, they can start a DM with me here (are DMs a thing here? I don't remember :) ). I will send you the token string and you can copy paste.
reply
Don't tell the state. This is going to rock their socks off. I can practically hear them trying to explain this in senate hearings in like 2024 or 2025.
reply
You might have mistaken the decade.. taking into account the age over there, youth must replace them after they throw in the towel, maybe in 2035.
reply