Skip to content

Payment request consolidation (and extra fees for non-preferred mints)#381

Open
robwoodgate wants to merge 13 commits into
cashubtc:mainfrom
robwoodgate:payment-request-consolidation
Open

Payment request consolidation (and extra fees for non-preferred mints)#381
robwoodgate wants to merge 13 commits into
cashubtc:mainfrom
robwoodgate:payment-request-consolidation

Conversation

@robwoodgate

@robwoodgate robwoodgate commented May 27, 2026

Copy link
Copy Markdown
Contributor

Consolidates and Supersedes: #355, #380

Summary

Consolidates the two open NUT-18 payment request proposals around mint preferences, strict mint lists, fee reserve signalling, and required mint payment methods.

This PR keeps the existing m mint list as the single mint-list field, and adds small companion fields to clarify how that list should be interpreted.

Changes

  • Retains ms (mint_strict) to signal whether the m mint list is strict or preferred from feat: preferred mints #380:
    • absent / true: receiver only accepts proofs from listed mints
    • false: listed mints are preferred, but other mints may be accepted
  • Retains sm (supported_methods) to require that the mint used by the payer supports at least one listed payment method, e.g. bolt11, bolt12, onchain from feat(nut-18, nut-26): add preferred_mints to payment requests #355
  • Adds fr (fee_reserve) to signal an additional amount the payer MUST include when paying from a non-preferred mint, to cover potential swap/melt fees
  • Updates NUT-26 TLV tags for the new fields
  • Adds test vectors covering the combined behaviour

Rationale

There were overlapping proposals for preferred mints and strict mint lists. Instead of introducing a separate preferred mint list, this keeps the request format minimal:

  • m remains the mint list
  • ms defines whether that list is strict or advisory
  • fr gives wallets a way to compensate for extra fees when ignoring the preference
  • sm lets receivers express the mint capabilities required for the payment flow

This avoids two competing mint-list fields while covering the three desired behaviours.

@robwoodgate robwoodgate changed the title Payment request consolidation Payment request consolidation (and add extr fees for non-preferred mints) May 27, 2026
@robwoodgate robwoodgate changed the title Payment request consolidation (and add extr fees for non-preferred mints) Payment request consolidation (and add extra fees for non-preferred mints) May 27, 2026
@robwoodgate robwoodgate changed the title Payment request consolidation (and add extra fees for non-preferred mints) Payment request consolidation (and extra fees for non-preferred mints) May 27, 2026
robwoodgate added a commit to d4rp4t/cashu-ts that referenced this pull request May 28, 2026
Spec moved from cashubtc/nuts#380 to cashubtc/nuts#381, adding fee_reserve (fr)
and supported_methods (sm) alongside the existing mint-strict flag. Adds an
isMintListStrict resolver for the spec default-to-true semantic.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Backlog

Development

Successfully merging this pull request may close these issues.

3 participants