Nutshell upgrades to Cashu v1
The Cashu protocol has recently been updated to its first stable version. This release of Nutshell now supports the v1 protocol. The Cashu v1 protocol paves the way for Ecash with multiple denominations (sat, msat, usd, ...) and payment methods (Lightning, On-chain, ...). This update has been a long time in the making, with significant changes in the overall software architecture and several database migrations.
Mint runners: Always backup your mint database before upgrading.
With this release, Nutshell is also preparing for exciting upgrades in the future. These upgrades will enable you to run a Cashu mint with replication in a distributed cluster for highly available services and significantly increased throughput. Furthermore, a single deployment of a mint will be able to serve many "virtual mints" for different users.
Mint
- New v1 API implementation with backwards compatibility. Old v0 wallets will keep working with the mint.
- Mint can now rotate keysets by using BIP32 key derivation.
- Each keyset can now have a separate seed from which it is generated.
- Mint stores the seed for each keyset in the database. The seed can optionally be encrypted using a separate CLI tool
cashu/mint/decrypt.py
. - Fix P2PK multisig checks.
- Supports database backups before future migrations via env var
DB_BACKUP_PATH
- New safety settings for limiting the maximum balance of the mint (
MINT_MAX_BALANCE
) and the maximum amount for mint (MINT_MAX_PEG_IN
) and melt (MINT_MAX_PEG_OUT
) requests.
Wallet
- New v1 API implementation with backwards compatibility. The wallet will still work with old v0 mints.
- Support for multiple denomination in the same wallet.
- Many smaller issues fixed.