@dynamic-labs/wallet-book 5.0.0-rc.4 → 5.1.0

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,4 +1,98 @@
1
1
 
2
+ ## [5.1.0](https://github.com/dynamic-labs/dynamic-auth/compare/v5.0.0...v5.1.0) (2026-08-04)
3
+
4
+
5
+ ### Features
6
+
7
+ * **midnight:** expose contract wallet provider ([#12120](https://github.com/dynamic-labs/dynamic-auth/issues/12120)) ([2cecf23](https://github.com/dynamic-labs/dynamic-auth/commit/2cecf23f1f51819b99dfde4afd20264ea1abebf8))
8
+ * **webview-messages,webview-controller:** add waas_backupKeySharesToICloud webview message ([#12147](https://github.com/dynamic-labs/dynamic-auth/issues/12147)) ([ca4edda](https://github.com/dynamic-labs/dynamic-auth/commit/ca4edda54adf0673a9fe41c17d861a739f1b8f2e))
9
+ * **webview:** add business accounts message contract and controller ([#12144](https://github.com/dynamic-labs/dynamic-auth/issues/12144)) ([d9f80c1](https://github.com/dynamic-labs/dynamic-auth/commit/d9f80c10bb3c332c2f3e3dc401b95025b930fa4e))
10
+
11
+
12
+ ### Bug Fixes
13
+
14
+ * bump brace-expansion to latest patched maintenance releases ([#12130](https://github.com/dynamic-labs/dynamic-auth/issues/12130)) ([1b26671](https://github.com/dynamic-labs/dynamic-auth/commit/1b26671ad8e62025904e04f9dfed8b3faafb9c19))
15
+ * **ethereum-aa:** resolve chainId from network for ZeroDev v2 multichain projects ([#12105](https://github.com/dynamic-labs/dynamic-auth/issues/12105)) ([fe2c5d2](https://github.com/dynamic-labs/dynamic-auth/commit/fe2c5d239758ea79e8647006d9d77cc27c2ab647))
16
+ * **midnight:** name the missing RPCs when the wallet client is too old ([#12121](https://github.com/dynamic-labs/dynamic-auth/issues/12121)) ([3a8a77f](https://github.com/dynamic-labs/dynamic-auth/commit/3a8a77f89d368d8634497a5b49ff345b004cdffa))
17
+ * **midnight:** return the submission identifier from the contract provider ([#12122](https://github.com/dynamic-labs/dynamic-auth/issues/12122)) ([8aa5289](https://github.com/dynamic-labs/dynamic-auth/commit/8aa52895fbdf09a3cf481049009a95f03cddda54))
18
+ * remediate high-severity dependency vulnerabilities ([#12149](https://github.com/dynamic-labs/dynamic-auth/issues/12149)) ([14058ee](https://github.com/dynamic-labs/dynamic-auth/commit/14058eeed34351791ad7ab7ac1fa720eb2cf9948))
19
+ * **starknet:** restore Braavos L2 session after lock and unlock ([#12124](https://github.com/dynamic-labs/dynamic-auth/issues/12124)) ([ab3b11b](https://github.com/dynamic-labs/dynamic-auth/commit/ab3b11bd71fbca8d32d4f2badfa49e3b9641eecf))
20
+ * **wallet-book:** add App Store id for Robinhood Wallet iOS install link ([#11877](https://github.com/dynamic-labs/dynamic-auth/issues/11877)) ([ef28619](https://github.com/dynamic-labs/dynamic-auth/commit/ef28619ba4396e01046717ea7ad560870a56c78f))
21
+ * **wallet-book:** add universal deep link for Exodus Solana WalletConnect ([#12123](https://github.com/dynamic-labs/dynamic-auth/issues/12123)) ([cd7223e](https://github.com/dynamic-labs/dynamic-auth/commit/cd7223eb2dc21314f351b96d9a06d795d282c35d))
22
+
23
+ ## [5.0.0](https://github.com/dynamic-labs/dynamic-auth/compare/v5.0.0-rc.4...v5.0.0) (2026-07-29)
24
+
25
+ ## 🚀 Dynamic SDK v5 is live
26
+
27
+ This release has been a long time coming. We've cleaned up the architecture, cut support for v1 and v2 embedded wallets from core, shipped a migration path for legacy wallets, and made the SDK story a lot cleaner for both web and mobile devs.
28
+
29
+ ### 🔥 Embedded Wallet clean up
30
+
31
+ V1/V2 embedded wallets support has been removed from `@dynamic-labs/sdk-react-core`. Dynamic WaaS (V3) is now the one and only embedded wallet type, all new embedded wallets are V3.
32
+
33
+ ### 📦 New: `@dynamic-labs/legacy-embedded-wallet-migration`
34
+
35
+ For users still on V1/V2 embedded wallets, we've got you covered with a dedicated migration package. It owns all the logic for upgrading to V3. This includes recovery flow, session keys, private key export, and the migration UI.
36
+
37
+ Two paths available:
38
+
39
+ - **UI-based** (recommended): Mount `LegacyWalletMigrationProvider` and the upgrade modal opens automatically when a legacy wallet is detected at login. It handles the full flow end-to-end.
40
+ - **Headless**: Call `upgradeToDynamicWaas()` directly if you want a custom migration UX.
41
+
42
+ ### 📱 JS SDK for web and React Native are the new default
43
+
44
+ Going forward, we're encouraging all developers building for web and React Native to use the JS SDK. It's the direction we're investing in. Ideally v5 is our final version of the old React SDK. To be clear: **no new features will be added to the old SDKs, including v5. All new feature development is happening in the JS SDK.**
45
+
46
+ ### ✏️ Legacy package renames
47
+
48
+ The old packages have been renamed to make their status explicit. Update your `package.json` accordingly:
49
+
50
+ ```
51
+ @dynamic-labs/client → @dynamic-labs/legacy-client
52
+ @dynamic-labs/react-hooks → @dynamic-labs/legacy-react-hooks
53
+ @dynamic-labs/react-native-extension → @dynamic-labs/legacy-react-native-extension
54
+ @dynamic-labs/web-extension → @dynamic-labs/legacy-web-extension
55
+ @dynamic-labs/solana-extension → @dynamic-labs/legacy-solana-extension
56
+ @dynamic-labs/sui-extension → @dynamic-labs/legacy-sui-extension
57
+ @dynamic-labs/viem-extension → @dynamic-labs/legacy-viem-extension
58
+ @dynamic-labs/zerodev-extension → @dynamic-labs/legacy-zerodev-extension
59
+ ```
60
+
61
+ ### :book: Full migration guide
62
+
63
+ Everything you need to upgrade from v4 → v5: [Upgrade SDK from V4 to V5 - Dynamic](https://www.dynamic.xyz/docs/react/reference/upgrade/v5)
64
+
65
+ Huge props to everyone who contributed to this.  :tada:
66
+
67
+ ------------------------------------------
68
+
69
+ ### ⚠ BREAKING CHANGES
70
+
71
+ * **waas:** move the client key-share store onto the core storage API (#12096)
72
+ * **react-native-extension:** store sensitive information with react-native-keychain (#12092)
73
+
74
+ ### Features
75
+
76
+ * **bitcoin:** add sendBitcoinWithConfirmation to show confirm modal on BTC sends ([#12025](https://github.com/dynamic-labs/dynamic-auth/issues/12025)) ([5f992f5](https://github.com/dynamic-labs/dynamic-auth/commit/5f992f5fdaf805f07870ab9248ea2fe06a2fd3bf))
77
+ * **waas:** delegate key shares with initial signer rules [DYNT-1675] ([#12028](https://github.com/dynamic-labs/dynamic-auth/issues/12028)) ([6b1ffc5](https://github.com/dynamic-labs/dynamic-auth/commit/6b1ffc5ee7070d639916a65b6a0aa6ada0167cb8)), closes [dynamic-labs/dynamic-waas-sdk#1500](https://github.com/dynamic-labs/dynamic-waas-sdk/issues/1500) [#10754](https://github.com/dynamic-labs/dynamic-auth/issues/10754) [#10772](https://github.com/dynamic-labs/dynamic-auth/issues/10772) [#646](https://github.com/dynamic-labs/dynamic-auth/issues/646) [#649](https://github.com/dynamic-labs/dynamic-auth/issues/649) [#1500](https://github.com/dynamic-labs/dynamic-auth/issues/1500) [dynamic-labs/dynamic-waas-sdk#1500](https://github.com/dynamic-labs/dynamic-waas-sdk/issues/1500)
78
+ * **waas:** expose rawSign sha256/blake2b in SignMessageContext ([#12075](https://github.com/dynamic-labs/dynamic-auth/issues/12075)) ([20e3d2f](https://github.com/dynamic-labs/dynamic-auth/commit/20e3d2f40d18aa0bdb77e9b00fa4a5dc5dd6e9de))
79
+
80
+
81
+ ### Bug Fixes
82
+
83
+ * **bitcoin:** resolve the public key of the active wallet, not the first ([#12091](https://github.com/dynamic-labs/dynamic-auth/issues/12091)) ([ebad70c](https://github.com/dynamic-labs/dynamic-auth/commit/ebad70c37ab9a771ad7051ca8f3c68d52c1d32fa)), closes [#11970](https://github.com/dynamic-labs/dynamic-auth/issues/11970) [#11970](https://github.com/dynamic-labs/dynamic-auth/issues/11970) [#11970](https://github.com/dynamic-labs/dynamic-auth/issues/11970)
84
+ * fallback to local wallet balance when token balances API returns no tokens ([#12059](https://github.com/dynamic-labs/dynamic-auth/issues/12059)) ([26c9022](https://github.com/dynamic-labs/dynamic-auth/commit/26c9022da3371b0da0498ec641157aa9fed356aa))
85
+ * security updates ([#12114](https://github.com/dynamic-labs/dynamic-auth/issues/12114)) ([a4f9bc1](https://github.com/dynamic-labs/dynamic-auth/commit/a4f9bc19870156903b76996c55ecd46a3417f004)) ([#12050](https://github.com/dynamic-labs/dynamic-auth/issues/12050)) ([8eeec92](https://github.com/dynamic-labs/dynamic-auth/commit/8eeec923d0f2f688ade60440e1f92bb1fd646201)) ([#12088](https://github.com/dynamic-labs/dynamic-auth/issues/12088)) ([f11f1f3](https://github.com/dynamic-labs/dynamic-auth/commit/f11f1f384201fa31f58753c0854eaf17f420fb09))
86
+ * replace deprecated polygon-rpc.com RPC with polygon.drpc.org ([#12032](https://github.com/dynamic-labs/dynamic-auth/issues/12032)) ([e1ece53](https://github.com/dynamic-labs/dynamic-auth/commit/e1ece538aedf6127048ca64daf9f9f3cf3a7026e))
87
+ * **sui:** stop using Sui Foundation fullnode URLs in WaaS and extension connectors ([#12108](https://github.com/dynamic-labs/dynamic-auth/issues/12108)) ([b23c85b](https://github.com/dynamic-labs/dynamic-auth/commit/b23c85b7c06f3147705a026ba23f5e8ae1f03b68))
88
+ * **wallet-book:** use Backpack universal link for iOS in-app browser ([#12053](https://github.com/dynamic-labs/dynamic-auth/issues/12053)) ([afba6b1](https://github.com/dynamic-labs/dynamic-auth/commit/afba6b192e4be50aaeca9f5fad88b44808a034a0))
89
+ * **wallet-connect:** recover WalletConnect IndexedDB store when object store is missing ([#12048](https://github.com/dynamic-labs/dynamic-auth/issues/12048)) ([96ff80e](https://github.com/dynamic-labs/dynamic-auth/commit/96ff80e40b28740de15b1702b85f954100fd5f25))
90
+
91
+
92
+ * **react-native-extension:** store sensitive information with react-native-keychain ([#12092](https://github.com/dynamic-labs/dynamic-auth/issues/12092)) ([10c0f2f](https://github.com/dynamic-labs/dynamic-auth/commit/10c0f2f6c281e300e4a0455aaaa0d452808dcb87))
93
+ * **waas:** move the client key-share store onto the core storage API ([#12096](https://github.com/dynamic-labs/dynamic-auth/issues/12096)) ([778f993](https://github.com/dynamic-labs/dynamic-auth/commit/778f993c5528ec03a7f1446dcb81a041a22db89b)), closes [#12094](https://github.com/dynamic-labs/dynamic-auth/issues/12094) [#12094](https://github.com/dynamic-labs/dynamic-auth/issues/12094) [#12092](https://github.com/dynamic-labs/dynamic-auth/issues/12092) [#12094](https://github.com/dynamic-labs/dynamic-auth/issues/12094)
94
+
95
+
2
96
  ## [5.0.0-rc.4](https://github.com/dynamic-labs/dynamic-auth/compare/v5.0.0-rc.3...v5.0.0-rc.4) (2026-07-20)
3
97
 
4
98
 
package/package.cjs CHANGED
@@ -3,6 +3,6 @@
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
- var version = "5.0.0-rc.4";
6
+ var version = "5.1.0";
7
7
 
8
8
  exports.version = version;
package/package.js CHANGED
@@ -1,4 +1,4 @@
1
1
  'use client'
2
- var version = "5.0.0-rc.4";
2
+ var version = "5.1.0";
3
3
 
4
4
  export { version };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dynamic-labs/wallet-book",
3
- "version": "5.0.0-rc.4",
3
+ "version": "5.1.0",
4
4
  "author": "Dynamic Labs, Inc.",
5
5
  "license": "MIT",
6
6
  "main": "./src/index.cjs",
@@ -17,10 +17,10 @@
17
17
  },
18
18
  "dependencies": {
19
19
  "zod": "4.0.5",
20
- "@dynamic-labs/assert-package-version": "5.0.0-rc.4",
21
- "@dynamic-labs/iconic": "5.0.0-rc.4",
22
- "@dynamic-labs/logger": "5.0.0-rc.4",
23
- "@dynamic-labs/utils": "5.0.0-rc.4",
20
+ "@dynamic-labs/assert-package-version": "5.1.0",
21
+ "@dynamic-labs/iconic": "5.1.0",
22
+ "@dynamic-labs/logger": "5.1.0",
23
+ "@dynamic-labs/utils": "5.1.0",
24
24
  "eventemitter3": "5.0.1",
25
25
  "util": "0.12.5"
26
26
  },
@@ -1,4 +1,5 @@
1
1
  export * from './firstParty';
2
+ export * from './priorityWalletKeys';
2
3
  export * from './walletConnect';
3
4
  export * from './walletConnectOverrides';
4
5
  export * from './walletGroups';
@@ -0,0 +1,2 @@
1
+ import priorityWalletKeys from './priority-keys.json';
2
+ export { priorityWalletKeys };
@@ -72,6 +72,7 @@ export declare const walletConnectOverrides: {
72
72
  androidId: string;
73
73
  iosId: string;
74
74
  native: string;
75
+ universal: string;
75
76
  };
76
77
  };
77
78
  walletConnect: {
@@ -92,6 +93,7 @@ export declare const walletConnectOverrides: {
92
93
  androidId: string;
93
94
  iosId: string;
94
95
  native: string;
96
+ universal: string;
95
97
  };
96
98
  };
97
99
  walletConnect: {
@@ -204,6 +206,16 @@ export declare const walletConnectOverrides: {
204
206
  };
205
207
  };
206
208
  };
209
+ robinhoodwallet: {
210
+ mobile: {
211
+ action: string;
212
+ value: {
213
+ androidId: string;
214
+ iosId: string;
215
+ native: string;
216
+ };
217
+ };
218
+ };
207
219
  safepal: {
208
220
  eip6963Config: {
209
221
  action: string;
@@ -91,6 +91,7 @@ export declare const walletBookCache: {
91
91
  } | undefined;
92
92
  } | undefined;
93
93
  }>;
94
+ priority?: string[] | undefined;
94
95
  };
95
96
  };
96
97
  export declare const walletBookEmitter: EventEmitter<{
@@ -88,4 +88,5 @@ export declare const useWalletBookCdn: () => {
88
88
  } | undefined;
89
89
  } | undefined;
90
90
  }>;
91
+ priority?: string[] | undefined;
91
92
  };
@@ -31,6 +31,7 @@ var z__namespace = /*#__PURE__*/_interopNamespace(z);
31
31
  z__namespace.record(z__namespace.string(), walletSchema.walletSchema);
32
32
  const walletBookSchema = z__namespace.pipe(z__namespace.transform((val) => val), z__namespace.object({
33
33
  groups: z__namespace.record(z__namespace.string(), walletGroup.walletGroupSchema),
34
+ priority: z__namespace.optional(z__namespace.array(z__namespace.string())),
34
35
  wallets: z__namespace.record(z__namespace.string(), walletSchema.walletSchema),
35
36
  }));
36
37
  z__namespace.record(z__namespace.string(), walletGroup.walletGroupSchema);
@@ -272,6 +272,7 @@ export declare const walletBookSchema: z.ZodMiniPipe<z.ZodMiniTransform<unknown,
272
272
  name: z.ZodMiniOptional<z.ZodMiniPipe<z.ZodMiniTransform<{} | undefined, unknown>, z.ZodMiniOptional<z.ZodMiniString<string>>>>;
273
273
  }, z.core.$strip>>>;
274
274
  }, z.core.$strip>>;
275
+ priority: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
275
276
  wallets: z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniPipe<z.ZodMiniPipe<z.ZodMiniTransform<unknown, unknown>, z.ZodMiniObject<{
276
277
  brand: z.ZodMiniOptional<z.ZodMiniObject<{
277
278
  alt: z.ZodMiniOptional<z.ZodMiniPipe<z.ZodMiniTransform<{} | undefined, unknown>, z.ZodMiniOptional<z.ZodMiniString<string>>>>;
@@ -7,6 +7,7 @@ import { walletSchema } from './walletSchema.js';
7
7
  z.record(z.string(), walletSchema);
8
8
  const walletBookSchema = z.pipe(z.transform((val) => val), z.object({
9
9
  groups: z.record(z.string(), walletGroupSchema),
10
+ priority: z.optional(z.array(z.string())),
10
11
  wallets: z.record(z.string(), walletSchema),
11
12
  }));
12
13
  z.record(z.string(), walletGroupSchema);
@@ -216,6 +216,27 @@ var groups = {
216
216
  name: "Zerion"
217
217
  }
218
218
  };
219
+ var priority = [
220
+ "metamask",
221
+ "coinbase",
222
+ "fireblocks",
223
+ "baseaccount",
224
+ "phantom",
225
+ "magiceden",
226
+ "trust",
227
+ "okxwallet",
228
+ "rainbow",
229
+ "argentx",
230
+ "backpack",
231
+ "xverse",
232
+ "onekey",
233
+ "solflare",
234
+ "braavos",
235
+ "brave",
236
+ "unisat",
237
+ "bitgetwallet",
238
+ "coin98"
239
+ ];
219
240
  var wallets = {
220
241
  metamask: {
221
242
  brand: {
@@ -1198,7 +1219,8 @@ var wallets = {
1198
1219
  mobile: {
1199
1220
  androidId: "exodusmovement.exodus",
1200
1221
  iosId: "id1414384820",
1201
- native: "exodus://wc"
1222
+ native: "exodus://wc",
1223
+ universal: "https://exodus.com/m/wc"
1202
1224
  },
1203
1225
  name: "Exodus",
1204
1226
  shortName: "Exodus Wallet (EVM)",
@@ -1243,7 +1265,8 @@ var wallets = {
1243
1265
  mobile: {
1244
1266
  androidId: "exodusmovement.exodus",
1245
1267
  iosId: "id1414384820",
1246
- native: "exodus://wc"
1268
+ native: "exodus://wc",
1269
+ universal: "https://exodus.com/m/wc"
1247
1270
  },
1248
1271
  name: "Exodus",
1249
1272
  shortName: "Exodus Wallet (Solana)",
@@ -1744,8 +1767,8 @@ var wallets = {
1744
1767
  ],
1745
1768
  mobile: {
1746
1769
  androidId: "app.backpack.mobile",
1747
- inAppBrowser: "backpack://ul/v1/browse/{{encodedDappURI}}",
1748
- inAppBrowserV2: "backpack://ul/v1/browse/{{encodedDappURI}}",
1770
+ inAppBrowser: "https://backpack.app/ul/browse/?url={{encodedDappURI}}&ref={{encodedDappURI}}",
1771
+ inAppBrowserV2: "https://backpack.app/ul/browse/?url={{encodedDappURI}}&ref={{encodedDappURI}}",
1749
1772
  iosId: "id6445964121"
1750
1773
  },
1751
1774
  mobileExperience: "in-app-browser",
@@ -1862,9 +1885,11 @@ var wallets = {
1862
1885
  };
1863
1886
  var walletBookFallbacks = {
1864
1887
  groups: groups,
1888
+ priority: priority,
1865
1889
  wallets: wallets
1866
1890
  };
1867
1891
 
1868
1892
  exports["default"] = walletBookFallbacks;
1869
1893
  exports.groups = groups;
1894
+ exports.priority = priority;
1870
1895
  exports.wallets = wallets;
@@ -212,6 +212,27 @@ var groups = {
212
212
  name: "Zerion"
213
213
  }
214
214
  };
215
+ var priority = [
216
+ "metamask",
217
+ "coinbase",
218
+ "fireblocks",
219
+ "baseaccount",
220
+ "phantom",
221
+ "magiceden",
222
+ "trust",
223
+ "okxwallet",
224
+ "rainbow",
225
+ "argentx",
226
+ "backpack",
227
+ "xverse",
228
+ "onekey",
229
+ "solflare",
230
+ "braavos",
231
+ "brave",
232
+ "unisat",
233
+ "bitgetwallet",
234
+ "coin98"
235
+ ];
215
236
  var wallets = {
216
237
  metamask: {
217
238
  brand: {
@@ -1194,7 +1215,8 @@ var wallets = {
1194
1215
  mobile: {
1195
1216
  androidId: "exodusmovement.exodus",
1196
1217
  iosId: "id1414384820",
1197
- native: "exodus://wc"
1218
+ native: "exodus://wc",
1219
+ universal: "https://exodus.com/m/wc"
1198
1220
  },
1199
1221
  name: "Exodus",
1200
1222
  shortName: "Exodus Wallet (EVM)",
@@ -1239,7 +1261,8 @@ var wallets = {
1239
1261
  mobile: {
1240
1262
  androidId: "exodusmovement.exodus",
1241
1263
  iosId: "id1414384820",
1242
- native: "exodus://wc"
1264
+ native: "exodus://wc",
1265
+ universal: "https://exodus.com/m/wc"
1243
1266
  },
1244
1267
  name: "Exodus",
1245
1268
  shortName: "Exodus Wallet (Solana)",
@@ -1740,8 +1763,8 @@ var wallets = {
1740
1763
  ],
1741
1764
  mobile: {
1742
1765
  androidId: "app.backpack.mobile",
1743
- inAppBrowser: "backpack://ul/v1/browse/{{encodedDappURI}}",
1744
- inAppBrowserV2: "backpack://ul/v1/browse/{{encodedDappURI}}",
1766
+ inAppBrowser: "https://backpack.app/ul/browse/?url={{encodedDappURI}}&ref={{encodedDappURI}}",
1767
+ inAppBrowserV2: "https://backpack.app/ul/browse/?url={{encodedDappURI}}&ref={{encodedDappURI}}",
1745
1768
  iosId: "id6445964121"
1746
1769
  },
1747
1770
  mobileExperience: "in-app-browser",
@@ -1858,7 +1881,8 @@ var wallets = {
1858
1881
  };
1859
1882
  var walletBookFallbacks = {
1860
1883
  groups: groups,
1884
+ priority: priority,
1861
1885
  wallets: wallets
1862
1886
  };
1863
1887
 
1864
- export { walletBookFallbacks as default, groups, wallets };
1888
+ export { walletBookFallbacks as default, groups, priority, wallets };