@crossmint/client-sdk-smart-wallet 0.1.36 → 0.3.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.
Files changed (287) hide show
  1. package/README.md +293 -0
  2. package/dist/abi/entryPoint.cjs +1 -0
  3. package/dist/abi/entryPoint.d.cts +777 -0
  4. package/dist/abi/entryPoint.d.ts +777 -0
  5. package/dist/abi/entryPoint.js +1 -0
  6. package/dist/abi/erc1155.cjs +1 -0
  7. package/dist/abi/erc1155.d.cts +254 -0
  8. package/dist/abi/erc1155.d.ts +254 -0
  9. package/dist/abi/erc1155.js +1 -0
  10. package/dist/abi/erc20.cjs +1 -0
  11. package/dist/abi/erc20.d.cts +170 -0
  12. package/dist/abi/erc20.d.ts +170 -0
  13. package/dist/abi/erc20.js +1 -0
  14. package/dist/abi/erc721.cjs +1 -0
  15. package/dist/abi/erc721.d.cts +247 -0
  16. package/dist/abi/erc721.d.ts +247 -0
  17. package/dist/abi/erc721.js +1 -0
  18. package/dist/apiService-BYpt1gEl.d.cts +145 -0
  19. package/dist/apiService-D1sqTI5D.d.ts +145 -0
  20. package/dist/apiService.cjs +1 -0
  21. package/dist/apiService.d.cts +10 -0
  22. package/dist/apiService.d.ts +10 -0
  23. package/dist/apiService.js +1 -0
  24. package/dist/{chunk-IUIBQFWY.cjs → chunk-23IWY6XV.cjs} +1 -1
  25. package/dist/chunk-2LM65VO3.js +1 -0
  26. package/dist/chunk-2MQHIAJE.js +1 -0
  27. package/dist/chunk-2ZE5TIKL.cjs +1 -0
  28. package/dist/chunk-4PMBBA3O.cjs +1 -0
  29. package/dist/chunk-6EKMVDH4.js +1 -0
  30. package/dist/chunk-73LUJQGU.cjs +1 -0
  31. package/dist/chunk-75JNTS3U.js +1 -0
  32. package/dist/chunk-AS5VIM5V.cjs +1 -0
  33. package/dist/{chunk-2RB6U5DY.js → chunk-BF7L4FS4.js} +1 -1
  34. package/dist/chunk-DB2QM3HB.js +1 -0
  35. package/dist/chunk-F7ZYVWUR.cjs +1 -0
  36. package/dist/chunk-GGKMZPIA.js +1 -0
  37. package/dist/chunk-HQHK4WTT.js +1 -0
  38. package/dist/chunk-I5RZI2HB.js +1 -0
  39. package/dist/chunk-J5SRLI35.cjs +1 -0
  40. package/dist/chunk-JPF3ZY6Z.js +1 -0
  41. package/dist/chunk-KXYDJTZS.cjs +1 -0
  42. package/dist/chunk-LPLLPZFU.cjs +1 -0
  43. package/dist/chunk-MLTT5BGD.cjs +1 -0
  44. package/dist/chunk-MOCVP6AE.cjs +1 -0
  45. package/dist/chunk-NRMCCERQ.cjs +1 -0
  46. package/dist/chunk-NXTHA2ZL.js +1 -0
  47. package/dist/chunk-QIY34WEL.js +1 -0
  48. package/dist/chunk-UBRUUSMF.js +1 -0
  49. package/dist/chunk-VEZ3PQGX.js +1 -0
  50. package/dist/{chunk-2TPNP5FL.cjs → chunk-XVJ4PII4.cjs} +1 -1
  51. package/dist/chunk-XYN5AGKO.cjs +1 -0
  52. package/dist/error/index.cjs +1 -1
  53. package/dist/error/index.d.cts +25 -43
  54. package/dist/error/index.d.ts +25 -43
  55. package/dist/error/index.js +1 -1
  56. package/dist/error/processor.cjs +1 -1
  57. package/dist/error/processor.d.cts +0 -13
  58. package/dist/error/processor.d.ts +0 -13
  59. package/dist/error/processor.js +1 -1
  60. package/dist/evm/chains/definitions/story-testnet.cjs +1 -0
  61. package/dist/evm/chains/definitions/story-testnet.js +1 -0
  62. package/dist/evm/chains/definitions/story.cjs +1 -0
  63. package/dist/evm/chains/definitions/story.js +1 -0
  64. package/dist/evm/chains/index.cjs +1 -0
  65. package/dist/{blockchain/chains.d.cts → evm/chains/index.d.cts} +4 -7
  66. package/dist/{blockchain/chains.d.ts → evm/chains/index.d.ts} +4 -7
  67. package/dist/evm/chains/index.js +1 -0
  68. package/dist/evm/rpc.cjs +1 -0
  69. package/dist/{blockchain → evm}/rpc.d.cts +4 -3
  70. package/dist/{blockchain → evm}/rpc.d.ts +4 -3
  71. package/dist/evm/rpc.js +1 -0
  72. package/dist/evm/smartWalletClient.d.cts +64 -0
  73. package/dist/evm/smartWalletClient.d.ts +64 -0
  74. package/dist/evm/transfer.cjs +1 -0
  75. package/dist/evm/transfer.d.cts +8 -0
  76. package/dist/evm/transfer.d.ts +8 -0
  77. package/dist/evm/transfer.js +1 -0
  78. package/dist/evm/wallet.cjs +1 -0
  79. package/dist/evm/wallet.d.cts +10 -0
  80. package/dist/evm/wallet.d.ts +10 -0
  81. package/dist/evm/wallet.js +1 -0
  82. package/dist/index.cjs +1 -1
  83. package/dist/index.d.cts +9 -20
  84. package/dist/index.d.ts +9 -20
  85. package/dist/index.js +1 -1
  86. package/dist/sdk.cjs +1 -0
  87. package/dist/sdk.d.cts +45 -0
  88. package/dist/sdk.d.ts +45 -0
  89. package/dist/sdk.js +1 -0
  90. package/dist/services/index.cjs +1 -1
  91. package/dist/services/index.js +1 -1
  92. package/dist/services/logger.cjs +1 -1
  93. package/dist/services/logger.js +1 -1
  94. package/dist/smartWalletService.cjs +1 -0
  95. package/dist/smartWalletService.d.cts +10 -0
  96. package/dist/smartWalletService.d.ts +10 -0
  97. package/dist/smartWalletService.js +1 -0
  98. package/dist/types/api.d.cts +195 -0
  99. package/dist/types/api.d.ts +195 -0
  100. package/dist/types/transfer.d.cts +46 -0
  101. package/dist/types/transfer.d.ts +46 -0
  102. package/dist/utils/constants.cjs +1 -1
  103. package/dist/utils/constants.d.cts +5 -6
  104. package/dist/utils/constants.d.ts +5 -6
  105. package/dist/utils/constants.js +1 -1
  106. package/dist/utils/index.cjs +1 -0
  107. package/dist/utils/index.d.cts +3 -0
  108. package/dist/utils/index.d.ts +3 -0
  109. package/dist/utils/index.js +1 -0
  110. package/package.json +2 -7
  111. package/dist/SmartWalletSDK.cjs +0 -1
  112. package/dist/SmartWalletSDK.d.cts +0 -47
  113. package/dist/SmartWalletSDK.d.ts +0 -47
  114. package/dist/SmartWalletSDK.js +0 -1
  115. package/dist/api/CrossmintWalletService.cjs +0 -1
  116. package/dist/api/CrossmintWalletService.d.cts +0 -31
  117. package/dist/api/CrossmintWalletService.d.ts +0 -31
  118. package/dist/api/CrossmintWalletService.js +0 -1
  119. package/dist/blockchain/chains.cjs +0 -1
  120. package/dist/blockchain/chains.js +0 -1
  121. package/dist/blockchain/rpc.cjs +0 -1
  122. package/dist/blockchain/rpc.js +0 -1
  123. package/dist/blockchain/transfer.cjs +0 -1
  124. package/dist/blockchain/transfer.d.cts +0 -23
  125. package/dist/blockchain/transfer.d.ts +0 -23
  126. package/dist/blockchain/transfer.js +0 -1
  127. package/dist/blockchain/wallets/EVMSmartWallet.cjs +0 -1
  128. package/dist/blockchain/wallets/EVMSmartWallet.d.cts +0 -102
  129. package/dist/blockchain/wallets/EVMSmartWallet.d.ts +0 -102
  130. package/dist/blockchain/wallets/EVMSmartWallet.js +0 -1
  131. package/dist/blockchain/wallets/SendTransactionService.cjs +0 -1
  132. package/dist/blockchain/wallets/SendTransactionService.d.cts +0 -84
  133. package/dist/blockchain/wallets/SendTransactionService.d.ts +0 -84
  134. package/dist/blockchain/wallets/SendTransactionService.js +0 -1
  135. package/dist/blockchain/wallets/account/cache.cjs +0 -1
  136. package/dist/blockchain/wallets/account/cache.d.cts +0 -25
  137. package/dist/blockchain/wallets/account/cache.d.ts +0 -25
  138. package/dist/blockchain/wallets/account/cache.js +0 -1
  139. package/dist/blockchain/wallets/account/config.cjs +0 -1
  140. package/dist/blockchain/wallets/account/config.d.cts +0 -47
  141. package/dist/blockchain/wallets/account/config.d.ts +0 -47
  142. package/dist/blockchain/wallets/account/config.js +0 -1
  143. package/dist/blockchain/wallets/account/creator.cjs +0 -1
  144. package/dist/blockchain/wallets/account/creator.d.cts +0 -26
  145. package/dist/blockchain/wallets/account/creator.d.ts +0 -26
  146. package/dist/blockchain/wallets/account/creator.js +0 -1
  147. package/dist/blockchain/wallets/account/eoa.cjs +0 -1
  148. package/dist/blockchain/wallets/account/eoa.d.cts +0 -21
  149. package/dist/blockchain/wallets/account/eoa.d.ts +0 -21
  150. package/dist/blockchain/wallets/account/eoa.js +0 -1
  151. package/dist/blockchain/wallets/account/passkey.cjs +0 -1
  152. package/dist/blockchain/wallets/account/passkey.d.cts +0 -29
  153. package/dist/blockchain/wallets/account/passkey.d.ts +0 -29
  154. package/dist/blockchain/wallets/account/passkey.js +0 -1
  155. package/dist/blockchain/wallets/account/signer.cjs +0 -1
  156. package/dist/blockchain/wallets/account/signer.d.cts +0 -14
  157. package/dist/blockchain/wallets/account/signer.d.ts +0 -14
  158. package/dist/blockchain/wallets/account/signer.js +0 -1
  159. package/dist/blockchain/wallets/account/strategy.d.cts +0 -20
  160. package/dist/blockchain/wallets/account/strategy.d.ts +0 -20
  161. package/dist/blockchain/wallets/clientDecorator.cjs +0 -1
  162. package/dist/blockchain/wallets/clientDecorator.d.cts +0 -38
  163. package/dist/blockchain/wallets/clientDecorator.d.ts +0 -38
  164. package/dist/blockchain/wallets/clientDecorator.js +0 -1
  165. package/dist/blockchain/wallets/definitions/story-testnet.cjs +0 -1
  166. package/dist/blockchain/wallets/definitions/story-testnet.js +0 -1
  167. package/dist/blockchain/wallets/definitions/story.cjs +0 -1
  168. package/dist/blockchain/wallets/definitions/story.js +0 -1
  169. package/dist/blockchain/wallets/index.cjs +0 -1
  170. package/dist/blockchain/wallets/index.d.cts +0 -20
  171. package/dist/blockchain/wallets/index.d.ts +0 -20
  172. package/dist/blockchain/wallets/index.js +0 -1
  173. package/dist/blockchain/wallets/paymaster.cjs +0 -1
  174. package/dist/blockchain/wallets/paymaster.d.cts +0 -29
  175. package/dist/blockchain/wallets/paymaster.d.ts +0 -29
  176. package/dist/blockchain/wallets/paymaster.js +0 -1
  177. package/dist/blockchain/wallets/service.cjs +0 -1
  178. package/dist/blockchain/wallets/service.d.cts +0 -41
  179. package/dist/blockchain/wallets/service.d.ts +0 -41
  180. package/dist/blockchain/wallets/service.js +0 -1
  181. package/dist/chunk-2R6HK64N.cjs +0 -1
  182. package/dist/chunk-2ZFSHKM6.js +0 -1
  183. package/dist/chunk-3F6P4HUZ.js +0 -1
  184. package/dist/chunk-4YV6KMFQ.js +0 -1
  185. package/dist/chunk-6ODPWORJ.cjs +0 -1
  186. package/dist/chunk-7AVDZZGD.cjs +0 -1
  187. package/dist/chunk-7G7GOR7X.cjs +0 -1
  188. package/dist/chunk-ATQ4WGCW.js +0 -1
  189. package/dist/chunk-BII7Y2A3.cjs +0 -1
  190. package/dist/chunk-BJZQA5VC.js +0 -1
  191. package/dist/chunk-C3VZY7VJ.js +0 -1
  192. package/dist/chunk-CJBR5TGN.js +0 -3
  193. package/dist/chunk-CUTQYF3F.js +0 -1
  194. package/dist/chunk-D4NDUT36.js +0 -1
  195. package/dist/chunk-DIDKPOO2.cjs +0 -1
  196. package/dist/chunk-EBIEPPSD.js +0 -1
  197. package/dist/chunk-ETVJGLNY.js +0 -1
  198. package/dist/chunk-EVNFELF3.cjs +0 -3
  199. package/dist/chunk-FHNNZVNU.js +0 -1
  200. package/dist/chunk-FWARYLZ3.js +0 -1
  201. package/dist/chunk-GB35YMN4.cjs +0 -1
  202. package/dist/chunk-GGIAHBMC.js +0 -2
  203. package/dist/chunk-H4CMXNVK.js +0 -1
  204. package/dist/chunk-IQTGPM2U.cjs +0 -1
  205. package/dist/chunk-JYW5DCVU.js +0 -1
  206. package/dist/chunk-KCVR32TQ.cjs +0 -1
  207. package/dist/chunk-KREX6Z32.js +0 -1
  208. package/dist/chunk-KROX2DDP.cjs +0 -1
  209. package/dist/chunk-KYPTGHC6.cjs +0 -1
  210. package/dist/chunk-M4K3IZTT.cjs +0 -1
  211. package/dist/chunk-NLGILHJS.js +0 -1
  212. package/dist/chunk-NOTF3PP3.cjs +0 -1
  213. package/dist/chunk-NQUKI27M.cjs +0 -1
  214. package/dist/chunk-O2ACORII.cjs +0 -1
  215. package/dist/chunk-OXRLBURF.js +0 -1
  216. package/dist/chunk-PZ6Q22YJ.js +0 -1
  217. package/dist/chunk-S2XBSAGM.js +0 -1
  218. package/dist/chunk-S4V7TF5V.cjs +0 -2
  219. package/dist/chunk-SCXFZMLR.cjs +0 -1
  220. package/dist/chunk-STH2LE35.cjs +0 -1
  221. package/dist/chunk-SWWOVT47.cjs +0 -1
  222. package/dist/chunk-UG47CBKR.js +0 -1
  223. package/dist/chunk-UPURFW46.js +0 -1
  224. package/dist/chunk-WDKJ6P7K.js +0 -1
  225. package/dist/chunk-WJ6XJMRD.cjs +0 -1
  226. package/dist/chunk-XJGFG3RT.cjs +0 -1
  227. package/dist/chunk-XQ2K2K23.cjs +0 -1
  228. package/dist/chunk-XRZ2XPQM.js +0 -1
  229. package/dist/chunk-YVFO5W3R.cjs +0 -1
  230. package/dist/chunk-Z7AZOEVX.cjs +0 -1
  231. package/dist/chunk-ZQM4FEXV.js +0 -1
  232. package/dist/service-DqYCir8s.d.ts +0 -103
  233. package/dist/service-Ir-Qho-9.d.cts +0 -103
  234. package/dist/types/internal.cjs +0 -1
  235. package/dist/types/internal.d.cts +0 -14
  236. package/dist/types/internal.d.ts +0 -14
  237. package/dist/types/internal.js +0 -1
  238. package/dist/types/params.d.cts +0 -33
  239. package/dist/types/params.d.ts +0 -33
  240. package/dist/types/schema.cjs +0 -1
  241. package/dist/types/schema.d.cts +0 -241
  242. package/dist/types/schema.d.ts +0 -241
  243. package/dist/types/schema.js +0 -1
  244. package/dist/types/service.d.cts +0 -14
  245. package/dist/types/service.d.ts +0 -14
  246. package/dist/types/token.cjs +0 -1
  247. package/dist/types/token.d.cts +0 -35
  248. package/dist/types/token.d.ts +0 -35
  249. package/dist/types/token.js +0 -0
  250. package/dist/utils/api.cjs +0 -1
  251. package/dist/utils/api.d.cts +0 -4
  252. package/dist/utils/api.d.ts +0 -4
  253. package/dist/utils/api.js +0 -1
  254. package/dist/utils/blockchain.cjs +0 -1
  255. package/dist/utils/blockchain.d.cts +0 -7
  256. package/dist/utils/blockchain.d.ts +0 -7
  257. package/dist/utils/blockchain.js +0 -1
  258. package/dist/utils/environment.cjs +0 -1
  259. package/dist/utils/environment.d.cts +0 -3
  260. package/dist/utils/environment.d.ts +0 -3
  261. package/dist/utils/environment.js +0 -1
  262. package/dist/utils/helpers.cjs +0 -1
  263. package/dist/utils/helpers.d.cts +0 -4
  264. package/dist/utils/helpers.d.ts +0 -4
  265. package/dist/utils/helpers.js +0 -1
  266. package/dist/utils/signer.cjs +0 -1
  267. package/dist/utils/signer.d.cts +0 -15
  268. package/dist/utils/signer.d.ts +0 -15
  269. package/dist/utils/signer.js +0 -1
  270. package/dist/utils/test.cjs +0 -1
  271. package/dist/utils/test.d.cts +0 -18
  272. package/dist/utils/test.d.ts +0 -18
  273. package/dist/utils/test.js +0 -1
  274. /package/dist/{chunk-HQXF6VHP.cjs → chunk-5URY3C2T.cjs} +0 -0
  275. /package/dist/{chunk-DYVHPARQ.js → chunk-KVFFSUF4.js} +0 -0
  276. /package/dist/{chunk-GPZ7PHS6.cjs → chunk-MFUN74KH.cjs} +0 -0
  277. /package/dist/{chunk-NT7LBRZQ.js → chunk-XLACPZJJ.js} +0 -0
  278. /package/dist/{blockchain/wallets → evm/chains}/definitions/story-testnet.d.cts +0 -0
  279. /package/dist/{blockchain/wallets → evm/chains}/definitions/story-testnet.d.ts +0 -0
  280. /package/dist/{blockchain/wallets → evm/chains}/definitions/story.d.cts +0 -0
  281. /package/dist/{blockchain/wallets → evm/chains}/definitions/story.d.ts +0 -0
  282. /package/dist/{blockchain/wallets/account/strategy.cjs → evm/smartWalletClient.cjs} +0 -0
  283. /package/dist/{blockchain/wallets/account/strategy.js → evm/smartWalletClient.js} +0 -0
  284. /package/dist/types/{params.cjs → api.cjs} +0 -0
  285. /package/dist/types/{params.js → api.js} +0 -0
  286. /package/dist/types/{service.cjs → transfer.cjs} +0 -0
  287. /package/dist/types/{service.js → transfer.js} +0 -0
package/README.md ADDED
@@ -0,0 +1,293 @@
1
+ # Smart Wallet SDK
2
+
3
+ A client-side SDK for interacting with Crossmint Smart Wallets. This SDK enables developers to create and manage smart contract wallets that support both traditional keypair-based signing and passkey authentication.
4
+
5
+ ## Installation
6
+
7
+ ```sh
8
+ npm install @crossmint/client-sdk-smart-wallet
9
+ # or
10
+ pnpm add @crossmint/client-sdk-smart-wallet
11
+ ```
12
+
13
+ ## Authentication
14
+
15
+ This SDK uses JSON Web Tokens (JWT) to authenticate your users. JWT is generated by the auth server and used to authorize users to deploy and operate their wallets.
16
+
17
+ For detailed instructions on how to obtain a JWT token, please refer to [User Auth](https://docs.crossmint.com/wallets/quickstarts/EVM/non-custodial-wallets/evm-non-custodial-client-side#4-set-up-user-auth).
18
+
19
+ ## Quick Start
20
+
21
+ ```typescript
22
+ import { SmartWalletSDK } from "@crossmint/client-sdk-smart-wallet";
23
+ import { privateKeyToAccount } from "viem";
24
+
25
+ const sdk = SmartWalletSDK.init({ clientApiKey: "<YOUR_API_KEY>" });
26
+ const account = privateKeyToAccount(privateKey);
27
+
28
+ const wallet = await sdk.getOrCreateWallet(
29
+ {
30
+ jwt: "<USER_TOKEN>",
31
+ },
32
+ "base-sepolia",
33
+ {
34
+ signer: {
35
+ type: "VIEM_ACCOUNT",
36
+ account,
37
+ },
38
+ }
39
+ );
40
+
41
+ const address = wallet.address;
42
+ ```
43
+
44
+ ## Examples
45
+
46
+ ### Wallet Creation
47
+
48
+ #### Passkey Wallets
49
+
50
+ ```typescript
51
+ const signer = await sdk.createPasskeySigner("My Wallet")
52
+ const wallet = await sdk.getOrCreateWallet(
53
+ {
54
+ jwt: "<USER_TOKEN>",
55
+ },
56
+ "base-sepolia",
57
+ {
58
+ signer,
59
+ }
60
+ );
61
+ const address = walletClient.getAddress();
62
+ ```
63
+
64
+ #### Private Key Wallets
65
+
66
+ ```typescript
67
+ import { privateKeyToAccount } from "viem";
68
+
69
+ const account = privateKeyToAccount(privateKey);
70
+ const wallet = await sdk.getOrCreateWallet(
71
+ {
72
+ jwt: "<USER_TOKEN>",
73
+ },
74
+ "base-sepolia",
75
+ {
76
+ signer: {
77
+ type: "VIEM_ACCOUNT",
78
+ account,
79
+ },
80
+ }
81
+ );
82
+ const address = walletClient.getAddress();
83
+ ```
84
+
85
+ #### Browser Wallets
86
+
87
+ ```typescript
88
+ import type { EIP1193Provider } from "viem";
89
+
90
+ const providerSigner = window.ethereum as EIP1193Provider;
91
+ const wallet = await sdk.getOrCreateWallet(
92
+ {
93
+ jwt: "<USER_TOKEN>",
94
+ },
95
+ "base-sepolia",
96
+ {
97
+ signer: providerSigner,
98
+ }
99
+ );
100
+ ```
101
+
102
+ ### Sending Transactions
103
+
104
+ ```typescript
105
+ import { encodeFunctionData, erc20Abi } from "viem";
106
+
107
+ const walletClient = wallet.client.wallet;
108
+ const txHash = await walletClient.sendTransaction({
109
+ to: "<TOKEN_ADDRESS>",
110
+ data: encodeFunctionData({
111
+ abi: erc20Abi,
112
+ functionName: "transfer",
113
+ args: ["<RECEIVER_ADDRESS>", "<TRANSFER_AMOUNT>"],
114
+ })
115
+ })
116
+ ```
117
+
118
+ ### Signing Messages
119
+
120
+ ```typescript
121
+ const walletClient = wallet.client.wallet;
122
+ const signature = await walletClient.signMessage({
123
+ message: "Hello, Crossmint!"
124
+ })
125
+ ```
126
+
127
+ ## Migrating from `0.1.x`
128
+
129
+ `0.2.x` SDK strives to be backwards-compatible with `0.1.x` as much as possible.
130
+
131
+ However, since the wallets are now powered by Crossmint API, some functionality is not available anymore.
132
+
133
+ Specifically, some functions from the `SmartWalletClient` object are not available anymore:
134
+
135
+ - `request`
136
+ - `writeContract`
137
+ - `deployContract`
138
+ - `account`
139
+ - `sendUserOperation`
140
+ - `prepareUserOperationRequest`
141
+
142
+ Additionally, the passkey creation flow is changed. To create a passkey-powered wallet, you first create a passkey signer:
143
+
144
+ ```typescript
145
+ const signer = await sdk.createPasskeySigner("My Wallet")
146
+ ```
147
+
148
+ Then use that signer during wallet creation:
149
+
150
+ ```typescript
151
+ const wallet = await sdk.getOrCreateWallet(
152
+ {
153
+ jwt: "<USER_TOKEN>",
154
+ },
155
+ "<NETWORK>",
156
+ {
157
+ signer,
158
+ }
159
+ );
160
+ ```
161
+
162
+ ## API Reference
163
+
164
+ ### SmartWalletSDK
165
+
166
+ The main entry point for interacting with smart wallets.
167
+
168
+ #### Static Methods
169
+
170
+ ##### `init(params: SmartWalletSDKInitParams): SmartWalletSDK`
171
+
172
+ Initializes the SDK with your client-side API key.
173
+
174
+ ```typescript
175
+ const sdk = SmartWalletSDK.init({ clientApiKey: "<YOUR_API_KEY>" });
176
+ ```
177
+
178
+ #### Instance Methods
179
+
180
+ ##### `getOrCreateWallet(user: UserParams, chain: SmartWalletChain, walletParams: WalletParams): Promise<EVMSmartWallet>`
181
+
182
+ Creates or retrieves a smart wallet for the specified user.
183
+
184
+ ```typescript
185
+ const wallet = await sdk.getOrCreateWallet(
186
+ {
187
+ jwt: "<USER_TOKEN>"
188
+ },
189
+ "<NETWORK>",
190
+ {
191
+ signer: /* PasskeySigner or ExternalSigner */
192
+ }
193
+ );
194
+ ```
195
+
196
+ ##### `createPasskeySigner(name: string): Promise<PasskeySigner>`
197
+
198
+ Creates a new passkey signer with the given name.
199
+
200
+ ```typescript
201
+ const signer = await sdk.createPasskeySigner("My Wallet");
202
+ ```
203
+
204
+ ### Types
205
+
206
+ #### SmartWalletChain
207
+
208
+ Supported blockchain networks.
209
+
210
+ #### WalletParams
211
+
212
+ Configuration for wallet creation:
213
+
214
+ ```typescript
215
+ interface WalletParams {
216
+ signer: ExternalSigner | PasskeySigner;
217
+ }
218
+
219
+ // Use existing Web3 wallet or private key
220
+ type ExternalSigner = EIP1193Provider | ViemAccount;
221
+
222
+ // Use private key authentication
223
+ interface ViemAccount {
224
+ type: "VIEM_ACCOUNT";
225
+ account: LocalAccount & { source: "custom" };
226
+ };
227
+
228
+ // Use passkey authentication
229
+ interface PasskeySigner {
230
+ type: "PASSKEY";
231
+ credential: WebAuthnP256.P256Credential;
232
+ }
233
+ ```
234
+
235
+ ### EVMSmartWallet
236
+
237
+ The wallet instance returned by `getOrCreateWallet()`. Provides methods for interacting with the smart wallet:
238
+
239
+ ```typescript
240
+ interface EVMSmartWallet {
241
+ // viem clients that provide an interface for core wallet functionality.
242
+ client: {
243
+ public: PublicClient<HttpTransport>;
244
+ wallet: SmartWalletClient;
245
+ };
246
+
247
+ // The EVM chain of the smart wallet.
248
+ chain: SmartWalletChain;
249
+
250
+ // The address of the smart wallet.
251
+ address(): Address;
252
+
253
+ // Transfers tokens from the smart wallet to a specified address.
254
+ transferToken(toAddress: Address, config: TransferType): Promise<string>;
255
+
256
+ // A list of NFTs owned by the wallet.
257
+ nfts(): Promise<NftResponse>;
258
+
259
+ // Sends a contract call transaction and returns the hash of a confirmed transaction.
260
+ executeContract(params: {
261
+ address: Address;
262
+ abi: Abi;
263
+ functionName: string;
264
+ args: unknown;
265
+ }): Promise<Hex>;
266
+ }
267
+ ```
268
+
269
+ ### SmartWalletClient
270
+
271
+ The client instance available via `wallet.client.wallet`. Provides methods for interacting with the wallet:
272
+
273
+ ```typescript
274
+ interface SmartWalletClient {
275
+ // Get the wallet's address
276
+ getAddress(): Address;
277
+
278
+ // Sign a message
279
+ signMessage(message: string): Promise<Hex>;
280
+
281
+ // Sign typed data (EIP-712)
282
+ signTypedData<T extends TypedData>(params: TypedDataDefinition<T>): Promise<Hex>;
283
+
284
+ // Send a transaction
285
+ sendTransaction(params: {
286
+ to: Address;
287
+ data?: Hex;
288
+ value?: bigint;
289
+ }): Promise<Hex>;
290
+ }
291
+ ```
292
+
293
+ Full reference is available in the [docs](https://docs.crossmint.com/sdk-reference/smart-wallets/introduction).
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkKXYDJTZScjs = require('../chunk-KXYDJTZS.cjs');exports.default = _chunkKXYDJTZScjs.a;