{"id":27992684,"url":"https://github.com/web3auth/react-native-mpc-core-kit","last_synced_at":"2025-05-08T18:40:20.335Z","repository":{"id":269117201,"uuid":"872937981","full_name":"Web3Auth/react-native-mpc-core-kit","owner":"Web3Auth","description":null,"archived":false,"fork":false,"pushed_at":"2025-02-04T09:39:47.000Z","size":1905,"stargazers_count":2,"open_issues_count":4,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-05-04T07:13:24.473Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Web3Auth.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-15T10:33:38.000Z","updated_at":"2025-02-21T19:08:38.000Z","dependencies_parsed_at":"2024-12-21T03:58:27.919Z","dependency_job_id":"99eb42aa-9b8d-4fef-8eb1-d6c4f99182e5","html_url":"https://github.com/Web3Auth/react-native-mpc-core-kit","commit_stats":null,"previous_names":["web3auth/react-native-mpc-core-kit"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Web3Auth%2Freact-native-mpc-core-kit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Web3Auth%2Freact-native-mpc-core-kit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Web3Auth%2Freact-native-mpc-core-kit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Web3Auth%2Freact-native-mpc-core-kit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Web3Auth","download_url":"https://codeload.github.com/Web3Auth/react-native-mpc-core-kit/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253130441,"owners_count":21858810,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-05-08T18:40:19.824Z","updated_at":"2025-05-08T18:40:20.329Z","avatar_url":"https://github.com/Web3Auth.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# @web3auth/react-native-mpc-core-kit\n\nMPC core kit for react-native using webview\n** only for react-native **\n\n## Installation\n\n```sh\nnpm install --save @web3auth/react-native-mpc-core-kit\n```\n\n\nadd customTransformer file\n```\n// customTransformer.js\nconst { nodeModulesPolyfillPlugin } = require(\"esbuild-plugins-node-modules-polyfill\");\nconst reactNativeReactBridgeTransformer = require(\"react-native-react-bridge/lib/plugin\");\nconst esbuildOptions = {\n  plugins: [\n    nodeModulesPolyfillPlugin({\n      globals: {\n        Buffer: true,\n        crypto: true,\n      },\n    }),\n  ],\n};\nmodule.exports.transform = function ({ src, filename, options }) {\n  const transform = reactNativeReactBridgeTransformer.createTransformer(esbuildOptions);\n  return transform({ src, filename, options });\n};\n```\n\n\nadd metroTransformer file\n```\n// metro.config.js\nrequire(\"ts-node/register\");\n// Learn more https://docs.expo.io/guides/customizing-metro\nconst { getDefaultConfig } = require(\"expo/metro-config\");\n\n/** @type {import('expo/metro-config').MetroConfig} */\nconst config = getDefaultConfig(__dirname);\n\nconfig.transformer.babelTransformerPath = require.resolve('./customTransformer.js')\nconfig.resolver.extraNodeModules = {\n  ...config.resolver.extraNodeModules,\n\n  assert: require.resolve(\"empty-module\"), // assert can be polyfilled here if needed\n  http: require.resolve(\"empty-module\"), // stream-http can be polyfilled here if needed\n  https: require.resolve(\"empty-module\"), // https-browserify can be polyfilled here if needed\n  os: require.resolve(\"empty-module\"), // os-browserify can be polyfilled here if needed\n  url: require.resolve(\"empty-module\"), // url can be polyfilled here if needed\n  zlib: require.resolve(\"empty-module\"), // browserify-zlib can be polyfilled here if needed\n  path: require.resolve(\"empty-module\"),\n  crypto: require.resolve(\"empty-module\"),\n  buffer: require.resolve(\"@craftzdog/react-native-buffer\"),\n};\n\nmodule.exports = config;\n```\n\nOn the App.tsx\n```js\nimport { Bridge, mpclib, TssDklsLib } from \"@web3auth/react-native-mpc-core-kit\";\n\nclass ReactStorage implements IAsyncStorage {\n  async getItem(key: string): Promise\u003cstring | null\u003e {\n    return SecureStorage.getItem(key);\n  }\n\n  async setItem(key: string, value: string): Promise\u003cvoid\u003e {\n    return SecureStorage.setItem(key, value);\n  }\n}\nconst coreKitInstancelocal = new mpclib.Web3AuthMPCCoreKitRN({\n    web3AuthClientId: 'torus-key-test',\n    web3AuthNetwork: WEB3AUTH_NETWORK.DEVNET,\n    uxMode: 'react-native',\n    asyncStorageKey: new ReactStorage(),\n    tssLib: TssDklsLib,\n});\n\nconst [bridgeReady, setBridgeReady] = useState\u003cboolean\u003e(false);\n\n// ...\nuseEffect(() =\u003e {\n  if (bridgeReady) {\n    const init = async () =\u003e {\n      try {\n        // IMP START - SDK Initialization\n        await coreKitInstance.init();\n        // IMP END - SDK Initialization\n      } catch (error: any) {\n        uiConsole(error.message, \"mounted caught\");\n      }\n      setCoreKitStatus(coreKitInstance.status);\n    };\n    init();\n  }\n  // eslint-disable-next-line react-hooks/exhaustive-deps\n}, [bridgeReady]);\n\n\u003cView\u003e\n  \u003cBridge\n    logLevel={\"DEBUG\"}\n    resolveReady={\n      (ready)=\u003e {\n      setBridgeReady(ready);\n    }}\n  /\u003e\n...\n\u003cView\u003e\n```\n\n\n## Contributing\n\nSee the [contributing guide](CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.\n\n## License\n\nMIT\n\n---\n\nMade with [create-react-native-library](https://github.com/callstack/react-native-builder-bob)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fweb3auth%2Freact-native-mpc-core-kit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fweb3auth%2Freact-native-mpc-core-kit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fweb3auth%2Freact-native-mpc-core-kit/lists"}