mirror of
https://github.com/aljazceru/nutshell.git
synced 2025-12-21 11:04:19 +01:00
60 lines
1.9 KiB
Markdown
60 lines
1.9 KiB
Markdown
# NUT-1 - Mint public key exchange
|
|
|
|
This describes the basic exchange of the public mint keys that the wallet user `Alice` uses to unblind `Bob`'s signature.
|
|
|
|
## Description
|
|
|
|
Wallet user `Alice` receives public keys from mint `Bob` via `GET /keys` and stores them in a key-value store like a dictionary. The set of all public keys for each supported amount is called a *keyset*.
|
|
|
|
Mint `Bob` responds with his *active* keyset [02]. The active keyset is the keyset a mint currently uses to sign promises with. The active keyset can change over time, for example due to key rotation. A mint MAY support older keysets indefinetely. Note that a mint can support multiple keysets at the same time but will only respond with the active keyset on the endpoint `GET /keys`. A wallet can ask for the keys of a specific (non-active) keyset by using the endpint `GET /keys/{keyset_id}` (see #2 [TODO: Link #2]).
|
|
|
|
See [TODO: Link #2] for how a wallet deals with multiple keysets.
|
|
|
|
Keysets are received as a JSON of the form `{<amount_1> : <mint_pubkey_1>, <amount_2> : ...}` for each `<amount_i>` of the amounts the mint `Bob` supports and the corresponding public key `<mint_pubkey_1>`, that is `K_i` (see #0 [TODO: Link #0]).
|
|
|
|
## Example
|
|
|
|
Request of `Alice`:
|
|
|
|
```http
|
|
GET https://mint.host:3338/keys
|
|
```
|
|
|
|
With curl:
|
|
|
|
```bash
|
|
curl -X GET https://mint.host:3338/keys
|
|
```
|
|
|
|
Response of `Bob`:
|
|
|
|
```json
|
|
{
|
|
"1": "03a40f20667ed53513075dc51e715ff2046cad64eb68960632269ba7f0210e38bc",
|
|
"2": "03fd4ce5a16b65576145949e6f99f445f8249fee17c606b688b504a849cdc452de",
|
|
"4": "02648eccfa4c026960966276fa5a4cae46ce0fd432211a4f449bf84f13aa5f8303",
|
|
"8": "02fdfd6796bfeac490cbee12f778f867f0a2c68f6508d17c649759ea0dc3547528",
|
|
...
|
|
}
|
|
```
|
|
|
|
[00]: 00.md
|
|
[01]: 02.md
|
|
[03]: 03.md
|
|
[04]: 04.md
|
|
[05]: 05.md
|
|
[06]: 06.md
|
|
[07]: 07.md
|
|
[08]: 08.md
|
|
[09]: 09.md
|
|
[10]: 10.md
|
|
[11]: 11.md
|
|
[12]: 12.md
|
|
[13]: 13.md
|
|
[14]: 14.md
|
|
[15]: 15.md
|
|
[16]: 16.md
|
|
[17]: 17.md
|
|
[18]: 18.md
|
|
[19]: 19.md
|
|
[20]: 20.md |