From d425c99ae5422b246c4ce0ab97f37c419e6eac7f Mon Sep 17 00:00:00 2001 From: callebtc <93376500+callebtc@users.noreply.github.com> Date: Sat, 23 Mar 2024 14:19:33 +0100 Subject: [PATCH 01/13] First draf MMMPP --- 14.md | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 14.md diff --git a/14.md b/14.md new file mode 100644 index 0000000..093932e --- /dev/null +++ b/14.md @@ -0,0 +1,60 @@ +NUT-14: Partial multi-path payments +========================== + +`optional` `depends on: NUT-05` + +--- + +In this document, we describe how wallets can instruct multiple mints to each pay a partial amount of a bolt11 Lightning invoice. The full payment is composed from payments from multiple Lightning nodes each as a partial multi-path payment. This way, wallets can pay a larger Lightning invoice combined from multiple smaller balances on different mints. Due to the atomic nature of MPP, either all payments wil be successful or all of them will fail. + +The Lightning backend of the mint must support paying a partial amount of an Invoice and multi-path payments (MPP, see [BOLT 4](https://github.com/lightning/bolts/blob/master/04-onion-routing.md)). For example, the mint's Lightning node must be able to pay 50 sats of a 100 sat bolt11 invoice. The receiving Lightning node must support receiving multi-path payments as well. + +# Multimint payment execution + +`Alice`'s wallet coordinates multiple PMPPs on different mints that support the feature (see below for the indicated settings). For a given Lightning invoice of `amount_total`, `Alice` splits the total amount into several partial amounts `amount_total = amount_1 + amount_2 + ...' that each must be covered by her individual balances on the mints she wants to use for the payment. Then she constructs multiple `PostMeltQuoteBolt11Request`'s that each include the corresponding partial amount (see below) that she sends to all mints she wants to use for the payment. The mints then respond with a normal [NUT-05](PostMeltQuoteBolt11Response). `Alice` proceeds to pay the melt requests at each mint simultaneously. When all mints have sent out the Lightning payment, she receives a successful response from all mints individually. + +# Melt quote + +To request a melt quote with a partial `amount`, the wallet of `Alice` makes a `POST /v1/melt/quote/{method}` request where `method` is the payment method requested (here `bolt11`). + +```http +POST https://mint.host:3338/v1/melt/quote/bolt11 +``` + +The wallet `Alice` includes the following `PostMeltQuoteBolt11Request` data in its request which includes an additional `amount` field compared to the standard request in [NUT-05][05]: + +```json +{ + "request": , + "unit": , + "amount": +} +``` + +Here, `request` is the bolt11 Lightning invoice to be paid, `unit` is the unit the wallet would like to pay with, and `amount` is the amount for the requested payment. The wallet then proceeds to paying the quote the same way as described in [NUT-05][05]. + +## Settings + +The settings for this feature are indicated in the `MeltMethodSetting` (see [NUT-05][05]) that is returned the info endpoint ([NUT-06][06]) MUST indicate `method` and `unit` pairs that support `mpp`. + +`MeltMethodSetting` is of the form: +```json +{ + ... + "mpp": +} +``` + +Example `MeltMethodSetting`: + +```json +{ + "method": "bolt11", + "unit": "sat", + "min_amount": 100, + "max_amount": 10000, + "mpp": true +} + +[05]: 05.md +[06]: 06.md \ No newline at end of file From 9b208346f35be7158fad6b19a4041edd47db27dd Mon Sep 17 00:00:00 2001 From: callebtc <93376500+callebtc@users.noreply.github.com> Date: Sat, 23 Mar 2024 14:21:06 +0100 Subject: [PATCH 02/13] fix typo --- 08.md | 2 +- 11.md | 2 +- 14.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/08.md b/08.md index 4469803..86516d0 100644 --- a/08.md +++ b/08.md @@ -1,7 +1,7 @@ NUT-08: Lightning fee return ========================== -`optional` +`optional`, `depends on: NUT-05` --- diff --git a/11.md b/11.md index f3c6dd1..7993aa8 100644 --- a/11.md +++ b/11.md @@ -1,7 +1,7 @@ NUT-11: Pay to Public Key (P2PK) ========================== -`optional` +`optional`, `depends on: NUT-10` --- diff --git a/14.md b/14.md index 093932e..15075e8 100644 --- a/14.md +++ b/14.md @@ -11,7 +11,7 @@ The Lightning backend of the mint must support paying a partial amount of an Inv # Multimint payment execution -`Alice`'s wallet coordinates multiple PMPPs on different mints that support the feature (see below for the indicated settings). For a given Lightning invoice of `amount_total`, `Alice` splits the total amount into several partial amounts `amount_total = amount_1 + amount_2 + ...' that each must be covered by her individual balances on the mints she wants to use for the payment. Then she constructs multiple `PostMeltQuoteBolt11Request`'s that each include the corresponding partial amount (see below) that she sends to all mints she wants to use for the payment. The mints then respond with a normal [NUT-05](PostMeltQuoteBolt11Response). `Alice` proceeds to pay the melt requests at each mint simultaneously. When all mints have sent out the Lightning payment, she receives a successful response from all mints individually. +`Alice`'s wallet coordinates multiple PMPPs on different mints that support the feature (see below for the indicated settings). For a given Lightning invoice of `amount_total`, `Alice` splits the total amount into several partial amounts `amount_total = amount_1 + amount_2 + ...` that each must be covered by her individual balances on the mints she wants to use for the payment. Then she constructs multiple `PostMeltQuoteBolt11Request`'s that each include the corresponding partial amount (see below) that she sends to all mints she wants to use for the payment. The mints then respond with a normal [NUT-05](PostMeltQuoteBolt11Response). `Alice` proceeds to pay the melt requests at each mint simultaneously. When all mints have sent out the Lightning payment, she receives a successful response from all mints individually. # Melt quote From 1e3f1cb0aee80fc99b3b5db0d98b079912dfb938 Mon Sep 17 00:00:00 2001 From: callebtc <93376500+callebtc@users.noreply.github.com> Date: Sat, 23 Mar 2024 14:21:54 +0100 Subject: [PATCH 03/13] fix typo --- 14.md | 1 + 1 file changed, 1 insertion(+) diff --git a/14.md b/14.md index 15075e8..69d3b8b 100644 --- a/14.md +++ b/14.md @@ -55,6 +55,7 @@ Example `MeltMethodSetting`: "max_amount": 10000, "mpp": true } +``` [05]: 05.md [06]: 06.md \ No newline at end of file From c87998c49cc6d31b8bfa810c953ade02c9ca0964 Mon Sep 17 00:00:00 2001 From: callebtc <93376500+callebtc@users.noreply.github.com> Date: Sat, 23 Mar 2024 14:22:56 +0100 Subject: [PATCH 04/13] fix typo --- 14.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/14.md b/14.md index 69d3b8b..b1db69c 100644 --- a/14.md +++ b/14.md @@ -5,7 +5,7 @@ NUT-14: Partial multi-path payments --- -In this document, we describe how wallets can instruct multiple mints to each pay a partial amount of a bolt11 Lightning invoice. The full payment is composed from payments from multiple Lightning nodes each as a partial multi-path payment. This way, wallets can pay a larger Lightning invoice combined from multiple smaller balances on different mints. Due to the atomic nature of MPP, either all payments wil be successful or all of them will fail. +In this document, we describe how wallets can instruct multiple mints to each pay a partial amount of a bolt11 Lightning invoice. The full payment is composed of partial payments from multiple Lightning nodes each as a partial multi-path payment. This way, wallets can pay a larger Lightning invoice combined from multiple smaller balances on different mints. Due to the atomic nature of MPP, either all payments wil be successful or all of them will fail. The Lightning backend of the mint must support paying a partial amount of an Invoice and multi-path payments (MPP, see [BOLT 4](https://github.com/lightning/bolts/blob/master/04-onion-routing.md)). For example, the mint's Lightning node must be able to pay 50 sats of a 100 sat bolt11 invoice. The receiving Lightning node must support receiving multi-path payments as well. From c639f2bfcf1ab5b309898bbefb353a4a4c2b5462 Mon Sep 17 00:00:00 2001 From: callebtc <93376500+callebtc@users.noreply.github.com> Date: Sat, 23 Mar 2024 14:23:38 +0100 Subject: [PATCH 05/13] fix typo --- 14.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/14.md b/14.md index b1db69c..e27d878 100644 --- a/14.md +++ b/14.md @@ -5,7 +5,7 @@ NUT-14: Partial multi-path payments --- -In this document, we describe how wallets can instruct multiple mints to each pay a partial amount of a bolt11 Lightning invoice. The full payment is composed of partial payments from multiple Lightning nodes each as a partial multi-path payment. This way, wallets can pay a larger Lightning invoice combined from multiple smaller balances on different mints. Due to the atomic nature of MPP, either all payments wil be successful or all of them will fail. +In this document, we describe how wallets can instruct multiple mints to each pay a partial amount of a bolt11 Lightning invoice. The full payment is composed of partial payments from multiple multi-path payments from different Lightning nodes. This way, wallets can pay a larger Lightning invoice combined from multiple smaller balances on different mints. Due to the atomic nature of MPP, either all payments wil be successful or all of them will fail. The Lightning backend of the mint must support paying a partial amount of an Invoice and multi-path payments (MPP, see [BOLT 4](https://github.com/lightning/bolts/blob/master/04-onion-routing.md)). For example, the mint's Lightning node must be able to pay 50 sats of a 100 sat bolt11 invoice. The receiving Lightning node must support receiving multi-path payments as well. From d573a63350f4eb8bd2f7e9fa30c1ff180ed2e44f Mon Sep 17 00:00:00 2001 From: callebtc <93376500+callebtc@users.noreply.github.com> Date: Sat, 23 Mar 2024 14:24:11 +0100 Subject: [PATCH 06/13] small edit --- 14.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/14.md b/14.md index e27d878..66d27d7 100644 --- a/14.md +++ b/14.md @@ -5,7 +5,7 @@ NUT-14: Partial multi-path payments --- -In this document, we describe how wallets can instruct multiple mints to each pay a partial amount of a bolt11 Lightning invoice. The full payment is composed of partial payments from multiple multi-path payments from different Lightning nodes. This way, wallets can pay a larger Lightning invoice combined from multiple smaller balances on different mints. Due to the atomic nature of MPP, either all payments wil be successful or all of them will fail. +In this document, we describe how wallets can instruct multiple mints to each pay a partial amount of a bolt11 Lightning invoice. The full payment is composed of partial payments (MPP) from multiple multi-path payments from different Lightning nodes. This way, wallets can pay a larger Lightning invoice combined from multiple smaller balances on different mints. Due to the atomic nature of MPP, either all payments wil be successful or all of them will fail. The Lightning backend of the mint must support paying a partial amount of an Invoice and multi-path payments (MPP, see [BOLT 4](https://github.com/lightning/bolts/blob/master/04-onion-routing.md)). For example, the mint's Lightning node must be able to pay 50 sats of a 100 sat bolt11 invoice. The receiving Lightning node must support receiving multi-path payments as well. From 63e892808001e8f575b3698fbf767018783a3584 Mon Sep 17 00:00:00 2001 From: callebtc <93376500+callebtc@users.noreply.github.com> Date: Sat, 23 Mar 2024 14:24:58 +0100 Subject: [PATCH 07/13] small edit --- 14.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/14.md b/14.md index 66d27d7..7715d8f 100644 --- a/14.md +++ b/14.md @@ -11,7 +11,7 @@ The Lightning backend of the mint must support paying a partial amount of an Inv # Multimint payment execution -`Alice`'s wallet coordinates multiple PMPPs on different mints that support the feature (see below for the indicated settings). For a given Lightning invoice of `amount_total`, `Alice` splits the total amount into several partial amounts `amount_total = amount_1 + amount_2 + ...` that each must be covered by her individual balances on the mints she wants to use for the payment. Then she constructs multiple `PostMeltQuoteBolt11Request`'s that each include the corresponding partial amount (see below) that she sends to all mints she wants to use for the payment. The mints then respond with a normal [NUT-05](PostMeltQuoteBolt11Response). `Alice` proceeds to pay the melt requests at each mint simultaneously. When all mints have sent out the Lightning payment, she receives a successful response from all mints individually. +`Alice`'s wallet coordinates multiple MPPs on different mints that support the feature (see below for the indicated settings). For a given Lightning invoice of `amount_total`, `Alice` splits the total amount into several partial amounts `amount_total = amount_1 + amount_2 + ...` that each must be covered by her individual balances on the mints she wants to use for the payment. Then she constructs multiple `PostMeltQuoteBolt11Request`'s that each include the corresponding partial amount (see below) that she sends to all mints she wants to use for the payment. The mints then respond with a normal [NUT-05](PostMeltQuoteBolt11Response). `Alice` proceeds to pay the melt requests at each mint simultaneously. When all mints have sent out the Lightning payment, she receives a successful response from all mints individually. # Melt quote From 952fcda55166b85da218b9248216d82bca96c98a Mon Sep 17 00:00:00 2001 From: callebtc <93376500+callebtc@users.noreply.github.com> Date: Sat, 23 Mar 2024 14:26:22 +0100 Subject: [PATCH 08/13] small edit --- 14.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/14.md b/14.md index 7715d8f..bdc4c02 100644 --- a/14.md +++ b/14.md @@ -11,7 +11,7 @@ The Lightning backend of the mint must support paying a partial amount of an Inv # Multimint payment execution -`Alice`'s wallet coordinates multiple MPPs on different mints that support the feature (see below for the indicated settings). For a given Lightning invoice of `amount_total`, `Alice` splits the total amount into several partial amounts `amount_total = amount_1 + amount_2 + ...` that each must be covered by her individual balances on the mints she wants to use for the payment. Then she constructs multiple `PostMeltQuoteBolt11Request`'s that each include the corresponding partial amount (see below) that she sends to all mints she wants to use for the payment. The mints then respond with a normal [NUT-05](PostMeltQuoteBolt11Response). `Alice` proceeds to pay the melt requests at each mint simultaneously. When all mints have sent out the Lightning payment, she receives a successful response from all mints individually. +`Alice`'s wallet coordinates multiple MPPs on different mints that support the feature (see below for the indicated settings). For a given Lightning invoice of `amount_total`, `Alice` splits the total amount into several partial amounts `amount_total = amount_1 + amount_2 + ...` that each must be covered by her individual balances on the mints she wants to use for the payment. Then she constructs multiple `PostMeltQuoteBolt11Request`'s that each include the corresponding partial amount (see below) that she sends to all mints she wants to use for the payment. The mints then respond with a normal `PostMeltQuoteBolt11Response` (see [NUT-05][05]). `Alice` proceeds to pay the melt requests at each mint simultaneously. When all mints have sent out the Lightning payment, she receives a successful response from all mints individually. # Melt quote From e5f897265d0d5c7f899ccc9ed0cebf7bfba8faeb Mon Sep 17 00:00:00 2001 From: callebtc <93376500+callebtc@users.noreply.github.com> Date: Sat, 23 Mar 2024 14:27:25 +0100 Subject: [PATCH 09/13] small edit --- 14.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/14.md b/14.md index bdc4c02..a3f140a 100644 --- a/14.md +++ b/14.md @@ -27,7 +27,7 @@ The wallet `Alice` includes the following `PostMeltQuoteBolt11Request` data in i { "request": , "unit": , - "amount": + "amount": # <-- new } ``` From 6604c35a43fca939fe5ec3a8295b608fc130adf7 Mon Sep 17 00:00:00 2001 From: callebtc <93376500+callebtc@users.noreply.github.com> Date: Sat, 23 Mar 2024 14:30:49 +0100 Subject: [PATCH 10/13] small edit --- 14.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/14.md b/14.md index a3f140a..879bca3 100644 --- a/14.md +++ b/14.md @@ -31,16 +31,16 @@ The wallet `Alice` includes the following `PostMeltQuoteBolt11Request` data in i } ``` -Here, `request` is the bolt11 Lightning invoice to be paid, `unit` is the unit the wallet would like to pay with, and `amount` is the amount for the requested payment. The wallet then proceeds to paying the quote the same way as described in [NUT-05][05]. +Here, `request` is the bolt11 Lightning invoice to be paid, `unit` is the unit the wallet would like to pay with, and `amount` is the amount for the requested payment. The wallet then pays the returned melt quote the same way as in [NUT-05][05]. ## Settings -The settings for this feature are indicated in the `MeltMethodSetting` (see [NUT-05][05]) that is returned the info endpoint ([NUT-06][06]) MUST indicate `method` and `unit` pairs that support `mpp`. +The settings indicating that a mint supports this feature are in the `MeltMethodSetting` (see [NUT-05][05]) which is returned in the info endpoint ([NUT-06][06]). The mint MUST indicate `method` and `unit` pairs that support `mpp`. `MeltMethodSetting` is of the form: ```json { - ... + ..., "mpp": } ``` From af13a90a1e0adf990ac15c00077c4c77113a7f11 Mon Sep 17 00:00:00 2001 From: callebtc <93376500+callebtc@users.noreply.github.com> Date: Sat, 11 May 2024 18:36:43 +0200 Subject: [PATCH 11/13] add new changes --- 14.md | 61 --------------------------------------------- 15.md | 80 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 80 insertions(+), 61 deletions(-) delete mode 100644 14.md create mode 100644 15.md diff --git a/14.md b/14.md deleted file mode 100644 index 879bca3..0000000 --- a/14.md +++ /dev/null @@ -1,61 +0,0 @@ -NUT-14: Partial multi-path payments -========================== - -`optional` `depends on: NUT-05` - ---- - -In this document, we describe how wallets can instruct multiple mints to each pay a partial amount of a bolt11 Lightning invoice. The full payment is composed of partial payments (MPP) from multiple multi-path payments from different Lightning nodes. This way, wallets can pay a larger Lightning invoice combined from multiple smaller balances on different mints. Due to the atomic nature of MPP, either all payments wil be successful or all of them will fail. - -The Lightning backend of the mint must support paying a partial amount of an Invoice and multi-path payments (MPP, see [BOLT 4](https://github.com/lightning/bolts/blob/master/04-onion-routing.md)). For example, the mint's Lightning node must be able to pay 50 sats of a 100 sat bolt11 invoice. The receiving Lightning node must support receiving multi-path payments as well. - -# Multimint payment execution - -`Alice`'s wallet coordinates multiple MPPs on different mints that support the feature (see below for the indicated settings). For a given Lightning invoice of `amount_total`, `Alice` splits the total amount into several partial amounts `amount_total = amount_1 + amount_2 + ...` that each must be covered by her individual balances on the mints she wants to use for the payment. Then she constructs multiple `PostMeltQuoteBolt11Request`'s that each include the corresponding partial amount (see below) that she sends to all mints she wants to use for the payment. The mints then respond with a normal `PostMeltQuoteBolt11Response` (see [NUT-05][05]). `Alice` proceeds to pay the melt requests at each mint simultaneously. When all mints have sent out the Lightning payment, she receives a successful response from all mints individually. - -# Melt quote - -To request a melt quote with a partial `amount`, the wallet of `Alice` makes a `POST /v1/melt/quote/{method}` request where `method` is the payment method requested (here `bolt11`). - -```http -POST https://mint.host:3338/v1/melt/quote/bolt11 -``` - -The wallet `Alice` includes the following `PostMeltQuoteBolt11Request` data in its request which includes an additional `amount` field compared to the standard request in [NUT-05][05]: - -```json -{ - "request": , - "unit": , - "amount": # <-- new -} -``` - -Here, `request` is the bolt11 Lightning invoice to be paid, `unit` is the unit the wallet would like to pay with, and `amount` is the amount for the requested payment. The wallet then pays the returned melt quote the same way as in [NUT-05][05]. - -## Settings - -The settings indicating that a mint supports this feature are in the `MeltMethodSetting` (see [NUT-05][05]) which is returned in the info endpoint ([NUT-06][06]). The mint MUST indicate `method` and `unit` pairs that support `mpp`. - -`MeltMethodSetting` is of the form: -```json -{ - ..., - "mpp": -} -``` - -Example `MeltMethodSetting`: - -```json -{ - "method": "bolt11", - "unit": "sat", - "min_amount": 100, - "max_amount": 10000, - "mpp": true -} -``` - -[05]: 05.md -[06]: 06.md \ No newline at end of file diff --git a/15.md b/15.md new file mode 100644 index 0000000..29c5e81 --- /dev/null +++ b/15.md @@ -0,0 +1,80 @@ +NUT-14: Partial multi-path payments +========================== + +`optional` `depends on: NUT-05` + +--- + +In this document, we describe how wallets can instruct multiple mints to each pay a partial amount of a bolt11 Lightning invoice. The full payment is composed of partial payments (MPP) from multiple multi-path payments from different Lightning nodes. This way, wallets can pay a larger Lightning invoice combined from multiple smaller balances on different mints. Due to the atomic nature of MPP, either all payments wil be successful or all of them will fail. + +The Lightning backend of the mint must support paying a partial amount of an Invoice and multi-path payments (MPP, see [BOLT 4](https://github.com/lightning/bolts/blob/master/04-onion-routing.md)). For example, the mint's Lightning node must be able to pay 50 sats of a 100 sat bolt11 invoice. The receiving Lightning node must support receiving multi-path payments as well. + +## Multimint payment execution + +`Alice`'s wallet coordinates multiple MPPs on different mints that support the feature (see below for the indicated setting). For a given Lightning invoice of `amount_total`, `Alice` splits the total amount into several partial amounts `amount_total = amount_1 + amount_2 + ...` that each must be covered by her individual balances on the mints she wants to use for the payment. She constructs multiple `PostMeltQuoteBolt11Request`'s that each include the corresponding partial amount in the payment option (see below) that she sends to all mints she wants to use for the payment. The mints then respond with a normal `PostMeltQuoteBolt11Response` (see [NUT-05][05]). `Alice` proceeds to pay the melt requests at each mint simultaneously. When all mints have sent out the partial Lightning payment, she receives a successful response from all mints individually. + +## Melt quote + +To request a melt quote with a partial `amount`, the wallet of `Alice` makes a `POST /v1/melt/quote/bolt11` similar to [NUT-05][05]. + +```http +POST https://mint.host:3338/v1/melt/quote/bolt11 +``` + +The wallet `Alice` includes the following `PostMeltQuoteBolt11Request` data in its request which includes an additional `options` object compared to the standard request in [NUT-05][05]: + +```json +{ + "request": , + "unit": , + "options": { + "mpp": { + "amount": + } + } +} +``` + +Here, `request` is the bolt11 Lightning invoice to be paid, `unit` is the unit the wallet would like to pay with, and `amount` is the amount for the requested payment. The wallet then pays the returned melt quote the same way as in [NUT-05][05]. + +## Settings + +The settings returned in the info endpoint ([NUT-06][06]) indicate that a mint supports this NUT. The mint MUST indicate each `method` and `unit` that supports `mpp`. It can indicate this for multiple `method` and `unit` pairs. + +`MultipathPaymentSetting` is of the form: +```json +{ + [ + { + "method": , + "unit": , + "mpp": + }, + ... + ] +} +``` + +Example `MultipathPaymentSetting`: + +```json +{ + "15": { + [ + { + "method": "bolt11", + "unit": "sat", + "mpp": true + }, + { + "method": "bolt11", + "unit": "usd", + "mpp": true + }, + ] + } +} +``` + +[05]: 05.md +[06]: 06.md \ No newline at end of file From 40924c7fd12e8d4f1efb47107ce348553ade6f4c Mon Sep 17 00:00:00 2001 From: callebtc <93376500+callebtc@users.noreply.github.com> Date: Wed, 22 May 2024 22:47:23 +0200 Subject: [PATCH 12/13] adjust README.md --- 15.md | 2 +- README.md | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/15.md b/15.md index 29c5e81..6ff923c 100644 --- a/15.md +++ b/15.md @@ -1,4 +1,4 @@ -NUT-14: Partial multi-path payments +NUT-15: Partial multi-path payments ========================== `optional` `depends on: NUT-05` diff --git a/README.md b/README.md index 67a3fff..57f8437 100644 --- a/README.md +++ b/README.md @@ -29,6 +29,7 @@ Wallets and mints `MUST` implement all mandatory specs and `CAN` implement optio | [12][12] | DLEQ proofs | [Nutshell][py] | [Nutshell][py], [cdk] | | [13][13] | Deterministic secrets | [Nutshell][py], [Moksha][moksha], [cashu-ts][ts], [cdk] | - | | [14][14] | Hashed Timelock Contracts (HTLCs) | [Nutshell][py] | [Nutshell][py] | +| [15][15] | Partial multi-path payments (MPP) | [Nutshell][py] | [Nutshell][py] | #### Wallets: @@ -76,3 +77,4 @@ Wallets and mints `MUST` implement all mandatory specs and `CAN` implement optio [12]: 12.md [13]: 13.md [14]: 14.md +[15]: 15.md \ No newline at end of file From e21aa23273f6d875d96f8c9a27bbf5f3019498cc Mon Sep 17 00:00:00 2001 From: callebtc <93376500+callebtc@users.noreply.github.com> Date: Wed, 22 May 2024 22:50:06 +0200 Subject: [PATCH 13/13] clarify --- 15.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/15.md b/15.md index 6ff923c..161f987 100644 --- a/15.md +++ b/15.md @@ -21,7 +21,7 @@ To request a melt quote with a partial `amount`, the wallet of `Alice` makes a ` POST https://mint.host:3338/v1/melt/quote/bolt11 ``` -The wallet `Alice` includes the following `PostMeltQuoteBolt11Request` data in its request which includes an additional `options` object compared to the standard request in [NUT-05][05]: +The wallet `Alice` includes the following `PostMeltQuoteBolt11Request` data in its request which includes an additional (and optional) `options` object compared to the standard request in [NUT-05][05]: ```json { @@ -39,7 +39,7 @@ Here, `request` is the bolt11 Lightning invoice to be paid, `unit` is the unit t ## Settings -The settings returned in the info endpoint ([NUT-06][06]) indicate that a mint supports this NUT. The mint MUST indicate each `method` and `unit` that supports `mpp`. It can indicate this for multiple `method` and `unit` pairs. +The settings returned in the info endpoint ([NUT-06][06]) indicate that a mint supports this NUT. The mint MUST indicate each `method` and `unit` that supports `mpp`. It can indicate this in an array of objects for multiple `method` and `unit` pairs and the boolean flag `mpp` set to `true`. `MultipathPaymentSetting` is of the form: ```json