Caution
This release includes a database migration for the mint. Ensure you back up your database before upgrading your Nutshell instance to avoid data loss.
New Features
Blind Authentication
- Limit mint access using Clear and Blind Authentication. Nutshell now supports NUT-21 and NUT-22, enabling the use of OAuth 2.0 identity providers like Keycloak (or any compatible provider). This allows you to create closed systems where only registered users of a service can access the mint.
- NUT-22 introduces Blind Authentication, which enhances user privacy by anonymizing authentication within the set of registered users.
Improved Multi-Nut Payments
- Multi-nut payments via LND are now more reliable. Nutshell queries multiple routes before failing, significantly improving payment success rates.
Removed Features
The wallet REST API has been removed from the project due to a low utility to maintenance cost ratio.
Additional Protocol Updates
SIG_ALL
Multisig Flag: Users can now lock ecash to specific destinations (outputs). PR #735- Mint and Melt Quote Enhancements: The update to NUT-04/05 introduces new fields (
amount
,unit
,request
) to mint and melt quotes. PR #719 - ToS URL: Mints now have the option to enter a Terms of Service (ToS) URL in the mint info settings.
Fixes and Improvements
- Wallet Un-reservation: Nutshell wallet now un-reserves ecash after a failed Lightning payment more reliably.
- Improved Keyset Rotation: Enhanced keyset rotation process for mints.
- Pending Melt Quotes: Mints now check pending melt quotes in the background every hour, ensuring more reliable processing of pending ecash.
- Balance Tracking for Keysets: Mints can now track balances for each keyset separately, offering better observability and reporting.
- Strike backend: now supports
msat
keysets
What's Changed
- Blind authentication by @callebtc in #675
- Update Error Codes by @lollerfirst in #702
- Set correct blink min fee by @callebtc in #701
- Balance Views Grouped By Keyset by @lollerfirst in #652
- Add CLI Decode Command by @lollerfirst in #709
- Update README.md - Add Redis info? by @findingsov in #714
- Update README.md-install nutshell into nutshell dir by @findingsov in #713
- [FIX] NUT-15 mpp amount in millisats by @lollerfirst in #703
- Add LightningPaymentFailedError exception by @callebtc in #706
- [NUT-15] LND: Try Multiple Routes by @lollerfirst in #692
- Wallet: determine valid amounts from mint's keys response by @NonsoAmadi10 in #684
- Upgrade
coincurve
to version 21.0.0 by @ofek in #721 - NUT-04/05: add
amount
,unit
,request
to melt and mint quote responses by @callebtc in #719 - Fix mint migrations: Fill in missing keyset IDs in proofs and promises by @callebtc in #729
- Add terms of service URL to MintInformation class by @callebtc in #715
- Cjbeery24/mint copy: Invoice checker background tasks by @callebtc in #722
- Fix getting the invoice from LNbits API by @iWarpBTC in #732
SIG_ALL
signature flag for P2PK by @callebtc in #735- Mint Keyset Rotation by @lollerfirst in #734
- Wallet: add
Wallet.get_melt_proof()
, recoverreserved
state in failedWallet.melt()
by @callebtc in #730 - Chore: reorganize docker compose files for redis and keycloak by @callebtc in #736
- Wallet: Fix cli mpp off by @callebtc in #741
- Mint: add new init test to mint by @callebtc in #743
.env.example
update for mint TOS by @callebtc in #746- Testing: check if pipeline gets stuck because of startup task by @callebtc in #745
- Bump version to 0.16.6 by @callebtc in #747
- [PATCH] LND
use_mission_control
+ exclude failing channels by @lollerfirst in #738 - Tests: split wallet test from mint test pipeline by @callebtc in #748
- Mint: watchdog balance log and killswitch by @callebtc in #705
- Wallet: fix db migration 13 duplicate by @callebtc in #750
- Mint: add
msat
support for Strike backend by @callebtc in #755
New Contributors
- @NonsoAmadi10 made their first contribution in #684
- @ofek made their first contribution in #721
- @iWarpBTC made their first contribution in #732
Full Changelog: 0.16.5...0.16.6-rc1