A CLI that implements the functionality of embedded cashu by interacting with the Nutshell-wallet [I.]. This CLI was developed as a proof of concept for embedding cashu. Launch a test flight according to the steps below.
- Steghide tool by Hetzl, S. [II.]
- Embedding cashu in photos (.jpg & .png)
- Embedding cashu in audio files (.wav)
- Encryption, let users choose passphrase
- Let users choose amount of cashu to wrap
- Support for users connected to multiple mints
- Support and test more file types
[I.] Install Nutshell & [II.] steghide, according to their docs. Or use a package manager, like apt:
- Install dependencies with apt:
sudo apt install -y steghide python3-pip python3-qrcode pkg-config python3.10-venv
- Create venv and upgrade pip:
python3 -m venv cashu_venv
source cashu_venv/bin/activate
python3 -m pip install --upgrade pip
- Install Nutshell:
pip install cashu
- Test cashu if it does not work, follow Cashu's README
cashu info
- Clone repo
git clone https://github.com/wrapnuts/wrapnuts.git
- Set permissions
chmod 700 wrapnuts/wrapnuts-cli.py
chmod 700 wrapnuts/.cache/cache.sh
chmod 700 wrapnuts/.cache/redeem.sh
- Make sure to have a compatible file (.jpg, .png, or .wav) in working directory of Wrapnuts-cli and then run:
python3 wrapnuts-cli.py
-
Enter “1” in main menu of Wrapnuts-cli. If no balance is displayed, make sure to fulfill the two requirements:
- Is Nutshell-wallet connected to a mint?
- Do you have a balance?
-
If balance is displayed, both requirements are met. Next, enter “2” in main menu to wrap (embed) a cashu. Follow instructions until wrapping process is complete.
-
The file (with the embedded cashu) can be sent to someone else, before it is redeemed with Wrapnuts-cli.
-
To redeem embedded cashu, enter “3” in main menu of Wrapnuts-cli. Follow instructions until the unwrapping process is complete.
The author is NOT a cryptographer and this work has not been reviewed. This means that there is very likely a fatal flaw somewhere. Wrapnuts and Cashu are still experimental and not production-ready.