Skip to content

Releases: cashubtc/nutshell

0.18.2

21 Nov 09:44
1568e51

Choose a tag to compare

This release introduces updated default mint fees and several bug fixes across both the mint and wallet.

Default Fees

New mints now use a default fee of 100 ppk. This value can be changed via the .env parameter:

MINT_INPUT_FEE_PPK=100

Recap: How Cashu fees work

Fees in Cashu are based on the number of inputs in a transaction (see NUT-02). Each proof counted as an input contributes linearly to total fees. A fee of 100 ppk means 100 parts per thousand inputs, rounded up. In other words, roughly 0.1 base units per input, rounded up to the nearest integer.

Example:

  • For a sat keyset, 5 inputs incur 0.5 sat fee, rounded up to 1 sat.
  • Any transaction with up to 10 inputs costs 1 sat, 11 to 20 inputs cost 2 sats, and so on.
  • For usd keysets, this corresponds to 1 cent per 10 inputs.

Fees are designed to stay low to maintain a smooth user experience while still discouraging abuse. All mints are encouraged to enable fees for protection.

Fixes

  • Mint now returns a clean error for pending blinded outputs (code 10002). A dedicated error code for pending outputs will be introduced soon to distinguish this case from already-signed outputs.
  • Strike backend now applies USDT fees correctly.
  • Wallet updates keyset fee settings when they change.
  • Mint now tracks fees accurately across multiple keysets.

What's Changed

Full Changelog: 0.18.1...0.18.2

0.18.1

05 Nov 00:18
0041e3a

Choose a tag to compare

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.

Fixes

  • Clean up large witnesses that might contaminate the database due to the lack of a size check on the HTLC preimage size.
  • Remove timeout for Lightning backend HTTP connections.

What's Changed

Full Changelog: 0.18.0...0.18.1

0.18.0

28 Oct 11:58
c856643

Choose a tag to compare

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

Mint management via gRPC

Mint management gRPC server for integration with management UI Orchard and a CLI tool that can send commands to the Mint while it's running.

Additional Protocol Updates

  • NUT-04: Create invoices with a description.

Fixes and Improvements

  • SIG_ALL signature flag
  • USD support for Strike backend
  • Improve invoice stream to Lightning backend
  • Prevent duplicate blank outputs while melting
  • Fix double-execution of melt quotes for the same invoice
  • Several other bug fixes

What's Changed

New Contributors

Full Changelog: 0.17.1...0.18.0

0.17.1

01 Jun 10:23
67b7ea6

Choose a tag to compare

This release includes a hotfix for the updated LNbits v1 backend API.

What's Changed

Full Changelog: 0.17.0...0.17.1

0.17.0

19 May 10:47
3e32dc4

Choose a tag to compare

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

New Contributors

Full Changelog: 0.16.5...0.16.6-rc1

0.17.0-rc1

13 May 16:02
081a30e

Choose a tag to compare

0.17.0-rc1 Pre-release
Pre-release

Important

This release candidate is not meant to be used in production.

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 tracking and reporting.
  • Strike backend: now supports msat keysets

What's Changed

New Contributors

Full Changelog: 0.16.5...0.16.6-rc1

0.16.5

29 Jan 21:41
b67ffd8

Choose a tag to compare

This maintenance release contains various bug fixes for the mint and the wallet. Most notably, overpaid Lightning fees are now issued to the user at the next restart of the mint in cases where the mint has crashed or turned off while an outgoing Lightning payment was still pending.

What's Changed

Full Changelog: 0.16.4...0.16.5

0.16.4

03 Jan 23:02
c108bb1

Choose a tag to compare

This release brings two new protocol spec updates to nutshell, NUT-19 and NUT-20 (thank you @lollerfirst). It also includes a new HTTP compression middleware (thank you @ok300) and several bug fixes.

Note

Don't forget to run poetry install if you update nutshell from the GitHub repository.

NUT-19: Cached Response

The nutshell mint now supports NUT-19 cached responses using Redis. The mint will replay successful mint, melt, and swap responses from its caching middleware. Enable these settings in your .env to cache responses in Redis:

MINT_REDIS_CACHE_ENABLED=TRUE
MINT_REDIS_CACHE_URL="redis://localhost:6379"

A new file in /docker/docker-compose.yml can be used to start a redis server using docker compose up.

NUT-20: Signature on Mint Quote

NUT-20 allows users to create mint quotes that can only be minted if a valid signature is provided by the creator of the mint quote.

What's Changed

New Contributors

Full Changelog: 0.16.3...0.16.4

0.16.3

14 Nov 14:41
6a4f1bd

Choose a tag to compare

This is a service update fixing a number of bugs and other minor issues.

Mint

  • bolt11 invoices with different units on the same mint now settle externally via the Lightning network
  • Turn on multipath payments (MPP) by default for LND and CLN
  • NUT-06: Signal alternative URLs to reach the mint from using .env var MINT_INFO_URLS
  • Fix: Signal NUT-14 support (HTLCs) in info endpoint
  • Fix: Return LN preimage in lookup of successful melt quote

Wallet

  • Store Lightning invoices in new melt and mint quote tables
  • Sort outputs by amount to mitigate transaction amount privacy leaks
  • Minor bug fixes to support older mints

What's Changed

New Contributors

Full Changelog: 0.16.1...0.16.3

0.16.2

04 Nov 08:07

Choose a tag to compare

0.16.2

This hot fix disables a feature introduced in 0.16.1 that prevented proofs from getting stuck in case where the Lightning backend is detected to be malfunctioning. In that case, the mint would lock all Lightning payments and return the error "Melt is disabled. Please contact the operator.".

Tests have shown that this feature triggers in too many unrelated cases which is why it is disabled by default now. To manually turn on this feature, set the .env variable MINT_DISABLE_MELT_ON_ERROR=True.

Changes since 0.16.1: 0.16.1-branch...0.16.2-branch

0.16.1

This update brings several bug fixes and stability improvements to nutshell. It also adds support for LND via gRPC.

Mint

  • Support for LND via gRPC for LndRPCWallet
  • NUT-15 Multinut payments for CLNRestWallet
  • Stability improvements

Wallet

  • Several minor bug fixes

Protocol

  • NUT-06: Announce local time
  • NUT-06: Announce icon URL with the .env flag MINT_INFO_ICON
  • NUT-04: Mint invoices with a description
  • Fix: HTLC signature model

Updating

Notice: This release bumps the minimal Python version to 3.10. If you were using an older version, upgrade your Python version first before you upgrade nutshell.

Dn't forget to run poetry install if you update from the git repository.

What's Changed

New Contributors

Full Changelog: 0.16.0...0.16.1