Skip to content

NUT-XX - Mint Remote signer standard#250

Open
lescuer97 wants to merge 40 commits intocashubtc:mainfrom
lescuer97:remote-signer-nut
Open

NUT-XX - Mint Remote signer standard#250
lescuer97 wants to merge 40 commits intocashubtc:mainfrom
lescuer97:remote-signer-nut

Conversation

@lescuer97
Copy link
Copy Markdown
Contributor

@lescuer97 lescuer97 commented Apr 23, 2025

This is a standard for Mints to be able to communicate with a remote signer for cryptographic operations as well as keyset information.

Their is also a standard way for signers to derive their keysets from their master key.

The goal of this nut is to better isolate the private keys of the mint and standardize the communications between the signer and mint.

Implementations:

@lescuer97
Copy link
Copy Markdown
Contributor Author

I still need to add test vectors for the key derivation

Comment thread nut-xx.md Outdated
Comment thread nut-xx.md Outdated
change tittle

Co-authored-by: Pavol Rusnak <pavol@rusnak.io>
Comment thread nut-xx.md Outdated
@thesimplekid thesimplekid requested a review from crodas April 23, 2025 11:55
grammar correction

Co-authored-by: lollerfirst <43107113+lollerfirst@users.noreply.github.com>
@lescuer97 lescuer97 marked this pull request as ready for review April 28, 2025 10:04
Comment thread remote-signer.proto
crodas added a commit to crodas/cdk that referenced this pull request May 5, 2025
crodas added a commit to crodas/cdk that referenced this pull request May 5, 2025
crodas added a commit to crodas/cdk that referenced this pull request May 5, 2025
crodas added a commit to crodas/cdk that referenced this pull request May 5, 2025
crodas added a commit to crodas/cdk that referenced this pull request May 5, 2025
crodas added a commit to crodas/cdk that referenced this pull request May 5, 2025
crodas added a commit to crodas/cdk that referenced this pull request May 6, 2025
crodas added a commit to crodas/cdk that referenced this pull request May 9, 2025
@lescuer97
Copy link
Copy Markdown
Contributor Author

@thesimplekid @vnprc added some features form this #292 pr. should have the details that we discussed

@lescuer97
Copy link
Copy Markdown
Contributor Author

@callebtc

@ye0man ye0man added this to nuts Jan 13, 2026
@github-project-automation github-project-automation Bot moved this to Backlog in nuts Jan 13, 2026
@ye0man ye0man moved this from Backlog to Todo in nuts Jan 15, 2026
@ye0man ye0man moved this from Todo to Backlog in nuts Jan 15, 2026
@ye0man ye0man moved this from Backlog to Needs Review in nuts Jan 15, 2026
@lescuer97
Copy link
Copy Markdown
Contributor Author

demo showing the spec with 3 signers:

remote_signer_demo_compresed_free_convert.mp4

Comment thread nut-xx.md Outdated
2. Apply Unicode Normalization Form C (NFC).
3. Convert the normalized string to uppercase using Unicode-aware semantics.

| Input unit | Canonical form | Index |
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When you say 'index' here, do you mean 'unit reference'? This is essentially the first mention of 'index' in this doc, and I don't know what it is.

(I see many others have commented already. Apologies in advance if I now ask a few questions that have already been answered 😀)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hi! it just talks about the actual index number that is going to be used later on the derivation path

Copy link
Copy Markdown
Contributor Author

@lescuer97 lescuer97 Jan 17, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hi! it just talks about the actual index number that is going to be used later on the derivation path.

Should probably use better naming

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think nonce index would be less confusing

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

shouldn't we create a "protos" dir?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, like we do for tests I think.

Comment thread nut-xx.md Outdated
ex: sha256sum('auth')[:4] = bdf49c3c = 3186924604
3186924604 % 2^31 = 1039440956.
- version: uint32
- index_of_amount = index of and the amounts of the keyset as if the where laid in an array. ex: [1, 2, 4, 8, 16, ...]
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is a bit confusing

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what do you suggest on naming?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I changed the name and the explanation. I think it's clearer now.

Comment thread nut-xx.md Outdated
2. Apply Unicode Normalization Form C (NFC).
3. Convert the normalized string to uppercase using Unicode-aware semantics.

| Input unit | Canonical form | Index |
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think nonce index would be less confusing

Comment thread nut-xx.md Outdated
Comment on lines +32 to +33
[BIP-39](https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki) mnemonic seedphrase must be used for generation
of the keysets.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
[BIP-39](https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki) mnemonic seedphrase must be used for generation
of the keysets.
[BIP-39](https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki) mnemonic seedphrase must be used for generation of the keysets.

Comment thread nut-xx.md Outdated
Comment on lines +58 to +59
NOTE: Mints **MUST** make sure that the unit_reference integer has not been repeated before for a different normalized
unit string.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
NOTE: Mints **MUST** make sure that the unit_reference integer has not been repeated before for a different normalized
unit string.
NOTE: Mints **MUST** make sure that the unit_reference integer has not been repeated before for a different normalized unit string.

Comment thread nut-xx.md Outdated
Comment on lines +77 to +78
The Signer can also be configured to have some rate limiting features. Limiting the amount of minting that can happen by
time or single action.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The Signer can also be configured to have some rate limiting features. Limiting the amount of minting that can happen by
time or single action.
The Signer can also be configured to have some rate limiting features. Limiting the amount of minting that can happen by time or single action.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Needs Review

Development

Successfully merging this pull request may close these issues.