Skip to content

Commit d8f70d4

Browse files
committed
Fix key naming, alt text, stale references, incorrect signers, and update mint-005 reference transactions
- mint-005: Update reference transactions and example timestamps to match current signet vault (smallest=1753488000, between=1766880000, largest=1770768000) - mint-005: Fix Layer 2 Example Spend signers (verified against on-chain witness data) - mint-005: Add Layer 3 Example Spend signer list - mint-006: Fix stale "10-Key Collaborative Custody Vault" references, add note clarifying layer reordering and PK/PAK column swap vs MINT-005 - mint-006/007/008: Fix image alt text from CK to PAK - mint-009: Fix CK/CSK to PAK/SAK in descriptor, policy, and example spend
1 parent f571b9f commit d8f70d4

5 files changed

Lines changed: 38 additions & 38 deletions

File tree

mint-005.md

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ Layer is used as an abstraction to segment the different eligible spending condi
202202

203203
---
204204
# Example Miniscript Output Descriptor
205-
For this example, the `smallest_epoch_timestamp` is: 1672531200 (Jan 1 2023, midnight gmt), the `between_epoch_timestamp` is: 1673740800 and `largest_epoch_timestamp` is: 1675209600 (Feb 1 2023, midnight gmt)
205+
For this example, the `smallest_epoch_timestamp` is: 1753488000 (July 26, 2025 00:00:00 UTC), the `between_epoch_timestamp` is: 1766880000 (December 28, 2025 00:00:00 UTC) and `largest_epoch_timestamp` is: 1770768000 (February 11, 2026 00:00:00 UTC)
206206

207207
- MINT-005 Output Descriptor:
208208
<code>wsh(andor(multi(2,$PAK_1$,$PAK_2$,$PAK_3$),or_i(and_v(v:pkh($SAK$),after(`between_epoch_timestamp`)),thresh(2,pk($PK_1$),s:pk($PK_2$),s:pk($PK_3$),snl:after(`smallest_epoch_timestamp`))),and_v(v:thresh(2,pkh($RK_1$),a:pkh($RK_2$),a:pkh($RK_3$)),after(`largest_epoch_timestamp`))))</code>
@@ -212,23 +212,21 @@ For this example, the `smallest_epoch_timestamp` is: 1672531200 (Jan 1 2023, mid
212212

213213
## Layer 1 Example Spend
214214

215-
Signed by: $PK_1$, $PK_2$, $PAK_1$, $PAK_2$
215+
Signed by: $PK_2$, $PK_3$, $PAK_1$, $PAK_2$
216216

217-
[Reference Testnet
218-
Transaction](https://mempool.space/signet/tx/2836d6af6b5c4bb01e926391f64771fb333193676040b24d4236ba0bb89a7008)
217+
[Reference Testnet Transaction](https://mempool.space/signet/tx/8b5d80b6b9adf6dc2d0f83372e77b81150e67689a0119348f8cbbea1121afd97)
219218

220219
## Layer 2 Example Spend
221-
Signed by: $PK_1$, $PK_2$, $SAK$
220+
Signed by: $PK_2$, $PAK_1$, $PAK_2$
222221

223-
[Reference Testnet
224-
Transaction](https://mempool.space/signet/tx/36aa3dfd0c7b4f4d8c7924c411e240920e4b4d36950ca59f68098b77162ae54d)
222+
[Reference Testnet Transaction](https://mempool.space/signet/tx/07cbd89200f05dd68ade5f10f9f6e212278f7bd1dd0b494039fe99752eb10d46)
225223

226224
## Layer 3 Example Spend
227-
[Reference Testnet
228-
Transaction](https://mempool.space/signet/tx/bc75e9c7bd62168134a6283a56c2a0bf3c872cc6703d9566f1851309d5ef7465)
225+
Signed by: $PAK_1$, $PAK_2$, $SAK$
226+
227+
[Reference Testnet Transaction](https://mempool.space/signet/tx/a10a5962098e5912887137735c39a39e921e7f9cdf65e68062aed4bd72988dc7)
229228

230229
## Layer 4 Example Spend
231230
Signed by: $RK_1$, $RK_2$
232231

233-
[Reference Testnet
234-
Transaction](https://mempool.space/signet/tx/1d35568360a3a11309c77c893142a0c0cf58ed9cfce981c5492c66fb795f1872)
232+
[Reference Testnet Transaction](https://mempool.space/signet/tx/1de409327398bcdcb9e5bb1dc31a52a77e9567a4ce17ff794e8cb76e201833c6)

mint-006.md

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66

77
This vault is very similar to [mint-005.md](mint-005.md). The difference is the sequential order of the 3rd and 4th "layers", where the Principal is able to unilaterally move funds prior to the recovery layer. This is done for users who wish to make sure that funds will require the Principal to sign before the Primary Agent and Secondary Agent are able to move funds unilaterally. The recovery layer still exists to provide support to recover funds in the event the Principal has lost access to their keys.
88

9+
**Key differences from MINT-005:** First, the layer ordering is changed — the Sovereign Recovery Path (Recovery Keys only) comes *before* the Emergency Recovery Path (Primary Agent + Secondary Agent), meaning the Principal can unilaterally move funds before the agents gain the ability to recover without the Principal. Second, the Primary Agent Keys (PAKs) are listed as Key Set 1 and the Principal Keys (PKs) as Key Set 2 in the summary table and layer diagrams, which is the reverse of MINT-005's column ordering. Together, these changes result in a different miniscript output descriptor.
10+
911

1012
### More on Timelock Values
1113

@@ -19,7 +21,7 @@ There are three timelocks used for this MinT:
1921

2022
### Keys
2123

22-
In total, there are 10 keys in use for the 10-Key Collaborative Custody Vault, they are as follows:
24+
In total, there are 10 keys in use for the 3 Key Joint Custody, Sovereign First Vault, they are as follows:
2325

2426
| Key Names | Description | Key Abbreviations | Key Symbol |
2527
|:--|:--:|:--:|:--:|
@@ -30,11 +32,11 @@ In total, there are 10 keys in use for the 10-Key Collaborative Custody Vault, t
3032

3133

3234

33-
Below are reference diagrams on how the 10-Key Collaborative Custody Vault operates across time:
35+
Below are reference diagrams on how the 3 Key Joint Custody, Sovereign First Vault operates across time:
3436

3537
---
3638

37-
### Collaborative Custody Summary Layers
39+
### Joint Custody Summary Layers
3840

3941
Layer is used as an abstraction to segment the different eligible spending conditions, going in an ascending order of timelock values. At the start, only "Layer 1" is accessible for spending funds, over time, other spending conditions become available, but this does not restrict the ability to spend from a preceding layer.
4042

@@ -63,9 +65,9 @@ Layer is used as an abstraction to segment the different eligible spending condi
6365
</tr>
6466
<tr>
6567
<td align="center">2 of 3 PAKs AND 2 of 3 PKs</td>
66-
<td align="center"><img src="https://raw.githubusercontent.com/Rob1Ham/miniscript-templates/main/assets/key_green.png" alt="CK1"></td>
67-
<td align="center"><img src="https://raw.githubusercontent.com/Rob1Ham/miniscript-templates/main/assets/key_green.png" alt="CK2"></td>
68-
<td align="center"><img src="https://raw.githubusercontent.com/Rob1Ham/miniscript-templates/main/assets/key_green.png" alt="CK3"></td>
68+
<td align="center"><img src="https://raw.githubusercontent.com/Rob1Ham/miniscript-templates/main/assets/key_green.png" alt="PAK1"></td>
69+
<td align="center"><img src="https://raw.githubusercontent.com/Rob1Ham/miniscript-templates/main/assets/key_green.png" alt="PAK2"></td>
70+
<td align="center"><img src="https://raw.githubusercontent.com/Rob1Ham/miniscript-templates/main/assets/key_green.png" alt="PAK3"></td>
6971
<td align="center"><img src="https://raw.githubusercontent.com/Rob1Ham/miniscript-templates/main/assets/key_blue.png" alt="PK1"></td>
7072
<td align="center"><img src="https://raw.githubusercontent.com/Rob1Ham/miniscript-templates/main/assets/key_blue.png" alt="PK2"></td>
7173
<td align="center"><img src="https://raw.githubusercontent.com/Rob1Ham/miniscript-templates/main/assets/key_blue.png" alt="PK3"></td>
@@ -106,9 +108,9 @@ Layer is used as an abstraction to segment the different eligible spending condi
106108
</tr>
107109
<tr>
108110
<td align="center">2 of 3 PAKs AND 1 of 3 PKs AND BIP-113 time is greater than <code>`smallest_epoch_timestamp`</code></td>
109-
<td align="center"><img src="https://raw.githubusercontent.com/Rob1Ham/miniscript-templates/main/assets/key_green.png" alt="CK1"></td>
110-
<td align="center"><img src="https://raw.githubusercontent.com/Rob1Ham/miniscript-templates/main/assets/key_green.png" alt="CK2"></td>
111-
<td align="center"><img src="https://raw.githubusercontent.com/Rob1Ham/miniscript-templates/main/assets/key_green.png" alt="CK3"></td>
111+
<td align="center"><img src="https://raw.githubusercontent.com/Rob1Ham/miniscript-templates/main/assets/key_green.png" alt="PAK1"></td>
112+
<td align="center"><img src="https://raw.githubusercontent.com/Rob1Ham/miniscript-templates/main/assets/key_green.png" alt="PAK2"></td>
113+
<td align="center"><img src="https://raw.githubusercontent.com/Rob1Ham/miniscript-templates/main/assets/key_green.png" alt="PAK3"></td>
112114
<td align="center"><img src="https://raw.githubusercontent.com/Rob1Ham/miniscript-templates/main/assets/key_blue.png" alt="PK1"></td>
113115
<td align="center"><img src="https://raw.githubusercontent.com/Rob1Ham/miniscript-templates/main/assets/key_blue.png" alt="PK2"></td>
114116
<td align="center"><img src="https://raw.githubusercontent.com/Rob1Ham/miniscript-templates/main/assets/key_blue.png" alt="PK3"></td>
@@ -178,9 +180,9 @@ Layer is used as an abstraction to segment the different eligible spending condi
178180
</tr>
179181
<tr>
180182
<td align="center">2 of 3 PAKs AND SAK AND after BIP-113 time is greater than <code>`largest_epoch_timestamp`</code></td>
181-
<td align="center"><img src="https://raw.githubusercontent.com/Rob1Ham/miniscript-templates/main/assets/key_green.png" alt="CK1"></td>
182-
<td align="center"><img src="https://raw.githubusercontent.com/Rob1Ham/miniscript-templates/main/assets/key_green.png" alt="CK2"></td>
183-
<td align="center"><img src="https://raw.githubusercontent.com/Rob1Ham/miniscript-templates/main/assets/key_green.png" alt="CK3"></td>
183+
<td align="center"><img src="https://raw.githubusercontent.com/Rob1Ham/miniscript-templates/main/assets/key_green.png" alt="PAK1"></td>
184+
<td align="center"><img src="https://raw.githubusercontent.com/Rob1Ham/miniscript-templates/main/assets/key_green.png" alt="PAK2"></td>
185+
<td align="center"><img src="https://raw.githubusercontent.com/Rob1Ham/miniscript-templates/main/assets/key_green.png" alt="PAK3"></td>
184186
<td align="center"><img src="https://raw.githubusercontent.com/Rob1Ham/miniscript-templates/83a8c241b2c2cf7ee940570aa97d8b0e1d751f55/assets/key_red.png" alt="SAK"></td>
185187
<td align="center"><img src="https://raw.githubusercontent.com/Rob1Ham/miniscript-templates/main/assets/unlock.png" alt="Timelock"></td>
186188
</tr>

mint-007.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,9 @@ Layer is used as an abstraction to segment the different eligible spending condi
5858
</tr>
5959
<tr>
6060
<td align="center">2 of 3 PAKs AND PK</td>
61-
<td align="center"><img src="https://raw.githubusercontent.com/Rob1Ham/miniscript-templates/main/assets/key_green.png" alt="CK1"></td>
62-
<td align="center"><img src="https://raw.githubusercontent.com/Rob1Ham/miniscript-templates/main/assets/key_green.png" alt="CK2"></td>
63-
<td align="center"><img src="https://raw.githubusercontent.com/Rob1Ham/miniscript-templates/main/assets/key_green.png" alt="CK3"></td>
61+
<td align="center"><img src="https://raw.githubusercontent.com/Rob1Ham/miniscript-templates/main/assets/key_green.png" alt="PAK1"></td>
62+
<td align="center"><img src="https://raw.githubusercontent.com/Rob1Ham/miniscript-templates/main/assets/key_green.png" alt="PAK2"></td>
63+
<td align="center"><img src="https://raw.githubusercontent.com/Rob1Ham/miniscript-templates/main/assets/key_green.png" alt="PAK3"></td>
6464
<td align="center"><img src="https://raw.githubusercontent.com/Rob1Ham/miniscript-templates/main/assets/key_blue.png" alt="PK"></td>
6565
</tr>
6666
</table>
@@ -91,9 +91,9 @@ Layer is used as an abstraction to segment the different eligible spending condi
9191
</tr>
9292
<tr>
9393
<td align="center">2 of 3 PAKs AND SAK AND BIP-113 time is greater than <code>`smallest_epoch_timestamp`</code></td>
94-
<td align="center"><img src="https://raw.githubusercontent.com/Rob1Ham/miniscript-templates/main/assets/key_green.png" alt="CK1"></td>
95-
<td align="center"><img src="https://raw.githubusercontent.com/Rob1Ham/miniscript-templates/main/assets/key_green.png" alt="CK2"></td>
96-
<td align="center"><img src="https://raw.githubusercontent.com/Rob1Ham/miniscript-templates/main/assets/key_green.png" alt="CK3"></td>
94+
<td align="center"><img src="https://raw.githubusercontent.com/Rob1Ham/miniscript-templates/main/assets/key_green.png" alt="PAK1"></td>
95+
<td align="center"><img src="https://raw.githubusercontent.com/Rob1Ham/miniscript-templates/main/assets/key_green.png" alt="PAK2"></td>
96+
<td align="center"><img src="https://raw.githubusercontent.com/Rob1Ham/miniscript-templates/main/assets/key_green.png" alt="PAK3"></td>
9797
<td align="center"><img src="https://raw.githubusercontent.com/Rob1Ham/miniscript-templates/83a8c241b2c2cf7ee940570aa97d8b0e1d751f55/assets/key_red.png" alt="SAK"></td>
9898
<td align="center"><img src="https://raw.githubusercontent.com/Rob1Ham/miniscript-templates/main/assets/unlock.png" alt="Timelock"></td>
9999
</tr>

mint-008.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,9 @@ Layer is used as an abstraction to segment the different eligible spending condi
6363
</tr>
6464
<tr>
6565
<td align="center">2 of 3 PAKs AND PK</td>
66-
<td align="center"><img src="https://raw.githubusercontent.com/Rob1Ham/miniscript-templates/main/assets/key_green.png" alt="CK1"></td>
67-
<td align="center"><img src="https://raw.githubusercontent.com/Rob1Ham/miniscript-templates/main/assets/key_green.png" alt="CK2"></td>
68-
<td align="center"><img src="https://raw.githubusercontent.com/Rob1Ham/miniscript-templates/main/assets/key_green.png" alt="CK3"></td>
66+
<td align="center"><img src="https://raw.githubusercontent.com/Rob1Ham/miniscript-templates/main/assets/key_green.png" alt="PAK1"></td>
67+
<td align="center"><img src="https://raw.githubusercontent.com/Rob1Ham/miniscript-templates/main/assets/key_green.png" alt="PAK2"></td>
68+
<td align="center"><img src="https://raw.githubusercontent.com/Rob1Ham/miniscript-templates/main/assets/key_green.png" alt="PAK3"></td>
6969
<td align="center"><img src="https://raw.githubusercontent.com/Rob1Ham/miniscript-templates/main/assets/key_blue.png" alt="PK"></td>
7070
</tr>
7171
</table>
@@ -120,9 +120,9 @@ Layer is used as an abstraction to segment the different eligible spending condi
120120
</tr>
121121
<tr>
122122
<td align="center">2 of 3 PAKs AND SAK AND BIP-113 time is greater than <code>`largest_epoch_timestamp`</code></td>
123-
<td align="center"><img src="https://raw.githubusercontent.com/Rob1Ham/miniscript-templates/main/assets/key_green.png" alt="CK1"></td>
124-
<td align="center"><img src="https://raw.githubusercontent.com/Rob1Ham/miniscript-templates/main/assets/key_green.png" alt="CK2"></td>
125-
<td align="center"><img src="https://raw.githubusercontent.com/Rob1Ham/miniscript-templates/main/assets/key_green.png" alt="CK3"></td>
123+
<td align="center"><img src="https://raw.githubusercontent.com/Rob1Ham/miniscript-templates/main/assets/key_green.png" alt="PAK1"></td>
124+
<td align="center"><img src="https://raw.githubusercontent.com/Rob1Ham/miniscript-templates/main/assets/key_green.png" alt="PAK2"></td>
125+
<td align="center"><img src="https://raw.githubusercontent.com/Rob1Ham/miniscript-templates/main/assets/key_green.png" alt="PAK3"></td>
126126
<td align="center"><img src="https://raw.githubusercontent.com/Rob1Ham/miniscript-templates/83a8c241b2c2cf7ee940570aa97d8b0e1d751f55/assets/key_red.png" alt="SAK"></td>
127127
<td align="center"><img src="https://raw.githubusercontent.com/Rob1Ham/miniscript-templates/main/assets/unlock.png" alt="Timelock"></td>
128128
</tr>

mint-009.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -120,10 +120,10 @@ Layer is used as an abstraction to segment the different eligible spending condi
120120
For this example, the `recovery_epoch_timestamp` is: 1727740800 (October 1, 2025, midnight UTC)
121121

122122
- MINT-009 Output Descriptor:
123-
<code>wsh(andor(multi(1,$CK_1$,$CK_2$),multi(2,$CSK_1$,$CSK_2$,$CSK_3$),and_v(v:multi(1,$RK_1$,$RK_2$),after(`recovery_epoch_timestamp`))))</code>
123+
<code>wsh(andor(multi(1,$PAK_1$,$PAK_2$),multi(2,$SAK_1$,$SAK_2$,$SAK_3$),and_v(v:multi(1,$RK_1$,$RK_2$),after(`recovery_epoch_timestamp`))))</code>
124124

125125
- Source Policy (FOR REFERENCE PURPOSES ONLY):
126-
<code>"or(and(thresh(2,pk($CSK_1$),pk($CSK_2$),pk($CSK_3$)),thresh(1,pk($CK_1$),pk($CK_2$))),and(after(`recovery_epoch_timestamp`),thresh(1,pk($RK_1$),pk($RK_2$))))"</code>
126+
<code>"or(and(thresh(2,pk($SAK_1$),pk($SAK_2$),pk($SAK_3$)),thresh(1,pk($PAK_1$),pk($PAK_2$))),and(after(`recovery_epoch_timestamp`),thresh(1,pk($RK_1$),pk($RK_2$))))"</code>
127127

128128

129129

@@ -136,7 +136,7 @@ For the reference testnet transactions below, the following epoch timestamp was
136136

137137
## Layer 1 Example Spend
138138

139-
Signed by: $CK_1$, $CSK_1$, $CSK_2$
139+
Signed by: $PAK_1$, $SAK_1$, $SAK_2$
140140

141141

142142
[Reference Testnet Transaction](https://mempool.space/signet/tx/be2f19d0877237ec4fa900db79be2d9fdb469d60b6c6d3548da92cbef1210809)

0 commit comments

Comments
 (0)