@vultisig/cli 0.2.0-alpha.6 → 0.2.0-beta.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,44 @@
1
1
  # @vultisig/cli
2
2
 
3
+ ## 0.2.0-beta.8
4
+
5
+ ### Minor Changes
6
+
7
+ - [#62](https://github.com/vultisig/vultisig-sdk/pull/62) [`008db7f`](https://github.com/vultisig/vultisig-sdk/commit/008db7fb27580ec78df3bbc41b25aac24924ffd8) Thanks [@bornslippynuxx](https://github.com/bornslippynuxx)! - feat: separate unlock and export passwords in CLI export command
8
+
9
+ The export command now has two distinct password options:
10
+ - `--password`: Unlocks the vault (decrypts stored keyshares for encrypted vaults)
11
+ - `--exportPassword`: Encrypts the exported file (defaults to `--password` if not specified)
12
+
13
+ This fixes the "Password required but callback returned empty value" error when exporting encrypted vaults.
14
+
15
+ Password resolution now uses an in-memory cache that persists across SDK callbacks, allowing the CLI to pre-cache the unlock password before vault loading.
16
+
17
+ ### Patch Changes
18
+
19
+ - [#62](https://github.com/vultisig/vultisig-sdk/pull/62) [`008db7f`](https://github.com/vultisig/vultisig-sdk/commit/008db7fb27580ec78df3bbc41b25aac24924ffd8) Thanks [@bornslippynuxx](https://github.com/bornslippynuxx)! - Simplify export command by removing `--encrypt` and `--no-encrypt` flags. Password is now optional - if provided, vault is encrypted; if omitted or empty, vault is exported without encryption. Path argument now supports directories (appends SDK-generated filename).
20
+
21
+ - Updated dependencies [[`008db7f`](https://github.com/vultisig/vultisig-sdk/commit/008db7fb27580ec78df3bbc41b25aac24924ffd8)]:
22
+ - @vultisig/sdk@0.2.0-beta.8
23
+
24
+ ## 0.2.0-alpha.7
25
+
26
+ ### Minor Changes
27
+
28
+ - [#60](https://github.com/vultisig/vultisig-sdk/pull/60) [`b4cf357`](https://github.com/vultisig/vultisig-sdk/commit/b4cf357c98ef493b48c807e5bb45cd40b9893295) Thanks [@bornslippynuxx](https://github.com/bornslippynuxx)! - feat: Add SecureVault support for multi-device MPC vaults
29
+ - Implement SecureVault.create() for multi-device keygen ceremony
30
+ - Add RelaySigningService for coordinated signing via relay server
31
+ - Implement SecureVault.sign() and signBytes() methods
32
+ - Add QR code generation for mobile app pairing (compatible with Vultisig iOS/Android)
33
+ - CLI: Add `vault create --type secure` with terminal QR display
34
+ - CLI: Support secure vault signing with device coordination
35
+ - Add comprehensive unit, integration, and E2E tests
36
+
37
+ ### Patch Changes
38
+
39
+ - Updated dependencies [[`b4cf357`](https://github.com/vultisig/vultisig-sdk/commit/b4cf357c98ef493b48c807e5bb45cd40b9893295)]:
40
+ - @vultisig/sdk@0.2.0-alpha.7
41
+
3
42
  ## 0.2.0-alpha.6
4
43
 
5
44
  ### Patch Changes
package/README.md CHANGED
@@ -53,7 +53,7 @@ vultisig completion fish >> ~/.config/fish/completions/vultisig.fish
53
53
 
54
54
  ## Quick Start
55
55
 
56
- ### Create a Vault
56
+ ### Create a Fast Vault
57
57
 
58
58
  ```bash
59
59
  vultisig create
@@ -65,6 +65,46 @@ You'll be prompted to:
65
65
  3. Provide an email for verification
66
66
  4. Enter the verification code sent to your email
67
67
 
68
+ ### Create a Secure Vault (Multi-Device)
69
+
70
+ ```bash
71
+ vultisig create --secure --name "Team Wallet" --shares 3
72
+ ```
73
+
74
+ This creates a secure vault with configurable N-of-M threshold:
75
+ 1. A QR code displays in your terminal
76
+ 2. Other participants scan with Vultisig mobile app (iOS/Android)
77
+ 3. Once all devices join, keygen runs automatically
78
+ 4. Vault is created and ready to use
79
+
80
+ **Secure vault options:**
81
+ - `--shares <n>` - Number of participating devices (default: 2)
82
+ - `--threshold <n>` - Signing threshold (default: ceil((shares+1)/2))
83
+
84
+ **Example session:**
85
+ ```bash
86
+ $ vultisig create --secure --name "Team Wallet" --shares 3
87
+
88
+ Creating secure vault: Team Wallet (2-of-3)
89
+
90
+ Scan this QR code with Vultisig mobile app:
91
+ ████████████████████████████
92
+ █ ▄▄▄▄▄ █▀ ▄█▄█▀█ ▄▄▄▄▄ █
93
+ █ █ █ █▀▄▄▄ ▄██ █ █ █
94
+ ...
95
+
96
+ Waiting for devices to join...
97
+ ⠋ Device joined: iPhone-abc123 (2/3)
98
+ ⠋ Device joined: Android-def456 (3/3)
99
+
100
+ All devices joined. Running keygen...
101
+ ✓ ECDSA keygen complete
102
+ ✓ EdDSA keygen complete
103
+
104
+ ✓ Secure vault created: Team Wallet
105
+ Vault ID: vault_abc123def456
106
+ ```
107
+
68
108
  ### Check Balances
69
109
 
70
110
  ```bash
@@ -91,6 +131,29 @@ vultisig send ethereum 0xRecipient... 100 --token 0xTokenAddress...
91
131
  vultisig send ethereum 0xRecipient... 0.1 --password mypassword
92
132
  ```
93
133
 
134
+ **Secure vault transactions:**
135
+
136
+ When using a secure vault, a QR code displays for device coordination:
137
+
138
+ ```bash
139
+ $ vultisig send ethereum 0x742d35Cc... 0.1
140
+
141
+ Preparing transaction...
142
+
143
+ Scan this QR code to approve transaction:
144
+ ████████████████████████████
145
+ ...
146
+
147
+ Waiting for devices to join signing session...
148
+ ⠋ Device joined: iPhone-abc123 (2/2)
149
+
150
+ Signing transaction...
151
+ ✓ Transaction signed
152
+ ✓ Broadcast: 0x9f8e7d6c...
153
+ ```
154
+
155
+ You can cancel with Ctrl+C while waiting for devices.
156
+
94
157
  ### Interactive Shell
95
158
 
96
159
  Start an interactive session with tab completion and password caching:
@@ -107,7 +170,8 @@ vultisig -i
107
170
 
108
171
  | Command | Description |
109
172
  |---------|-------------|
110
- | `create` | Create a new vault |
173
+ | `create` | Create a new fast vault (server-assisted) |
174
+ | `create --secure` | Create a secure vault (multi-device MPC) |
111
175
  | `import <file>` | Import vault from .vult file |
112
176
  | `export [path]` | Export vault to file |
113
177
  | `verify <vaultId>` | Verify vault with email code |
@@ -116,6 +180,35 @@ vultisig -i
116
180
  | `rename <newName>` | Rename the active vault |
117
181
  | `info` | Show detailed vault information |
118
182
 
183
+ **Create options:**
184
+ - `--secure` - Create a secure vault instead of fast vault
185
+ - `--name <name>` - Vault name
186
+ - `--shares <n>` - Number of devices for secure vault (default: 2)
187
+ - `--threshold <n>` - Signing threshold (default: ceil((shares+1)/2))
188
+
189
+ **Export options:**
190
+ - `[path]` - Output file or directory (defaults to SDK-generated filename in current directory)
191
+ - `--password <password>` - Password to unlock encrypted vaults
192
+ - `--exportPassword <password>` - Password to encrypt the export file (defaults to `--password` if provided)
193
+
194
+ ```bash
195
+ # Export to current directory (prompts for export password)
196
+ vultisig export
197
+
198
+ # Export to specific directory
199
+ vultisig export /path/to/backups/
200
+
201
+ # Export with encryption (same password for unlock and export)
202
+ vultisig export --password mypassword
203
+
204
+ # Export with different passwords for unlock vs export
205
+ vultisig export --password unlockPass --exportPassword exportPass
206
+
207
+ # Export without encryption (leave password prompt empty)
208
+ vultisig export
209
+ # > Enter password for export encryption (leave empty for no encryption): [enter]
210
+ ```
211
+
119
212
  ### Wallet Operations
120
213
 
121
214
  | Command | Description |