• v0.15.2-rc.0 d4b72ad57e

    v0.15.2-rc.0 Pre-release

    thesimplekid released this 2026-03-07 00:30:25 +00:00 | 34 commits to main since this release

    No known key found for this signature in database
    GPG key ID: 63AD6D09BBFE7783

    0.15.2

    Added

    • cdk-ffi: Export to_bech32_string for payment requests ([thesimplekid])
    • cdk-cli: Add recover-incomplete-sagas command to recover from interrupted wallet operations ([thesimplekid])

    Fixed

    • cashu: Allow denomination reuse in amount split for restricted keysets ([thesimplekid])
    • cdk: Compensate prepared saga in mint ([thesimplekid])
    Downloads
  • v0.15.1 fde85986f4

    v0.15.1 Stable

    thesimplekid released this 2026-02-19 15:07:06 +00:00 | 50 commits to main since this release

    No known key found for this signature in database
    GPG key ID: 63AD6D09BBFE7783

    Caution

    This release includes a database migration for the mint. Ensure you back up your database before upgrading your mint instance to avoid data loss

    0.15.1

    Fixed

    • cdk: Add limits to secret and witness ([thesimplekid])
    • cdk: build_with_seed with custom paths ([thesimplekid])
    Downloads
  • v0.15.0 f0310669d9

    v0.15.0 Stable

    thesimplekid released this 2026-02-17 13:55:17 +00:00 | 54 commits to main since this release

    No known key found for this signature in database
    GPG key ID: 63AD6D09BBFE7783

    0.15.0

    Caution

    This release includes a database migration for the mint. Ensure you back up your database before upgrading your mint instance to avoid data loss

    Summary

    Version 0.15.0 introduces Wallet Sagas, a major architectural improvement that brings the saga pattern to all wallet operations for robust error recovery and crash resilience. This release also adds async wallet operations support and NUT-26 (Payment Request Bech32m Encoding) for compatibility with BIP-321 and BIP-353 human-readable addresses.

    Key highlights include:

    • Wallet Sagas: All wallet operations (mint, melt, send, receive, swap) now use the saga pattern with type-state safety and automatic compensation actions
    • Melt Flow Redesign: New two-phase prepare/confirm pattern for melts with PreparedMelt, similar to PreparedSend
    • Async Wallet Operations: Non-blocking melt operations via prefer field - returns immediately with a PendingMelt future that can be awaited immediately OR dropped to complete via WebSocket notifications or background recovery
    • NUT-26: Payment Request Bech32m Encoding support (CREQ-B format) - provides better QR code compatibility and enables integration with BIP-321/BIP-353 human-readable addresses
    • Breaking Change: MultiMintWallet has been removed - use WalletRepository instead
    • Authentication (NUT-21/NUT-22) is now always enabled - the auth feature flag has been removed
    • Keyset V2 is now the default for new keysets

    Added

    • cdk: Wallet saga pattern for all wallet operations (mint, melt, send, receive, swap) with type-state pattern and compensation actions ([thesimplekid]).
    • cdk: Wallet::recover_incomplete_sagas() method to recover from interrupted operations and prevent proofs from being stuck in reserved states ([thesimplekid]).
    • cdk: Wallet::prepare_melt() and Wallet::prepare_melt_proofs() to create PreparedMelt for two-phase melt operations ([thesimplekid]).
    • cdk: PreparedMelt with confirm(), confirm_with_options(), confirm_prefer_async(), and cancel() methods for controlled melt execution ([thesimplekid]).
    • cdk: MeltConfirmOptions to configure melt behavior (e.g., skip_swap) ([thesimplekid]).
    • cdk: MeltOutcome enum with Paid (immediate completion) or Pending variants - Pending returns a PendingMelt that can be awaited immediately OR dropped to complete via WebSocket notifications or Wallet::finalize_pending_melts() ([thesimplekid]).
    • cdk: PendingMelt struct that implements IntoFuture for awaiting async melt completion ([thesimplekid]).
    • cdk: Wallet::finalize_pending_melts() to recover and complete pending melt operations after crash ([thesimplekid]).
    • cdk: Async wallet operations support using prefer field in request body ([thesimplekid]).
    • cdk: NUT-26 Payment Request Bech32m Encoding support (CREQ-B format as an alternative to NUT-18's CREQ-A) ([thesimplekid]).
    • cdk: WalletRepository as a simpler replacement for MultiMintWallet - manages Wallet instances by mint URL and currency unit with direct access to Wallet methods ([asmo]).
    • cdk: WalletRepositoryBuilder for constructing WalletRepository with configurable proxy, Tor, and database settings ([asmo]).
    • cdk: WalletConfig for per-wallet customization of connectors, target proof counts, and metadata cache TTL ([asmo]).
    • cdk: TokenData struct for extracting mint URL, proofs, and metadata from parsed tokens ([asmo]).
    • cdk: Keyset V2 configuration with use_keyset_v2 setting - defaults to V2 for new keysets while preserving existing keyset versions ([thesimplekid]).
    • cdk: Input and output limits for swap, melt, and other transactions to prevent DoS attacks ([thesimplekid]).
    • cdk: Glob pattern support for NUT-21/22 route validation ([thesimplekid]).
    • cdk: Wallet::fetch_mint_quote() method to retrieve mint quote by ID ([asmo]).
    • cdk-ldk-node: BIP39 mnemonic seed configuration ([asmo]).
    • cdk-ldk-node: Configurable announcement addresses ([asmo]).
    • cdk-ldk-node: Configurable logging settings ([asmo]).

    Changed

    • cdk: BREAKING - Removed MultiMintWallet and all its methods - use WalletRepository instead for managing multiple wallets ([asmo]).
    • cdk: BREAKING - Removed auth feature flag - authentication code (NUT-21/NUT-22) is now always compiled ([crodas]).
    • cdk: Melt operations now use the saga pattern with type-state safety and automatic compensation on failure ([thesimplekid]).
    • cdk: PreparedMelt, PreparedSend, and other prepared structs marked with #[must_use] to prevent accidental drops ([thesimplekid]).
    • cashu: Default features are now off ([thesimplekid]).
    • cdk-common: Abstracted HTTP client behind cdk_common::HttpClient ([crodas]).

    Fixed

    • cdk: Fee conversion in payment backend ([thesimplekid]).
    • cdk: Mint publishes quote back to unpaid state on failure ([thesimplekid]).
    • cdk: Add error code for input and output limits ([thesimplekid]).
    • cdk-sqlite: Correct SQLite connection pool size check ([crodas]).

    Removed

    • cdk: MultiMintWallet and all associated methods ([asmo]).
    • cdk: auth feature flag and all conditional compilation paths ([crodas]).
    Downloads
  • v0.15.0-rc.3 daf118851f

    v0.15.0-rc.3 Pre-release

    thesimplekid released this 2026-02-16 17:38:45 +00:00 | 58 commits to main since this release

    No known key found for this signature in database
    GPG key ID: 63AD6D09BBFE7783
    Downloads
  • v0.15.0-rc.2 bfae0f9c5a

    v0.15.0-rc.2 Pre-release

    thesimplekid released this 2026-02-16 08:28:13 +00:00 | 63 commits to main since this release

    No known key found for this signature in database
    GPG key ID: 63AD6D09BBFE7783
    Downloads
  • v0.15.0-rc.1 8e67b3e7fa

    v0.15.0-rc.1 Pre-release

    thesimplekid released this 2026-02-13 19:42:58 +00:00 | 68 commits to main since this release

    No known key found for this signature in database
    GPG key ID: 63AD6D09BBFE7783
    Downloads
  • v0.15.0-rc.0 d0b9bd5c5f

    v0.15.0-rc.0 Pre-release

    thesimplekid released this 2026-02-12 16:25:02 +00:00 | 73 commits to main since this release

    No known key found for this signature in database
    GPG key ID: 63AD6D09BBFE7783

    0.15.0

    Summary

    Version 0.15.0 introduces Wallet Sagas, a major architectural improvement that brings the saga pattern to all wallet operations for robust error recovery and crash resilience. This release also adds async wallet operations support and NUT-26 (Payment Request Bech32m Encoding) for compatibility with BIP-321 and BIP-353 human-readable addresses.

    Key highlights include:

    • Wallet Sagas: All wallet operations (mint, melt, send, receive, swap) now use the saga pattern with type-state safety and automatic compensation actions
    • Melt Flow Redesign: New two-phase prepare/confirm pattern for melts with PreparedMelt, similar to PreparedSend
    • Async Wallet Operations: Non-blocking melt operations via prefer field - returns immediately with a PendingMelt future that can be awaited immediately OR dropped to complete via WebSocket notifications or background recovery
    • NUT-26: Payment Request Bech32m Encoding support (CREQ-B format) - provides better QR code compatibility and enables integration with BIP-321/BIP-353 human-readable addresses
    • Breaking Change: MultiMintWallet has been removed - use WalletRepository instead
    • Authentication (NUT-21/NUT-22) is now always enabled - the auth feature flag has been removed
    • Keyset V2 is now the default for new keysets

    Added

    • cdk: Wallet saga pattern for all wallet operations (mint, melt, send, receive, swap) with type-state pattern and compensation actions ([thesimplekid]).
    • cdk: Wallet::recover_incomplete_sagas() method to recover from interrupted operations and prevent proofs from being stuck in reserved states ([thesimplekid]).
    • cdk: Wallet::prepare_melt() and Wallet::prepare_melt_proofs() to create PreparedMelt for two-phase melt operations ([thesimplekid]).
    • cdk: PreparedMelt with confirm(), confirm_with_options(), confirm_prefer_async(), and cancel() methods for controlled melt execution ([thesimplekid]).
    • cdk: MeltConfirmOptions to configure melt behavior (e.g., skip_swap) ([thesimplekid]).
    • cdk: MeltOutcome enum with Paid (immediate completion) or Pending variants - Pending returns a PendingMelt that can be awaited immediately OR dropped to complete via WebSocket notifications or Wallet::finalize_pending_melts() ([thesimplekid]).
    • cdk: PendingMelt struct that implements IntoFuture for awaiting async melt completion ([thesimplekid]).
    • cdk: Wallet::finalize_pending_melts() to recover and complete pending melt operations after crash ([thesimplekid]).
    • cdk: Async wallet operations support using prefer field in request body ([thesimplekid]).
    • cdk: NUT-26 Payment Request Bech32m Encoding support (CREQ-B format as an alternative to NUT-18's CREQ-A) ([thesimplekid]).
    • cdk: WalletRepository as a simpler replacement for MultiMintWallet - manages Wallet instances by mint URL and currency unit with direct access to Wallet methods ([asmo]).
    • cdk: WalletRepositoryBuilder for constructing WalletRepository with configurable proxy, Tor, and database settings ([asmo]).
    • cdk: WalletConfig for per-wallet customization of connectors, target proof counts, and metadata cache TTL ([asmo]).
    • cdk: TokenData struct for extracting mint URL, proofs, and metadata from parsed tokens ([asmo]).
    • cdk: Keyset V2 configuration with use_keyset_v2 setting - defaults to V2 for new keysets while preserving existing keyset versions ([thesimplekid]).
    • cdk: Input and output limits for swap, melt, and other transactions to prevent DoS attacks ([thesimplekid]).
    • cdk: Glob pattern support for NUT-21/22 route validation ([thesimplekid]).
    • cdk: Wallet::fetch_mint_quote() method to retrieve mint quote by ID ([asmo]).
    • cdk-ldk-node: BIP39 mnemonic seed configuration ([asmo]).
    • cdk-ldk-node: Configurable announcement addresses ([asmo]).
    • cdk-ldk-node: Configurable logging settings ([asmo]).

    Changed

    • cdk: BREAKING - Removed MultiMintWallet and all its methods - use WalletRepository instead for managing multiple wallets ([asmo]).
    • cdk: BREAKING - Removed auth feature flag - authentication code (NUT-21/NUT-22) is now always compiled ([crodas]).
    • cdk: Melt operations now use the saga pattern with type-state safety and automatic compensation on failure ([thesimplekid]).
    • cdk: PreparedMelt, PreparedSend, and other prepared structs marked with #[must_use] to prevent accidental drops ([thesimplekid]).
    • cashu: Default features are now off ([thesimplekid]).
    • cdk-common: Abstracted HTTP client behind cdk_common::HttpClient ([crodas]).

    Fixed

    • cdk: Fee conversion in payment backend ([thesimplekid]).
    • cdk: Mint publishes quote back to unpaid state on failure ([thesimplekid]).
    • cdk: Add error code for input and output limits ([thesimplekid]).
    • cdk-sqlite: Correct SQLite connection pool size check ([crodas]).

    Removed

    • cdk: MultiMintWallet and all associated methods ([asmo]).
    • cdk: auth feature flag and all conditional compilation paths ([crodas]).
    Downloads
  • v0.14.3 767a1f49b1

    v0.14.3 Stable

    thesimplekid released this 2026-01-11 21:03:00 +00:00 | 227 commits to main since this release

    No known key found for this signature in database
    GPG key ID: 63AD6D09BBFE7783

    0.14.3

    Added

    • cdk-ffi: Export token creation from raw bytes ([cloudsupper]).

    Fixed

    • cdk: Batch proof witness queries in check_state to prevent pool exhaustion ([thesimplekid]).
    • cdk-mint-rpc: Set payment_id and payment_amount when moving mint_quote into PAID state ([asmo]).
    • cdk: Fix fee_ppk unit mismatch in select_exact_proofs ([thesimplekid]).
    • cdk: Fix wallet restore gaps ([thesimplekid]).
    Downloads
  • v0.14.2 6c3884569b

    v0.14.2 Stable

    thesimplekid released this 2025-12-05 17:16:00 +00:00 | 234 commits to main since this release

    No known key found for this signature in database
    GPG key ID: 63AD6D09BBFE7783

    0.14.2

    Added

    • cdk-ffi: Add Payment Requests support ([thesimplekid]).
    • cdk-ffi: Add multimint melt with mint functionality ([thesimplekid]).
    • cdk-ffi: Add get wallets functionality ([thesimplekid]).
    • cdk: Add MultiMintWallet function to check proofs state ([thesimplekid]).
    • cdk: Add get_token_data and get_mint_keysets to MultiMintWallet ([thesimplekid]).
    • cdk: Melt external support ([thesimplekid]).

    Changed

    • cdk: Swap before melt ([thesimplekid]).
    • cdk: Use try proof in swap within melt ([thesimplekid]).

    Fixed

    • cdk-ffi: Check melt quote in FFI ([thesimplekid]).
    • cdk: Use the client id from mint configuration ([lescuer97]).
    • cdk: Fix proof selection with fees to ensure net amount meets target ([thesimplekid]).
    • cdk: Do not remove melt quote ([thesimplekid]).
    • cdk: Return TransactionUnbalanced error for empty swap inputs/outputs ([thesimplekid]).
    • cdk: Fix connection pool resource initialization and path validation ([thesimplekid]).
    • cdk: Fix WASM use web_time ([thesimplekid]).
    Downloads
  • v0.14.2-rc.5 fd567c0d59

    v0.14.2-rc.5 Pre-release

    thesimplekid released this 2025-12-03 22:13:32 +00:00 | 237 commits to main since this release

    No known key found for this signature in database
    GPG key ID: 63AD6D09BBFE7783

    Added

    • cdk-ffi: Add Payment Requests support ([thesimplekid]).
    • cdk-ffi: Add multimint melt with mint functionality ([thesimplekid]).
    • cdk-ffi: Add get wallets functionality ([thesimplekid]).
    • cdk: Add MultiMintWallet function to check proofs state ([thesimplekid]).
    • cdk: Add get_token_data and get_mint_keysets to MultiMintWallet ([thesimplekid]).
    • cdk: Melt external support ([thesimplekid]).

    Changed

    • cdk: Swap before melt ([thesimplekid]).
    • cdk: Use try proof in swap within melt ([thesimplekid]).

    Fixed

    • cdk-ffi: Check melt quote in FFI ([thesimplekid]).
    • cdk: Use the client id from mint configuration ([lescuer97]).
    • cdk: Fix proof selection with fees to ensure net amount meets target ([thesimplekid]).
    • cdk: Do not remove melt quote ([thesimplekid]).
    • cdk: Return TransactionUnbalanced error for empty swap inputs/outputs ([thesimplekid]).
    • cdk: Fix connection pool resource initialization and path validation ([thesimplekid]).
    • cdk: Fix WASM use web_time ([thesimplekid]).
    Downloads