@@ -65,3 +65,49 @@ Phases:
65
65
| | | | | |
66
66
'--------------------' '--------------' '---------------'
67
67
```
68
+
69
+ ### Standard Loop-In (on -> off-chain)
70
+
71
+ The reverse of a Loop-Out. The client sends funds to an on-chain HTLC with a
72
+ 2-of-2 MuSig2 keyspend path. Once the server detects that the HTLC transaction
73
+ is confirmed, it pays the Lightning invoice provided by the client to "loop in"
74
+ the funds to their node's channels and sweeps the HTLC. The client cooperates
75
+ with the server to cosign the sweep transaction to save on onchain fees.
76
+
77
+ ### Instant Loop-Out
78
+
79
+ A faster, more efficient Loop-Out that prioritizes a cooperative path, built on
80
+ ** Reservations** (on-chain UTXOs controlled by a 2-of-2 MuSig2 key between the
81
+ client and server).
82
+
83
+ 1 . ** Cooperative Path ("Sweepless Sweep"):** After the client pays the
84
+ off-chain swap invoice, the client and server cooperatively sign a
85
+ transaction that spends the reservation UTXO directly to the client's final
86
+ destination address. This avoids publishing an HTLC, saving fees and chain
87
+ space.
88
+
89
+ 2 . ** Fallback Path:** If the cooperative path fails, the system falls back to
90
+ creating a standard on-chain HTLC from the reservation UTXO, which is then
91
+ swept by the client. This ensures the swap remains non-custodial.
92
+
93
+ ### Static Address (for Loop-In)
94
+
95
+ Provides a permanent, reusable on-chain address for receiving funds that can
96
+ then be swapped for an off-chain Lightning payment.
97
+
98
+ - ** Address Type:** The address is a P2TR (Taproot) output with two spending
99
+ paths:
100
+ 1 . ** Keyspend Path (Cooperative):** The internal key is a 2-of-2 MuSig2
101
+ aggregate key held by the client and server. This path is used to
102
+ cooperatively sign transactions for performing a Loop-In or withdrawing
103
+ funds.
104
+ 2 . ** Scriptspend Path (Timeout):** A tapleaf contains a script that allows
105
+ the client to unilaterally sweep their funds after a CSV timeout. This
106
+ is a safety mechanism ensuring the client never loses access to their
107
+ deposits.
108
+
109
+ - ** Loop-In Flow:** When a user wants to loop in funds from this address, the
110
+ client and server use the cooperative keyspend path to create and sign an
111
+ HTLC transaction, which then follows a standard Loop-In flow. When the
112
+ client gets the LN payment, they cooperate with the server to sweep the
113
+ deposit directly to the server's wallet instead of publishing the HTLC tx.
0 commit comments