@tatchi-xyz/sdk 0.35.0 → 0.45.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 (347) hide show
  1. package/README.md +36 -447
  2. package/dist/cjs/core/IndexedDBManager/passkeyClientDB.js +0 -42
  3. package/dist/cjs/core/IndexedDBManager/passkeyClientDB.js.map +1 -1
  4. package/dist/cjs/core/TatchiPasskey/emailRecovery.js +40 -10
  5. package/dist/cjs/core/TatchiPasskey/emailRecovery.js.map +1 -1
  6. package/dist/cjs/core/TatchiPasskey/index.js +38 -17
  7. package/dist/cjs/core/TatchiPasskey/index.js.map +1 -1
  8. package/dist/cjs/core/TatchiPasskey/linkDevice.js +0 -10
  9. package/dist/cjs/core/TatchiPasskey/linkDevice.js.map +1 -1
  10. package/dist/cjs/core/TatchiPasskey/registration.js +13 -11
  11. package/dist/cjs/core/TatchiPasskey/registration.js.map +1 -1
  12. package/dist/cjs/core/WalletIframe/client/router.js +0 -1
  13. package/dist/cjs/core/WalletIframe/client/router.js.map +1 -1
  14. package/dist/cjs/core/WebAuthnManager/LitComponents/confirm-ui.js +2 -10
  15. package/dist/cjs/core/WebAuthnManager/LitComponents/confirm-ui.js.map +1 -1
  16. package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/index.js +4 -1
  17. package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/index.js.map +1 -1
  18. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/session.js +3 -2
  19. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/session.js.map +1 -1
  20. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/ui.js +4 -4
  21. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/ui.js.map +1 -1
  22. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/determineConfirmationConfig.js +3 -9
  23. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/determineConfirmationConfig.js.map +1 -1
  24. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/localOnly.js +6 -5
  25. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/localOnly.js.map +1 -1
  26. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/registration.js +3 -2
  27. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/registration.js.map +1 -1
  28. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/transactions.js +3 -2
  29. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/transactions.js.map +1 -1
  30. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/handleSecureConfirmRequest.js +23 -13
  31. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/handleSecureConfirmRequest.js.map +1 -1
  32. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/index.js.map +1 -1
  33. package/dist/cjs/core/WebAuthnManager/index.js +13 -4
  34. package/dist/cjs/core/WebAuthnManager/index.js.map +1 -1
  35. package/dist/cjs/core/WebAuthnManager/userPreferences.js +31 -119
  36. package/dist/cjs/core/WebAuthnManager/userPreferences.js.map +1 -1
  37. package/dist/cjs/core/defaultConfigs.js +0 -1
  38. package/dist/cjs/core/defaultConfigs.js.map +1 -1
  39. package/dist/cjs/core/rpcCalls.js +37 -0
  40. package/dist/cjs/core/rpcCalls.js.map +1 -1
  41. package/dist/cjs/core/types/signer-worker.js +1 -2
  42. package/dist/cjs/core/types/signer-worker.js.map +1 -1
  43. package/dist/cjs/react/components/AccountMenuButton/index.js +56 -45
  44. package/dist/cjs/react/components/AccountMenuButton/index.js.map +1 -1
  45. package/dist/cjs/react/components/PasskeyAuthMenu/ui/EmailRecoverySlide.js +1 -1
  46. package/dist/cjs/react/components/PasskeyAuthMenu/ui/EmailRecoverySlide.js.map +1 -1
  47. package/dist/cjs/react/components/theme/ThemeProvider.js +11 -155
  48. package/dist/cjs/react/components/theme/ThemeProvider.js.map +1 -1
  49. package/dist/cjs/react/components/theme/design-tokens.js.map +1 -1
  50. package/dist/cjs/react/context/TatchiPasskeyProvider.js +7 -1
  51. package/dist/cjs/react/context/TatchiPasskeyProvider.js.map +1 -1
  52. package/dist/cjs/react/context/index.js +7 -2
  53. package/dist/cjs/react/context/index.js.map +1 -1
  54. package/dist/cjs/react/context/tatchiManagerSingleton.js +2 -6
  55. package/dist/cjs/react/context/tatchiManagerSingleton.js.map +1 -1
  56. package/dist/cjs/react/context/useTatchiContextValue.js +7 -9
  57. package/dist/cjs/react/context/useTatchiContextValue.js.map +1 -1
  58. package/dist/cjs/react/context/useTatchiWithSdkFlow.js +9 -1
  59. package/dist/cjs/react/context/useTatchiWithSdkFlow.js.map +1 -1
  60. package/dist/cjs/react/src/core/IndexedDBManager/passkeyClientDB.js +0 -42
  61. package/dist/cjs/react/src/core/IndexedDBManager/passkeyClientDB.js.map +1 -1
  62. package/dist/cjs/react/src/core/TatchiPasskey/emailRecovery.js +40 -10
  63. package/dist/cjs/react/src/core/TatchiPasskey/emailRecovery.js.map +1 -1
  64. package/dist/cjs/react/src/core/TatchiPasskey/index.js +38 -17
  65. package/dist/cjs/react/src/core/TatchiPasskey/index.js.map +1 -1
  66. package/dist/cjs/react/src/core/TatchiPasskey/linkDevice.js +0 -10
  67. package/dist/cjs/react/src/core/TatchiPasskey/linkDevice.js.map +1 -1
  68. package/dist/cjs/react/src/core/TatchiPasskey/registration.js +13 -11
  69. package/dist/cjs/react/src/core/TatchiPasskey/registration.js.map +1 -1
  70. package/dist/cjs/react/src/core/WalletIframe/client/router.js +0 -1
  71. package/dist/cjs/react/src/core/WalletIframe/client/router.js.map +1 -1
  72. package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/confirm-ui.js +2 -10
  73. package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/confirm-ui.js.map +1 -1
  74. package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/index.js +4 -1
  75. package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/index.js.map +1 -1
  76. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/session.js +3 -2
  77. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/session.js.map +1 -1
  78. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/ui.js +4 -4
  79. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/ui.js.map +1 -1
  80. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/determineConfirmationConfig.js +3 -9
  81. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/determineConfirmationConfig.js.map +1 -1
  82. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/localOnly.js +6 -5
  83. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/localOnly.js.map +1 -1
  84. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/registration.js +3 -2
  85. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/registration.js.map +1 -1
  86. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/transactions.js +3 -2
  87. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/transactions.js.map +1 -1
  88. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/handleSecureConfirmRequest.js +23 -13
  89. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/handleSecureConfirmRequest.js.map +1 -1
  90. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/index.js.map +1 -1
  91. package/dist/cjs/react/src/core/WebAuthnManager/index.js +13 -4
  92. package/dist/cjs/react/src/core/WebAuthnManager/index.js.map +1 -1
  93. package/dist/cjs/react/src/core/WebAuthnManager/userPreferences.js +31 -119
  94. package/dist/cjs/react/src/core/WebAuthnManager/userPreferences.js.map +1 -1
  95. package/dist/cjs/react/src/core/defaultConfigs.js +0 -1
  96. package/dist/cjs/react/src/core/defaultConfigs.js.map +1 -1
  97. package/dist/cjs/react/src/core/rpcCalls.js +37 -0
  98. package/dist/cjs/react/src/core/rpcCalls.js.map +1 -1
  99. package/dist/cjs/react/src/core/types/signer-worker.js +1 -2
  100. package/dist/cjs/react/src/core/types/signer-worker.js.map +1 -1
  101. package/dist/cjs/react/src/utils/theme.js +9 -0
  102. package/dist/cjs/react/src/utils/theme.js.map +1 -0
  103. package/dist/cjs/server/sdk/src/core/defaultConfigs.js.map +1 -1
  104. package/dist/cjs/utils/theme.js +9 -0
  105. package/dist/cjs/utils/theme.js.map +1 -0
  106. package/dist/esm/core/IndexedDBManager/passkeyClientDB.js +0 -42
  107. package/dist/esm/core/IndexedDBManager/passkeyClientDB.js.map +1 -1
  108. package/dist/esm/core/TatchiPasskey/emailRecovery.js +40 -10
  109. package/dist/esm/core/TatchiPasskey/emailRecovery.js.map +1 -1
  110. package/dist/esm/core/TatchiPasskey/index.js +38 -17
  111. package/dist/esm/core/TatchiPasskey/index.js.map +1 -1
  112. package/dist/esm/core/TatchiPasskey/linkDevice.js +0 -10
  113. package/dist/esm/core/TatchiPasskey/linkDevice.js.map +1 -1
  114. package/dist/esm/core/TatchiPasskey/registration.js +13 -11
  115. package/dist/esm/core/TatchiPasskey/registration.js.map +1 -1
  116. package/dist/esm/core/WalletIframe/client/router.js +0 -1
  117. package/dist/esm/core/WalletIframe/client/router.js.map +1 -1
  118. package/dist/esm/core/WebAuthnManager/LitComponents/confirm-ui.js +2 -10
  119. package/dist/esm/core/WebAuthnManager/LitComponents/confirm-ui.js.map +1 -1
  120. package/dist/esm/core/WebAuthnManager/SignerWorkerManager/index.js +4 -1
  121. package/dist/esm/core/WebAuthnManager/SignerWorkerManager/index.js.map +1 -1
  122. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/session.js +3 -2
  123. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/session.js.map +1 -1
  124. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/ui.js +4 -4
  125. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/ui.js.map +1 -1
  126. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/determineConfirmationConfig.js +3 -9
  127. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/determineConfirmationConfig.js.map +1 -1
  128. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/localOnly.js +6 -5
  129. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/localOnly.js.map +1 -1
  130. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/registration.js +3 -2
  131. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/registration.js.map +1 -1
  132. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/transactions.js +3 -2
  133. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/transactions.js.map +1 -1
  134. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/handleSecureConfirmRequest.js +23 -13
  135. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/handleSecureConfirmRequest.js.map +1 -1
  136. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/index.js.map +1 -1
  137. package/dist/esm/core/WebAuthnManager/index.js +13 -4
  138. package/dist/esm/core/WebAuthnManager/index.js.map +1 -1
  139. package/dist/esm/core/WebAuthnManager/userPreferences.js +31 -119
  140. package/dist/esm/core/WebAuthnManager/userPreferences.js.map +1 -1
  141. package/dist/esm/core/defaultConfigs.js +0 -1
  142. package/dist/esm/core/defaultConfigs.js.map +1 -1
  143. package/dist/esm/core/rpcCalls.js +37 -1
  144. package/dist/esm/core/rpcCalls.js.map +1 -1
  145. package/dist/esm/core/types/signer-worker.js +1 -2
  146. package/dist/esm/core/types/signer-worker.js.map +1 -1
  147. package/dist/esm/react/components/AccountMenuButton/index.js +56 -45
  148. package/dist/esm/react/components/AccountMenuButton/index.js.map +1 -1
  149. package/dist/esm/react/components/PasskeyAuthMenu/ui/EmailRecoverySlide.js +1 -1
  150. package/dist/esm/react/components/PasskeyAuthMenu/ui/EmailRecoverySlide.js.map +1 -1
  151. package/dist/esm/react/components/theme/ThemeProvider.js +11 -155
  152. package/dist/esm/react/components/theme/ThemeProvider.js.map +1 -1
  153. package/dist/esm/react/components/theme/design-tokens.js.map +1 -1
  154. package/dist/esm/react/context/TatchiPasskeyProvider.js +7 -1
  155. package/dist/esm/react/context/TatchiPasskeyProvider.js.map +1 -1
  156. package/dist/esm/react/context/index.js +8 -3
  157. package/dist/esm/react/context/index.js.map +1 -1
  158. package/dist/esm/react/context/tatchiManagerSingleton.js +2 -6
  159. package/dist/esm/react/context/tatchiManagerSingleton.js.map +1 -1
  160. package/dist/esm/react/context/useTatchiContextValue.js +7 -9
  161. package/dist/esm/react/context/useTatchiContextValue.js.map +1 -1
  162. package/dist/esm/react/context/useTatchiWithSdkFlow.js +9 -1
  163. package/dist/esm/react/context/useTatchiWithSdkFlow.js.map +1 -1
  164. package/dist/esm/react/src/core/IndexedDBManager/passkeyClientDB.js +0 -42
  165. package/dist/esm/react/src/core/IndexedDBManager/passkeyClientDB.js.map +1 -1
  166. package/dist/esm/react/src/core/TatchiPasskey/emailRecovery.js +40 -10
  167. package/dist/esm/react/src/core/TatchiPasskey/emailRecovery.js.map +1 -1
  168. package/dist/esm/react/src/core/TatchiPasskey/index.js +38 -17
  169. package/dist/esm/react/src/core/TatchiPasskey/index.js.map +1 -1
  170. package/dist/esm/react/src/core/TatchiPasskey/linkDevice.js +0 -10
  171. package/dist/esm/react/src/core/TatchiPasskey/linkDevice.js.map +1 -1
  172. package/dist/esm/react/src/core/TatchiPasskey/registration.js +13 -11
  173. package/dist/esm/react/src/core/TatchiPasskey/registration.js.map +1 -1
  174. package/dist/esm/react/src/core/WalletIframe/client/router.js +0 -1
  175. package/dist/esm/react/src/core/WalletIframe/client/router.js.map +1 -1
  176. package/dist/esm/react/src/core/WebAuthnManager/LitComponents/confirm-ui.js +2 -10
  177. package/dist/esm/react/src/core/WebAuthnManager/LitComponents/confirm-ui.js.map +1 -1
  178. package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/index.js +4 -1
  179. package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/index.js.map +1 -1
  180. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/session.js +3 -2
  181. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/session.js.map +1 -1
  182. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/ui.js +4 -4
  183. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/ui.js.map +1 -1
  184. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/determineConfirmationConfig.js +3 -9
  185. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/determineConfirmationConfig.js.map +1 -1
  186. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/localOnly.js +6 -5
  187. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/localOnly.js.map +1 -1
  188. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/registration.js +3 -2
  189. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/registration.js.map +1 -1
  190. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/transactions.js +3 -2
  191. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/transactions.js.map +1 -1
  192. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/handleSecureConfirmRequest.js +23 -13
  193. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/handleSecureConfirmRequest.js.map +1 -1
  194. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/index.js.map +1 -1
  195. package/dist/esm/react/src/core/WebAuthnManager/index.js +13 -4
  196. package/dist/esm/react/src/core/WebAuthnManager/index.js.map +1 -1
  197. package/dist/esm/react/src/core/WebAuthnManager/userPreferences.js +31 -119
  198. package/dist/esm/react/src/core/WebAuthnManager/userPreferences.js.map +1 -1
  199. package/dist/esm/react/src/core/defaultConfigs.js +0 -1
  200. package/dist/esm/react/src/core/defaultConfigs.js.map +1 -1
  201. package/dist/esm/react/src/core/rpcCalls.js +37 -1
  202. package/dist/esm/react/src/core/rpcCalls.js.map +1 -1
  203. package/dist/esm/react/src/core/types/signer-worker.js +1 -2
  204. package/dist/esm/react/src/core/types/signer-worker.js.map +1 -1
  205. package/dist/esm/react/src/utils/theme.js +8 -0
  206. package/dist/esm/react/src/utils/theme.js.map +1 -0
  207. package/dist/esm/react/styles/styles.css +0 -121
  208. package/dist/esm/sdk/{EmailRecovery-CV5BmNEj.js → EmailRecovery-0_FK1zm_.js} +1 -1
  209. package/dist/esm/sdk/{EmailRecovery-DQonrYVY.js → EmailRecovery-D996wUrL.js} +4 -4
  210. package/dist/esm/sdk/{IndexedDBManager-CmdN7smS.js → IndexedDBManager-CNJlworQ.js} +2 -44
  211. package/dist/esm/sdk/{createAdapters-DF32SIZa.js → createAdapters-B26G-xfI.js} +9 -16
  212. package/dist/esm/sdk/{createAdapters-4c8mBiD5.js → createAdapters-NCOOvHKB.js} +10 -17
  213. package/dist/esm/sdk/{createAdapters-4c8mBiD5.js.map → createAdapters-NCOOvHKB.js.map} +1 -1
  214. package/dist/esm/sdk/{defaultConfigs-BQqiXif-.js → defaultConfigs-BgjIYavi.js} +1 -2
  215. package/dist/esm/sdk/{delegateAction-or7w7sod.js → delegateAction-DZzVi1bn.js} +1 -1
  216. package/dist/esm/sdk/{emailRecovery-DEgVvNYL.js → emailRecovery-CYdWdQrI.js} +46 -16
  217. package/dist/esm/sdk/{getDeviceNumber-WiNzKx1x.js → getDeviceNumber-aa3xNnaG.js} +2 -4
  218. package/dist/esm/sdk/{getDeviceNumber-WiNzKx1x.js.map → getDeviceNumber-aa3xNnaG.js.map} +1 -1
  219. package/dist/esm/sdk/{host-mode-BH5NpIt_.js → host-mode-BIUqo9hg.js} +1 -1
  220. package/dist/esm/sdk/{linkDevice-LHcgAzQ7.js → linkDevice-D8sK1fZ3.js} +6 -16
  221. package/dist/esm/sdk/{localOnly-DYjGl1Fl.js → localOnly-CQOX1pqN.js} +9 -8
  222. package/dist/esm/sdk/{localOnly-COpDBMkm.js → localOnly-DKksw6Zt.js} +8 -7
  223. package/dist/esm/sdk/localOnly-DKksw6Zt.js.map +1 -0
  224. package/dist/esm/sdk/{login-DUIWZHp_.js → login-DorWOltD.js} +2 -2
  225. package/dist/esm/sdk/offline-export-app.js +86 -196
  226. package/dist/esm/sdk/offline-export-app.js.map +1 -1
  227. package/dist/esm/sdk/{registration-R70lvG_o.js → registration-CGNNpYB4.js} +5 -4
  228. package/dist/esm/sdk/registration-CGNNpYB4.js.map +1 -0
  229. package/dist/esm/sdk/{registration-CB6VrAUS.js → registration-CRD5afRG.js} +4 -3
  230. package/dist/esm/sdk/{router-Rde0m7gu.js → router-DbB37GdZ.js} +2 -3
  231. package/dist/esm/sdk/{rpcCalls-VL4loDKP.js → rpcCalls-BQyx4G4W.js} +38 -2
  232. package/dist/esm/sdk/rpcCalls-D-0naH80.js +12 -0
  233. package/dist/esm/sdk/{scanDevice-VU_re6cb.js → scanDevice-CGda1FFv.js} +5 -5
  234. package/dist/esm/sdk/{signNEP413-BhAKb9KH.js → signNEP413-D6ToBnSM.js} +1 -1
  235. package/dist/esm/sdk/{signer-worker-DK847sXj.js → signer-worker-C69_aya9.js} +1 -2
  236. package/dist/esm/sdk/{syncAccount-Br9J8FNx.js → syncAccount-BXs9TPhP.js} +2 -2
  237. package/dist/esm/sdk/{syncAccount-p19TuDxm.js → syncAccount-DZrSqM1m.js} +5 -5
  238. package/dist/esm/sdk/{transactions-B7u7JBL2.js → transactions-Bi6hJqg0.js} +6 -5
  239. package/dist/esm/sdk/{transactions-CxsklyCK.js → transactions-CuIEW7P-.js} +6 -5
  240. package/dist/esm/sdk/transactions-CuIEW7P-.js.map +1 -0
  241. package/dist/esm/sdk/tx-confirm-ui.js +2 -10
  242. package/dist/esm/sdk/wallet-iframe-host.js +166 -207
  243. package/dist/esm/server/sdk/src/core/defaultConfigs.js.map +1 -1
  244. package/dist/esm/utils/theme.js +8 -0
  245. package/dist/esm/utils/theme.js.map +1 -0
  246. package/dist/esm/wasm_vrf_worker/pkg/wasm_vrf_worker_bg.wasm +0 -0
  247. package/dist/types/src/__tests__/e2e/thresholdEd25519.testUtils.d.ts +3 -0
  248. package/dist/types/src/__tests__/e2e/thresholdEd25519.testUtils.d.ts.map +1 -1
  249. package/dist/types/src/__tests__/setup/bypasses.d.ts.map +1 -1
  250. package/dist/types/src/__tests__/setup/index.d.ts +0 -2
  251. package/dist/types/src/__tests__/setup/index.d.ts.map +1 -1
  252. package/dist/types/src/core/IndexedDBManager/passkeyClientDB.d.ts +0 -24
  253. package/dist/types/src/core/IndexedDBManager/passkeyClientDB.d.ts.map +1 -1
  254. package/dist/types/src/core/OfflineExport/offline-export-app.d.ts.map +1 -1
  255. package/dist/types/src/core/TatchiPasskey/emailRecovery.d.ts +1 -0
  256. package/dist/types/src/core/TatchiPasskey/emailRecovery.d.ts.map +1 -1
  257. package/dist/types/src/core/TatchiPasskey/index.d.ts +13 -3
  258. package/dist/types/src/core/TatchiPasskey/index.d.ts.map +1 -1
  259. package/dist/types/src/core/TatchiPasskey/linkDevice.d.ts.map +1 -1
  260. package/dist/types/src/core/TatchiPasskey/registration.d.ts.map +1 -1
  261. package/dist/types/src/core/WalletIframe/TatchiPasskeyIframe.d.ts +4 -8
  262. package/dist/types/src/core/WalletIframe/TatchiPasskeyIframe.d.ts.map +1 -1
  263. package/dist/types/src/core/WalletIframe/client/router.d.ts +0 -1
  264. package/dist/types/src/core/WalletIframe/client/router.d.ts.map +1 -1
  265. package/dist/types/src/core/WalletIframe/host/context.d.ts +0 -1
  266. package/dist/types/src/core/WalletIframe/host/context.d.ts.map +1 -1
  267. package/dist/types/src/core/WalletIframe/host/wallet-iframe-handlers.d.ts.map +1 -1
  268. package/dist/types/src/core/WalletIframe/host/wallet-iframe-host.d.ts.map +1 -1
  269. package/dist/types/src/core/WalletIframe/shared/messages.d.ts +11 -12
  270. package/dist/types/src/core/WalletIframe/shared/messages.d.ts.map +1 -1
  271. package/dist/types/src/core/WebAuthnManager/LitComponents/confirm-ui.d.ts.map +1 -1
  272. package/dist/types/src/core/WebAuthnManager/SignerWorkerManager/index.d.ts +4 -1
  273. package/dist/types/src/core/WebAuthnManager/SignerWorkerManager/index.d.ts.map +1 -1
  274. package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/interfaces.d.ts +2 -0
  275. package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/interfaces.d.ts.map +1 -1
  276. package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/session.d.ts +3 -1
  277. package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/session.d.ts.map +1 -1
  278. package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/ui.d.ts +3 -1
  279. package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/ui.d.ts.map +1 -1
  280. package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/determineConfirmationConfig.d.ts +1 -1
  281. package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/determineConfirmationConfig.d.ts.map +1 -1
  282. package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/localOnly.d.ts +2 -0
  283. package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/localOnly.d.ts.map +1 -1
  284. package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/registration.d.ts +2 -0
  285. package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/registration.d.ts.map +1 -1
  286. package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/transactions.d.ts +2 -0
  287. package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/transactions.d.ts.map +1 -1
  288. package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/handleSecureConfirmRequest.d.ts.map +1 -1
  289. package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/index.d.ts +2 -0
  290. package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/index.d.ts.map +1 -1
  291. package/dist/types/src/core/WebAuthnManager/index.d.ts +4 -1
  292. package/dist/types/src/core/WebAuthnManager/index.d.ts.map +1 -1
  293. package/dist/types/src/core/WebAuthnManager/userPreferences.d.ts +5 -29
  294. package/dist/types/src/core/WebAuthnManager/userPreferences.d.ts.map +1 -1
  295. package/dist/types/src/core/defaultConfigs.d.ts.map +1 -1
  296. package/dist/types/src/core/rpcCalls.d.ts +11 -0
  297. package/dist/types/src/core/rpcCalls.d.ts.map +1 -1
  298. package/dist/types/src/core/types/signer-worker.d.ts +0 -2
  299. package/dist/types/src/core/types/signer-worker.d.ts.map +1 -1
  300. package/dist/types/src/core/types/tatchi.d.ts +1 -2
  301. package/dist/types/src/core/types/tatchi.d.ts.map +1 -1
  302. package/dist/types/src/react/components/AccountMenuButton/index.d.ts.map +1 -1
  303. package/dist/types/src/react/components/PasskeyAuthMenu/ui/EmailRecoverySlide.d.ts.map +1 -1
  304. package/dist/types/src/react/components/theme/ThemeProvider.d.ts +0 -10
  305. package/dist/types/src/react/components/theme/ThemeProvider.d.ts.map +1 -1
  306. package/dist/types/src/react/components/theme/design-tokens.d.ts +0 -2
  307. package/dist/types/src/react/components/theme/design-tokens.d.ts.map +1 -1
  308. package/dist/types/src/react/components/theme/index.d.ts +1 -1
  309. package/dist/types/src/react/components/theme/index.d.ts.map +1 -1
  310. package/dist/types/src/react/context/TatchiPasskeyProvider.d.ts +5 -2
  311. package/dist/types/src/react/context/TatchiPasskeyProvider.d.ts.map +1 -1
  312. package/dist/types/src/react/context/index.d.ts.map +1 -1
  313. package/dist/types/src/react/context/tatchiManagerSingleton.d.ts.map +1 -1
  314. package/dist/types/src/react/context/useTatchiContextValue.d.ts +2 -0
  315. package/dist/types/src/react/context/useTatchiContextValue.d.ts.map +1 -1
  316. package/dist/types/src/react/context/useTatchiWithSdkFlow.d.ts +1 -0
  317. package/dist/types/src/react/context/useTatchiWithSdkFlow.d.ts.map +1 -1
  318. package/dist/types/src/react/index.d.ts +1 -1
  319. package/dist/types/src/react/index.d.ts.map +1 -1
  320. package/dist/types/src/react/types.d.ts +8 -1
  321. package/dist/types/src/react/types.d.ts.map +1 -1
  322. package/dist/types/src/utils/index.d.ts +1 -0
  323. package/dist/types/src/utils/index.d.ts.map +1 -1
  324. package/dist/types/src/utils/theme.d.ts +2 -0
  325. package/dist/types/src/utils/theme.d.ts.map +1 -0
  326. package/dist/workers/wasm_vrf_worker_bg.wasm +0 -0
  327. package/package.json +1 -1
  328. package/dist/cjs/core/TatchiPasskey/themePreference.js +0 -40
  329. package/dist/cjs/core/TatchiPasskey/themePreference.js.map +0 -1
  330. package/dist/cjs/react/src/core/TatchiPasskey/themePreference.js +0 -40
  331. package/dist/cjs/react/src/core/TatchiPasskey/themePreference.js.map +0 -1
  332. package/dist/esm/core/TatchiPasskey/themePreference.js +0 -40
  333. package/dist/esm/core/TatchiPasskey/themePreference.js.map +0 -1
  334. package/dist/esm/react/src/core/TatchiPasskey/themePreference.js +0 -40
  335. package/dist/esm/react/src/core/TatchiPasskey/themePreference.js.map +0 -1
  336. package/dist/esm/sdk/localOnly-COpDBMkm.js.map +0 -1
  337. package/dist/esm/sdk/registration-R70lvG_o.js.map +0 -1
  338. package/dist/esm/sdk/rpcCalls-C1sp-Epo.js +0 -12
  339. package/dist/esm/sdk/themePreference-Ceg1CNAd.js +0 -39
  340. package/dist/esm/sdk/transactions-CxsklyCK.js.map +0 -1
  341. package/dist/types/src/core/TatchiPasskey/themePreference.d.ts +0 -17
  342. package/dist/types/src/core/TatchiPasskey/themePreference.d.ts.map +0 -1
  343. package/dist/types/src/react/components/AccountMenuButton/Slider.d.ts +0 -18
  344. package/dist/types/src/react/components/AccountMenuButton/Slider.d.ts.map +0 -1
  345. /package/dist/esm/sdk/{browser-C-W52ASM.js → browser-CH0Ca-MX.js} +0 -0
  346. /package/dist/esm/sdk/{iframe-host-Cjfha7dm.js → iframe-host-BVt1hvOt.js} +0 -0
  347. /package/dist/esm/sdk/{relay-DS3eAJdt.js → relay-BCEyWFew.js} +0 -0
package/README.md CHANGED
@@ -1,20 +1,14 @@
1
1
  # Web3Authn SDK
2
2
 
3
- PasskeyWallet SDK for NEAR Protocol. Secure, embedded wallet powered by WebAuthn PRF, cross-origin iframe isolation, and WASM-based cryptography.
4
-
5
- ## What's Inside
6
-
7
- This package provides everything you need to integrate passkey-based wallets into your NEAR applications:
3
+ Passkey wallet SDK for NEAR Protocol. An embedded wallet powered by VRF WebAuthn, cross-origin iframe isolation, and WASM-based cryptography.
8
4
 
5
+ Featuring:
9
6
  - **Core SDK**: Framework-agnostic JavaScript/TypeScript library
10
7
  - **React Components**: Drop-in components and hooks for React applications
11
- - **WASM Workers**: High-performance cryptographic operations (signing and VRF)
12
- - **Vite Plugins**: Development and build tools for seamless integration
8
+ - **Plugins**: plugins to setup the right headers for Vite, Next.js, etc
13
9
 
14
10
  ## Installation
15
11
 
16
- ### For End Users
17
-
18
12
  Install the published package:
19
13
 
20
14
  ```bash
@@ -25,26 +19,8 @@ pnpm add @tatchi-xyz/sdk
25
19
  yarn add @tatchi-xyz/sdk
26
20
  ```
27
21
 
28
- That's it—no build tools required. The package includes pre-compiled WASM modules and bundled JavaScript.
29
-
30
22
  ### For SDK Developers
31
23
 
32
- If you're contributing to the SDK or building from source:
33
-
34
- **Prerequisites**:
35
- ```bash
36
- # Install Rust
37
- curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
38
-
39
- # Install wasm-pack
40
- curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
41
-
42
- # Add WASM target
43
- rustup target add wasm32-unknown-unknown
44
-
45
- # Install pnpm
46
- npm install -g pnpm
47
- ```
48
24
 
49
25
  **Build**:
50
26
  ```bash
@@ -60,154 +36,50 @@ pnpm -C sdk test # Playwright tests
60
36
  pnpm -C sdk run type-check # TypeScript validation
61
37
  ```
62
38
 
63
- ---
64
-
65
39
  ## Quick Start
66
40
 
67
41
  ### React Integration
68
42
 
69
- The easiest way to get started with React:
70
-
71
- Requires React 18+ (React 18 or 19). The core SDK works without React.
43
+ The easiest way to get started with React (React 18+)
72
44
 
73
45
  ```tsx
74
- import { PasskeyProvider, usePasskeyManager, PASSKEY_MANAGER_DEFAULT_CONFIGS } from '@tatchi-xyz/sdk/react'
46
+ import { TatchiPasskeyProvider, useTatchi } from '@tatchi-xyz/sdk/react'
75
47
 
76
48
  function App() {
77
49
  return (
78
- <PasskeyProvider
50
+ <TatchiPasskeyProvider
79
51
  config={{
80
- ...PASSKEY_MANAGER_DEFAULT_CONFIGS,
52
+ nearRpcUrl: 'https://rpc.testnet.near.org',
53
+ nearNetwork: 'testnet',
54
+ contractId: 'w3a-v1.testnet',
81
55
  iframeWallet: {
82
- walletOrigin: 'https://wallet.example.com',
83
- walletServicePath: '/wallet-service',
84
- // Optional: Credential scope strategy
85
- // rpIdOverride: 'example.com'
86
- }
56
+ walletOrigin: 'https://wallet.web3authn.org',
57
+ },
58
+ relayer: {
59
+ url: 'https://relay-server.example.com',
60
+ },
87
61
  }}
88
62
  >
89
63
  <YourApp />
90
- </PasskeyProvider>
64
+ </TatchiPasskeyProvider>
91
65
  )
92
66
  }
93
67
 
94
68
  function SignInButton() {
95
- const tatchi = usePasskeyManager()
69
+ const tatchi = useTatchi()
96
70
 
97
71
  const handleSignIn = async () => {
98
- const result = await tatchi.registerPasskey({
99
- username: 'alice',
100
- nearAccountId: 'alice.testnet'
101
- })
102
- console.log('Registered:', result.credentialId)
72
+ const result = await tatchi.registerPasskey('alice.testnet')
73
+ console.log('Registered:', result.success)
103
74
  }
104
75
 
105
76
  return <button onClick={handleSignIn}>Sign In with Passkey</button>
106
77
  }
107
78
  ```
108
79
 
109
- ### Vanilla TypeScript
110
-
111
- For non-React applications or custom integrations:
112
-
113
- ```typescript
114
- import { TatchiPasskey } from '@tatchi-xyz/sdk'
115
-
116
- const tatchi = new TatchiPasskey({
117
- nearRpcUrl: 'https://rpc.testnet.near.org',
118
- nearNetwork: 'testnet',
119
- contractId: 'w3a-v1.testnet',
120
- iframeWallet: {
121
- walletOrigin: 'https://wallet.example.com',
122
- walletServicePath: '/wallet-service',
123
- }
124
- })
125
-
126
- // Initialize the wallet iframe
127
- await tatchi.initWalletIframe()
128
-
129
- // Register a new passkey
130
- const registration = await tatchi.registerPasskey({
131
- username: 'alice',
132
- nearAccountId: 'alice.testnet'
133
- })
134
-
135
- // Sign transactions
136
- const result = await tatchi.signTransactionsWithActions({
137
- nearAccountId: 'alice.testnet',
138
- transactions: [{
139
- receiverId: 'contract.testnet',
140
- actions: [{
141
- type: 'FunctionCall',
142
- method_name: 'my_method',
143
- args: JSON.stringify({ arg: 'value' }),
144
- gas: '50000000000000',
145
- deposit: '0'
146
- }]
147
- }]
148
- })
149
-
150
- console.log('Transaction hash:', result.transactionHash)
151
- ```
152
-
153
- ---
154
-
155
- ## Wallet Iframe Architecture
156
-
157
- The SDK isolates all sensitive operations in a cross-origin iframe for maximum security.
158
-
159
- ### Why Iframe Isolation?
160
-
161
- Traditional web wallets store keys in the same JavaScript context as your application. This means:
162
-
163
- - XSS vulnerabilities can steal keys
164
- - Malicious dependencies can exfiltrate secrets
165
- - One bug compromises everything
166
-
167
- **The solution**: Run the wallet in a separate security origin (e.g., `wallet.example.com`). Your app communicates via secure MessageChannel, but can never access keys directly.
168
-
169
- ### Configuration
170
-
171
- **Recommended** (dedicated wallet origin):
172
- ```tsx
173
- iframeWallet: {
174
- walletOrigin: 'https://wallet.example.com',
175
- walletServicePath: '/wallet-service',
176
- }
177
- ```
178
-
179
- **Fallback** (same-origin, for quick start):
180
- ```tsx
181
- // Omit iframeWallet entirely
182
- // SDK will run inline with console warnings
183
- ```
184
-
185
- For same-origin deployments, the SDK emits console warnings since the parent can observe secrets. This is convenient for quick starts but not recommended for production.
186
-
187
- ### Hosting Requirements
188
-
189
- When using a dedicated wallet origin, you need to serve:
190
-
191
- **1. SDK Assets** (`/sdk/*`):
192
- - `/sdk/workers/web3authn-signer.worker.js`
193
- - `/sdk/workers/web3authn-vrf.worker.js`
194
- - `/sdk/wallet-iframe-host.js`
195
- - Various CSS and component bundles
196
-
197
- **2. Wallet Service Page** (`/wallet-service`):
198
- - HTML page that loads the wallet iframe host module
199
-
200
- **Development**: The `tatchiDev` Vite plugin serves these automatically.
201
-
202
- **Production**: Deploy with your wallet site, or use the `tatchiBuildHeaders` plugin to generate appropriate headers.
203
-
204
- ---
205
-
206
80
  ## Vite Plugin Integration
207
81
 
208
- The SDK includes Vite plugins for development and production builds:
209
-
210
- ### Development Setup
82
+ Use the Vite plugins to serve wallet assets in dev and emit the right headers for production.
211
83
 
212
84
  ```typescript
213
85
  // vite.config.ts
@@ -218,65 +90,22 @@ import { tatchiDev, tatchiBuildHeaders } from '@tatchi-xyz/sdk/plugins/vite'
218
90
  export default defineConfig({
219
91
  plugins: [
220
92
  react(),
221
-
222
- // Development: Serves wallet assets locally
223
93
  tatchiDev({
94
+ walletOrigin: process.env.VITE_WALLET_ORIGIN,
224
95
  sdkBasePath: '/sdk',
225
96
  walletServicePath: '/wallet-service',
226
- walletOrigin: process.env.VITE_WALLET_ORIGIN
227
97
  }),
228
-
229
- // Production: Sets security headers
230
98
  tatchiBuildHeaders({
231
- walletOrigin: process.env.VITE_WALLET_ORIGIN
232
- })
99
+ walletOrigin: process.env.VITE_WALLET_ORIGIN,
100
+ }),
233
101
  ]
234
102
  })
235
103
  ```
236
104
 
237
- ### What The Plugins Do
238
-
239
- **`tatchiDev`**:
240
- - Serves `/sdk/*` assets during development
241
- - Mounts `/wallet-service` endpoint
242
- - Enforces WASM MIME type
243
- - Optionally sets COOP/COEP headers (configurable)
244
-
245
- **`tatchiBuildHeaders`**:
246
- - Generates Permissions-Policy header for WebAuthn delegation
247
- - Emits `_headers` file for Netlify/Cloudflare Pages deployments
248
- - Ensures iframe can call `navigator.credentials.*`
249
-
250
- ### Plugin Options
251
-
252
- ```typescript
253
- tatchiDev({
254
- mode: 'self-contained', // or 'front-only', 'wallet-only'
255
- sdkBasePath: '/sdk', // Mount path for assets
256
- walletServicePath: '/wallet-service', // Wallet service route
257
- walletOrigin: 'https://wallet.example.com', // For Permissions-Policy
258
- setDevHeaders: true, // Enable COOP/COEP in dev
259
- coepMode: 'strict', // 'strict' (default) or 'off'
260
- enableDebugRoutes: false // Add /__sdk-root debug endpoint
261
- })
262
- ```
263
-
264
- ### Debugging
265
-
266
- Enable debug routes to verify asset resolution:
267
-
268
- ```typescript
269
- tatchiDev({ enableDebugRoutes: true })
270
- ```
271
-
272
- Then visit `http://localhost:5173/__sdk-root` to see the resolved SDK path.
273
-
274
- ---
105
+ See `examples/next-js` for other examples.
275
106
 
276
107
  ## Configuration Options
277
108
 
278
- ### Core Configuration
279
-
280
109
  ```typescript
281
110
  interface TatchiPasskeyConfig {
282
111
  // NEAR blockchain settings
@@ -286,85 +115,34 @@ interface TatchiPasskeyConfig {
286
115
 
287
116
  // Wallet iframe settings (recommended)
288
117
  iframeWallet?: {
289
- walletOrigin: string // e.g., 'https://wallet.example.com'
118
+ walletOrigin: string // e.g., 'https://wallet.web3authn.org'
290
119
  walletServicePath?: string // Default: '/wallet-service'
291
120
  rpIdOverride?: string // Optional: Credential scope override
292
121
  }
293
122
 
294
123
  // Optional relay server (for account creation & Shamir 3-pass)
295
- relayUrl?: string
124
+ relayer?: {
125
+ url: string
126
+ }
296
127
 
297
- // Optional theme customization
298
- theme?: 'light' | 'dark' | 'auto'
299
128
  }
300
129
  ```
301
130
 
302
- ### rpId Strategy
303
-
304
- The `rpIdOverride` option controls credential scoping:
305
-
306
- **Undefined** (wallet-scoped):
307
- - One passkey works across all apps using this wallet
308
- - Good for multi-tenant wallet services
309
- - Requires ROR configuration for Safari
310
-
311
- **App domain** (app-scoped):
312
- - Credentials tied to your product's domain
313
- - Works across `*.example.com` subdomains
314
- - Simpler Safari integration
315
-
316
- See [Credential Scope Strategy](../examples/tatchi-docs/src/docs/concepts/wallet-scoped-credentials.md) for detailed guidance.
317
131
 
318
- ---
319
-
320
- ## Shamir 3-Pass (Auto-Login)
321
-
322
- The SDK includes optional Shamir 3-pass protocol for smooth login UX.
323
-
324
- ### What It Does
325
-
326
- Normally, every login requires TouchID/FaceID. With Shamir 3-pass, returning users can log in without biometric prompts—the SDK cooperates with a relay server to unlock keys.
327
-
328
- **Security**: The relay never sees plaintext keys or key-encryption keys. It only handles blinded values that can't be used alone.
132
+ ## Wallet Iframe Architecture
329
133
 
330
- ### Server Endpoints
134
+ The SDK isolates all sensitive operations in a cross-origin iframe (e.g., `wallet.web3authn.org`). Your app communicates via secure MessageChannel, but can never access keys directly.
331
135
 
332
- **Apply Server Lock**:
333
- ```
334
- POST /vrf/apply-server-lock
335
- Request: { "kek_c_b64u": "..." }
336
- Response: { "kek_cs_b64u": "...", "keyId": "sha256(...)" }
337
- ```
338
-
339
- **Remove Server Lock**:
340
- ```
341
- POST /vrf/remove-server-lock
342
- Request: { "kek_st_b64u": "...", "keyId": "..." }
343
- Response: { "kek_t_b64u": "..." }
344
- ```
136
+ ### Configuration
345
137
 
346
- **Get Key Info**:
347
- ```
348
- GET /shamir/key-info
349
- Response: {
350
- "currentKeyId": "...",
351
- "p_b64u": "...",
352
- "graceKeyIds": ["..."]
138
+ **Recommended** (dedicated wallet origin):
139
+ ```tsx
140
+ iframeWallet: {
141
+ walletOrigin: 'https://wallet.web3authn.org',
142
+ walletServicePath: '/wallet-service',
353
143
  }
354
144
  ```
355
145
 
356
- ### Key Rotation
357
-
358
- Servers should rotate keys periodically. The SDK handles migration transparently:
359
-
360
- 1. After unlock, SDK checks current `keyId`
361
- 2. If different from stored value, SDK re-wraps with new key
362
- 3. Old keys stay in grace period temporarily
363
- 4. Clients migrate automatically on next login
364
-
365
- Grace keys allow rotation without breaking existing sessions. Keep the grace window short (24-48 hours) and prune old keys aggressively.
366
-
367
- ---
368
146
 
369
147
  ## Project Structure
370
148
 
@@ -394,194 +172,6 @@ sdk/
394
172
  └── README.md # This file
395
173
  ```
396
174
 
397
- ## Build System
398
-
399
- The SDK uses **Rolldown** for JavaScript bundling and **wasm-pack** for Rust compilation.
400
-
401
- ### Build Commands
402
-
403
- ```bash
404
- # Full build (WASM + bundles)
405
- pnpm -C sdk build
406
-
407
- # Watch mode for development
408
- pnpm -C sdk dev
409
-
410
- # Clean build (removes dist/ first)
411
- pnpm -C sdk run build:check:fresh
412
-
413
- # Type checking only
414
- pnpm -C sdk run type-check
415
- ```
416
-
417
- ### Build Configuration
418
-
419
- All build paths are centralized in `build-paths.ts`:
420
-
421
- ```typescript
422
- export const BUILD_PATHS = {
423
- sdkRoot: path.resolve(__dirname),
424
- distRoot: path.resolve(__dirname, 'dist'),
425
- wasmSignerSource: path.resolve(__dirname, 'src/wasm_signer_worker'),
426
- // ... other paths
427
- }
428
- ```
429
-
430
- This ensures consistency across build scripts, bundler config, and runtime path resolution.
431
-
432
- ---
433
-
434
- ## Security Best Practices
435
-
436
- ### 1. Use HTTPS Everywhere
437
-
438
- WebAuthn requires secure contexts. Even in development, use HTTPS:
439
-
440
- ```bash
441
- # Use mkcert for local HTTPS
442
- mkcert -install
443
- mkcert localhost
444
- ```
445
-
446
- ### 2. Configure Permissions-Policy
447
-
448
- Ensure your server delegates WebAuthn to the wallet origin:
449
-
450
- ```
451
- Permissions-Policy:
452
- publickey-credentials-get=(self "https://wallet.example.com"),
453
- publickey-credentials-create=(self "https://wallet.example.com")
454
- ```
455
-
456
- The `tatchiBuildHeaders` plugin generates this automatically.
457
-
458
- ### 3. Set Content Security Policy
459
-
460
- The wallet should have strict CSP:
461
-
462
- ```
463
- Content-Security-Policy:
464
- default-src 'none';
465
- script-src 'self';
466
- style-src 'self';
467
- worker-src 'self' blob:;
468
- connect-src 'self' https://rpc.testnet.near.org;
469
- ```
470
-
471
- ### 4. Configure ROR (if wallet-scoped)
472
-
473
- For wallet-scoped credentials in Safari, serve `/.well-known/webauthn`:
474
-
475
- ```json
476
- {
477
- "origins": [
478
- "https://app.example.com",
479
- "https://localhost:5173"
480
- ]
481
- }
482
- ```
483
-
484
- ### 5. Rotate Shamir Keys
485
-
486
- If using Shamir 3-pass, rotate server keys regularly:
487
-
488
- ```typescript
489
- const result = await authService.rotateShamirServerKeypair({
490
- keepCurrentInGrace: true
491
- })
492
- // Persist new keypair securely
493
- ```
494
-
495
- ---
496
-
497
- ## Troubleshooting
498
-
499
- ### "WebAuthn not available"
500
-
501
- **Cause**: Permissions-Policy not set or iframe missing `allow` attribute.
502
-
503
- **Fix**: Ensure `tatchiBuildHeaders` plugin is configured and check iframe has:
504
- ```html
505
- <iframe allow="publickey-credentials-get; publickey-credentials-create">
506
- ```
507
-
508
- ### Passkey not appearing in Safari
509
-
510
- **Cause**: ROR manifest missing for wallet-scoped credentials.
511
-
512
- **Fix**: Serve `/.well-known/webauthn` on wallet origin with allowed origins.
513
-
514
- ### WASM module fails to load
515
-
516
- **Cause**: Incorrect MIME type or path resolution.
517
-
518
- **Fix**:
519
- - Ensure WASM files served with `application/wasm` MIME type
520
- - Verify `/sdk/workers/*.wasm` files are accessible
521
- - Check `tatchiDev` plugin is enabled
522
-
523
- ### Iframe not loading
524
-
525
- **Cause**: CORS or CSP blocking cross-origin iframe.
526
-
527
- **Fix**:
528
- - Check wallet origin allows embedding
529
- - Verify CSP includes `frame-src 'self' https://wallet.example.com`
530
- - Check browser console for specific errors
531
-
532
- ---
533
-
534
- ## API Reference
535
-
536
- See the comprehensive API documentation in:
537
- - [SDK Documentation](./docs/) - Full API reference
538
- - [Guides](../examples/tatchi-docs/src/docs/guides/) - Integration tutorials
539
- - [Concepts](../examples/tatchi-docs/src/docs/concepts/) - Architecture deep-dives
540
-
541
- ---
542
-
543
- ## Examples
544
-
545
- **Vite + React**: `examples/vite/`
546
- - Basic passkey registration and login
547
- - Transaction signing with confirmation UI
548
- - Same-origin wallet deployment
549
-
550
- **Relay Server**: `examples/relay-server/`
551
- - Node.js/Express relay implementation
552
- - Account creation endpoint
553
- - Shamir 3-pass key management
554
- - Automatic key rotation
555
-
556
- **Cloudflare Worker**: `examples/relay-cloudflare-worker/`
557
- - Serverless relay deployment
558
- - WASM bundling for Workers runtime
559
- - Secrets management with Wrangler
560
-
561
- ---
562
-
563
- ## Contributing
564
-
565
- Contributions welcome! See [CONTRIBUTING.md](../CONTRIBUTING.md) for guidelines.
566
-
567
- ### Development Setup
568
-
569
- 1. Fork and clone the repository
570
- 2. Install dependencies: `pnpm install`
571
- 3. Build SDK: `pnpm -C sdk build`
572
- 4. Make changes
573
- 5. Run tests: `pnpm -C sdk test`
574
- 6. Submit pull request
575
-
576
- ### Areas We Need Help
577
-
578
- - Framework integrations (Vue, Svelte, Angular)
579
- - Mobile browser testing
580
- - Documentation improvements
581
- - Example applications
582
- - Performance optimization
583
-
584
- ---
585
175
 
586
176
  ## License
587
177
 
@@ -590,5 +180,4 @@ MIT License - see [LICENSE](../LICENSE) for details.
590
180
  ## Support
591
181
 
592
182
  - **Documentation**: [../examples/tatchi-docs/](../examples/tatchi-docs/)
593
- - **Issues**: [GitHub Issues](https://github.com/your-org/web3-authn-sdk/issues)
594
- - **Discussions**: [GitHub Discussions](https://github.com/your-org/web3-authn-sdk/discussions)
183
+ - **Issues**: [GitHub Issues](https://github.com/web3-authn/sdk/issues)
@@ -521,37 +521,6 @@ var PasskeyClientDBManager = class {
521
521
  return user?.preferences?.confirmationConfig || require_signer_worker.DEFAULT_CONFIRMATION_CONFIG;
522
522
  }
523
523
  /**
524
- * Get user's theme preference from IndexedDB
525
- * @param nearAccountId - The user's account ID
526
- * @returns 'dark' | 'light' | null
527
- */
528
- async getTheme(nearAccountId) {
529
- const user = await this.getUser(nearAccountId);
530
- return user?.preferences?.confirmationConfig.theme || null;
531
- }
532
- /**
533
- * Set user's theme preference in IndexedDB
534
- * @param nearAccountId - The user's account ID
535
- * @param theme - The theme to set ('dark' | 'light')
536
- */
537
- async setTheme(nearAccountId, theme) {
538
- const existingConfig = await this.getConfirmationConfig(nearAccountId);
539
- const confirmationConfig = {
540
- ...existingConfig,
541
- theme
542
- };
543
- await this.updatePreferences(nearAccountId, { confirmationConfig });
544
- }
545
- /**
546
- * Get user's theme with fallback to 'dark'
547
- * @param nearAccountId - The user's account ID
548
- * @returns 'dark' | 'light'
549
- */
550
- async getThemeOrDefault(nearAccountId) {
551
- const theme = await this.getTheme(nearAccountId);
552
- return theme || "dark";
553
- }
554
- /**
555
524
  * Get user's signer mode preference from IndexedDB
556
525
  */
557
526
  async getSignerMode(nearAccountId) {
@@ -567,17 +536,6 @@ var PasskeyClientDBManager = class {
567
536
  await this.updatePreferences(nearAccountId, { signerMode: next });
568
537
  }
569
538
  /**
570
- * Toggle between dark and light theme for a user
571
- * @param nearAccountId - The user's account ID
572
- * @returns The new theme that was set
573
- */
574
- async toggleTheme(nearAccountId) {
575
- const currentTheme = await this.getThemeOrDefault(nearAccountId);
576
- const newTheme = currentTheme === "dark" ? "light" : "dark";
577
- await this.setTheme(nearAccountId, newTheme);
578
- return newTheme;
579
- }
580
- /**
581
539
  * Store a derived address for a given NEAR account + contract + path
582
540
  */
583
541
  async setDerivedAddress(nearAccountId, args) {