{"_id":"@d-sports/wallet","_rev":"8-8e2381e602880aee9f6ff49e8aeff7a7","name":"@d-sports/wallet","dist-tags":{"latest":"1.1.1"},"versions":{"1.0.0":{"name":"@d-sports/wallet","version":"1.0.0","keywords":["wallet","ethereum","web3","rainbow-kit","wagmi","social-login","nextjs","react-native","crypto","blockchain"],"author":{"name":"D-Sports"},"license":"MIT","_id":"@d-sports/wallet@1.0.0","maintainers":[{"name":"courroux","email":"Abdullah.alojado@gmail.com"},{"name":"amirghiassian","email":"amirrezaghiassian@icloud.com"}],"homepage":"https://github.com/d-sports/wallet#readme","bugs":{"url":"https://github.com/d-sports/wallet/issues"},"dist":{"shasum":"c21336ec772b4b2361099769cfc4a0f44105e066","tarball":"https://registry.npmjs.org/@d-sports/wallet/-/wallet-1.0.0.tgz","fileCount":83,"integrity":"sha512-LIpVgx0j7uQ92pXm7Sh6/yOkM+nq8nA+kMLSyQyIyAR0VVcsw2vlsB4zLbQNKYP919ZGxYpOOulcMQ8iKH8WqQ==","signatures":[{"sig":"MEQCIGDCQp/zfJLD3C6sqby4wNI4r6rDoF9ZveGS90j0M5xDAiBtqBaO2qG/CGYqV8wJ2BUav5CrRRNzUbxyJ2XFkM1eog==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2550464},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.esm.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.esm.js","require":"./dist/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.esm.js","require":"./dist/nextjs/index.js"},"./react-native":{"types":"./dist/react-native/index.d.ts","import":"./dist/react-native/index.esm.js","require":"./dist/react-native/index.js"}},"gitHead":"65feac6346569b4767999b7fab13e13ab1ed0004","scripts":{"dev":"rollup -c rollup.config.js --watch","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"npm run clean && npm run build:core && npm run build:nextjs && npm run build:react-native","clean":"rimraf dist","prepare":"npm run build","release":"np","lint:fix":"eslint src --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","build:core":"rollup -c rollup.config.js","test:watch":"jest --watch","build:nextjs":"rollup -c rollup.config.nextjs.js","build:react-native":"rollup -c rollup.config.react-native.js"},"_npmUser":{"name":"amirghiassian","actor":{"name":"amirghiassian","type":"user","email":"amirrezaghiassian@icloud.com"},"email":"amirrezaghiassian@icloud.com"},"repository":{"url":"git+https://github.com/d-sports/wallet.git","type":"git"},"_npmVersion":"11.3.0","description":"A comprehensive wallet package with Rainbow Kit and Wagmi connectors, supporting both Next.js and React Native with social login functionality","directories":{},"_nodeVersion":"24.2.0","dependencies":{"ethers":"^6.13.4","node-fetch":"^3.3.2"},"react-native":"dist/react-native/index.js","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"np":"^10.2.0","jest":"^29.7.0","react":"^18.3.1","eslint":"^9.14.0","rimraf":"^6.0.1","rollup":"^4.24.4","ts-jest":"^29.2.5","react-dom":"^18.3.1","typescript":"^5.6.3","@types/jest":"^29.5.14","@types/node":"^22.9.1","@types/react":"^18.3.12","@types/react-dom":"^18.3.1","@types/node-fetch":"^2.6.12","@rollup/plugin-json":"^6.1.0","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-replace":"^6.0.2","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^28.0.1","@rollup/plugin-typescript":"^12.1.1","@typescript-eslint/parser":"^8.13.0","@rollup/plugin-node-resolve":"^15.3.0","@typescript-eslint/eslint-plugin":"^8.13.0","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0","react-native":"^0.72.0","react-native-keychain":"^8.0.0","react-native-url-polyfill":"^2.0.0"},"peerDependenciesMeta":{"react-native":{"optional":true},"react-native-keychain":{"optional":true},"react-native-url-polyfill":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/wallet_1.0.0_1751599869807_0.11498747019486966","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@d-sports/wallet","version":"1.0.4","keywords":["wallet","ethereum","web3","rainbow-kit","wagmi","social-login","nextjs","react-native","crypto","blockchain"],"author":{"name":"D-Sports"},"license":"MIT","_id":"@d-sports/wallet@1.0.4","maintainers":[{"name":"courroux","email":"Abdullah.alojado@gmail.com"},{"name":"amirghiassian","email":"amirrezaghiassian@icloud.com"}],"homepage":"https://github.com/D-Sports-Ecosystem/wallet#readme","bugs":{"url":"https://github.com/D-Sports-Ecosystem/wallet/issues"},"dist":{"shasum":"423cd2c79f9d0e4ad60dbc9b80cb993e254da0f3","tarball":"https://registry.npmjs.org/@d-sports/wallet/-/wallet-1.0.4.tgz","fileCount":83,"integrity":"sha512-rWGT7htByAMWpdX2RhrlupFv8bF4cc8m/ERYvYNBMCdpd1F+uF8oe1duHSsEEG1h4gVyvl+15JAST7UZMxczEg==","signatures":[{"sig":"MEUCIB5L6Ia+B+D3EaphENkD3GAhGSrKFyJYGkScnL8TFV1eAiEAoBcn4bi6bHl+/KoOaFdBhvBwKU82xpMxV7mw3ArwS+M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2550635},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.esm.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.esm.js","require":"./dist/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.esm.js","require":"./dist/nextjs/index.js"},"./react-native":{"types":"./dist/react-native/index.d.ts","import":"./dist/react-native/index.esm.js","require":"./dist/react-native/index.js"}},"gitHead":"9b86baee544bf1f8c22388aa680a6c9939dab018","scripts":{"dev":"rollup -c rollup.config.js --watch","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"npm run clean && npm run build:core && npm run build:nextjs && npm run build:react-native","clean":"rimraf dist","prepare":"npm run build","release":"np","lint:fix":"eslint src --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","build:core":"rollup -c rollup.config.js","test:watch":"jest --watch","build:nextjs":"rollup -c rollup.config.nextjs.js","build:react-native":"rollup -c rollup.config.react-native.js"},"_npmUser":{"name":"amirghiassian","actor":{"name":"amirghiassian","type":"user","email":"amirrezaghiassian@icloud.com"},"email":"amirrezaghiassian@icloud.com"},"repository":{"url":"git+https://github.com/D-Sports-Ecosystem/wallet.git","type":"git"},"_npmVersion":"11.3.0","description":"A comprehensive wallet package with Rainbow Kit and Wagmi connectors, supporting both Next.js and React Native with social login functionality","directories":{},"_nodeVersion":"24.2.0","dependencies":{"ethers":"^6.13.4","node-fetch":"^3.3.2"},"react-native":"dist/react-native/index.js","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"np":"^10.2.0","jest":"^29.7.0","react":"^18.3.1","eslint":"^9.14.0","rimraf":"^6.0.1","rollup":"^4.24.4","ts-jest":"^29.2.5","react-dom":"^18.3.1","typescript":"^5.6.3","@types/jest":"^29.5.14","@types/node":"^22.9.1","@types/react":"^18.3.12","@types/react-dom":"^18.3.1","@types/node-fetch":"^2.6.12","@rollup/plugin-json":"^6.1.0","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-replace":"^6.0.2","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^28.0.1","@rollup/plugin-typescript":"^12.1.1","@typescript-eslint/parser":"^8.13.0","@rollup/plugin-node-resolve":"^15.3.0","@typescript-eslint/eslint-plugin":"^8.13.0","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0","react-native":"^0.72.0","react-native-keychain":"^8.0.0","react-native-url-polyfill":"^2.0.0"},"peerDependenciesMeta":{"react-native":{"optional":true},"react-native-keychain":{"optional":true},"react-native-url-polyfill":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/wallet_1.0.4_1751654894547_0.3581665933084457","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@d-sports/wallet","version":"1.1.0","keywords":["wallet","ethereum","web3","rainbow-kit","wagmi","social-login","nextjs","react-native","crypto","blockchain"],"author":{"name":"D-Sports"},"license":"MIT","_id":"@d-sports/wallet@1.1.0","maintainers":[{"name":"courroux","email":"Abdullah.alojado@gmail.com"},{"name":"amirghiassian","email":"amirrezaghiassian@icloud.com"}],"homepage":"https://github.com/D-Sports-Ecosystem/wallet#readme","bugs":{"url":"https://github.com/D-Sports-Ecosystem/wallet/issues"},"dist":{"shasum":"8a463d6437994853c8e5bd286930410764e686a4","tarball":"https://registry.npmjs.org/@d-sports/wallet/-/wallet-1.1.0.tgz","fileCount":235,"integrity":"sha512-kfTXshV+ge5FV2NNB75KVARytXMnQWbRC3VFNhFgFWzAR8nMn/aMV7PMD8cs5JLd74nbk/tIR9VqKws/k0YbiQ==","signatures":[{"sig":"MEUCID0EONMiJHyYqdlqmSoVELtgAU9wVUfE9QMnLHs7svLXAiEAlWdSJbMd3e19eDhlu2ZLHc6tGZZOKlPSh/BuNhcmLCI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3389912},"main":"dist/index.js","type":"module","style":"dist/index.css","types":"dist/index.d.ts","module":"dist/index.esm.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.esm.js","require":"./dist/index.js"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.esm.js","require":"./dist/ui/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.esm.js","require":"./dist/nextjs/index.js"},"./react-native":{"types":"./dist/react-native/index.d.ts","import":"./dist/react-native/index.esm.js","require":"./dist/react-native/index.js"}},"gitHead":"7daa3855f758b41669aa4a2ec4f55630077bf544","scripts":{"dev":"rollup -c rollup.config.js --watch","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"npm run clean && npm run build:core && npm run build:nextjs && npm run build:react-native","clean":"rimraf dist","prepare":"npm run build","release":"np","lint:fix":"eslint src --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","build:core":"rollup -c rollup.config.js","test:watch":"jest --watch","build:nextjs":"rollup -c rollup.config.nextjs.js","build:react-native":"rollup -c rollup.config.react-native.js"},"_npmUser":{"name":"amirghiassian","actor":{"name":"amirghiassian","type":"user","email":"amirrezaghiassian@icloud.com"},"email":"amirrezaghiassian@icloud.com"},"repository":{"url":"git+https://github.com/D-Sports-Ecosystem/wallet.git","type":"git"},"_npmVersion":"11.3.0","description":"A comprehensive wallet package with Rainbow Kit and Wagmi connectors, supporting both Next.js and React Native with social login functionality","directories":{},"_nodeVersion":"24.2.0","dependencies":{"ethers":"^6.13.4","node-fetch":"^3.3.2","lucide-react":"^0.525.0","framer-motion":"^10.0.0","@radix-ui/react-icons":"^1.3.0","class-variance-authority":"^0.7.0"},"react-native":"dist/react-native/index.js","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"np":"^10.2.0","jest":"^29.7.0","react":"^18.3.1","eslint":"^9.14.0","rimraf":"^6.0.1","rollup":"^4.24.4","ts-jest":"^29.2.5","react-dom":"^18.3.1","typescript":"^5.6.3","@types/jest":"^29.5.14","@types/node":"^22.9.1","@types/react":"^18.3.12","@types/react-dom":"^18.3.1","@types/node-fetch":"^2.6.12","@rollup/plugin-json":"^6.1.0","@rollup/plugin-terser":"^0.4.4","rollup-plugin-postcss":"^4.0.2","@rollup/plugin-replace":"^6.0.2","@testing-library/react":"^16.3.0","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^28.0.1","@rollup/plugin-typescript":"^12.1.1","@testing-library/jest-dom":"^6.6.3","@typescript-eslint/parser":"^8.13.0","@rollup/plugin-node-resolve":"^15.3.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^8.13.0","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0","tailwindcss":"^3.0.0","react-native":"^0.72.0","react-native-keychain":"^8.0.0","react-native-url-polyfill":"^2.0.0"},"peerDependenciesMeta":{"react-native":{"optional":true},"react-native-keychain":{"optional":true},"react-native-url-polyfill":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/wallet_1.1.0_1751680778013_0.5009527383806212","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@d-sports/wallet","version":"1.1.1","keywords":["wallet","ethereum","web3","rainbow-kit","wagmi","social-login","nextjs","react-native","crypto","blockchain"],"author":{"name":"D-Sports"},"license":"MIT","_id":"@d-sports/wallet@1.1.1","maintainers":[{"name":"courroux","email":"Abdullah.alojado@gmail.com"},{"name":"amirghiassian","email":"amirrezaghiassian@icloud.com"},{"name":"chronoblaze","email":"jon@chron0.tech"}],"homepage":"https://github.com/D-Sports-Ecosystem/wallet#readme","bugs":{"url":"https://github.com/D-Sports-Ecosystem/wallet/issues"},"dist":{"shasum":"ca3b68035354f71402754b80bc2cf896281f7bae","tarball":"https://registry.npmjs.org/@d-sports/wallet/-/wallet-1.1.1.tgz","fileCount":396,"integrity":"sha512-wTiT28a5sisRZzdYQvAGN9zNV023bbPO+wiqHJqi92RE7S+uITqQqyhwryJcKzrEaeouhV0bNZ8s5Hy9NpI0Hw==","signatures":[{"sig":"MEUCIE6gbgk4t2MWh2eARTyHXdIu2PDyU7r7hg3Fx8GvZwUAAiEA3dbkIxDfq8uqPMYgLD0BL545f5isMgBDGVX44uZttT8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6744614},"main":"dist/index.js","type":"module","style":"dist/index.css","types":"dist/src/index.d.ts","module":"dist/index.esm.js","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/index.esm.js","require":"./dist/index.js"},"./nextjs":{"types":"./dist/nextjs/src/nextjs/index.d.ts","import":"./dist/nextjs/index.esm.js","require":"./dist/nextjs/index.js"},"./react-native":{"types":"./dist/react-native/src/react-native/index.d.ts","import":"./dist/react-native/index.esm.js","require":"./dist/react-native/index.js"}},"scripts":{"dev":"rollup -c rollup.config.js --watch","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"npm run clean && npm run build:core && npm run build:nextjs && npm run build:react-native","clean":"npx rimraf dist","prepare":"npm run build","release":"np","lint:fix":"eslint src --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","build:core":"rollup -c rollup.config.js","test:watch":"jest --watch","build:nextjs":"rollup -c rollup.config.nextjs.js","update-tokens":"node scripts/update-token-data.js","build:react-native":"rollup -c rollup.config.react-native.js"},"_npmUser":{"name":"chronoblaze","email":"jon@chron0.tech"},"repository":{"url":"git+https://github.com/D-Sports-Ecosystem/wallet.git","type":"git"},"description":"[IN PROGRESS] A comprehensive wallet package with Rainbow Kit and Wagmi connectors, supporting both Next.js and React Native with social login functionality","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2025 D-Sports\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","dependencies":{"clsx":"^2.1.1","dotenv":"^16.6.1","ethers":"^6.13.4","rimraf":"^6.0.1","shadcn":"^2.9.2","zustand":"^5.0.6","node-fetch":"^3.3.2","lucide-react":"^0.525.0","framer-motion":"^10.0.0","tailwind-merge":"^3.3.1","tw-animate-css":"^1.3.5","@rn-primitives/slot":"^1.2.0","@radix-ui/react-slot":"^1.2.3","@radix-ui/react-tabs":"^1.1.12","@radix-ui/react-icons":"^1.3.0","@radix-ui/react-label":"^2.1.7","@studio-freight/lenis":"^1.0.42","@radix-ui/react-avatar":"^1.1.10","@radix-ui/react-select":"^2.2.5","class-variance-authority":"^0.7.1","@radix-ui/react-dropdown-menu":"^2.1.15"},"react-native":"dist/react-native/index.js","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"np":"^10.2.0","jest":"^29.7.0","react":"^18.3.1","eslint":"^9.31.0","rollup":"^4.24.4","globals":"^16.3.0","ts-jest":"^29.2.5","react-dom":"^18.3.1","@eslint/js":"^9.31.0","typescript":"^5.6.3","@types/jest":"^29.5.14","@types/node":"^22.9.1","@types/react":"^18.3.12","@types/react-dom":"^18.3.1","@types/node-fetch":"^2.6.12","typescript-eslint":"^8.37.0","@rollup/plugin-json":"^6.1.0","eslint-plugin-react":"^7.37.5","@rollup/plugin-alias":"^5.1.1","@testing-library/dom":"^10.4.0","@rollup/plugin-terser":"^0.4.4","rollup-plugin-postcss":"^4.0.2","@rollup/plugin-replace":"^6.0.2","@testing-library/react":"^16.3.0","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^28.0.1","@rollup/plugin-typescript":"^12.1.1","@testing-library/jest-dom":"^6.6.3","@typescript-eslint/parser":"^8.13.0","@rollup/plugin-node-resolve":"^15.3.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^8.13.0","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0","tailwindcss":"^3.0.0","react-native":"^0.72.0","react-native-keychain":"^8.0.0","react-native-url-polyfill":"^2.0.0"},"peerDependenciesMeta":{"react-native":{"optional":true},"react-native-keychain":{"optional":true},"react-native-url-polyfill":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/wallet_1.1.1_1753143470665_0.3454426302534461","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2025-07-04T03:31:09.684Z","modified":"2026-07-31T03:59:18.642Z","1.0.0":"2025-07-04T03:31:10.004Z","1.0.4":"2025-07-04T18:48:14.731Z","1.1.0":"2025-07-05T01:59:38.185Z","1.1.1":"2025-07-22T00:17:50.887Z"},"bugs":{"url":"https://github.com/D-Sports-Ecosystem/wallet/issues"},"author":{"name":"D-Sports"},"license":"MIT","homepage":"https://github.com/D-Sports-Ecosystem/wallet#readme","keywords":["wallet","ethereum","web3","rainbow-kit","wagmi","social-login","nextjs","react-native","crypto","blockchain"],"repository":{"url":"git+https://github.com/D-Sports-Ecosystem/wallet.git","type":"git"},"description":"[IN PROGRESS] A comprehensive wallet package with Rainbow Kit and Wagmi connectors, supporting both Next.js and React Native with social login functionality","maintainers":[{"email":"jon@chron0.tech","name":"chronoblaze"},{"email":"amirrezaghiassian@icloud.com","name":"amirghiassian"}],"readme":"# @d-sports/wallet\n\n> **⚠️ IMPORTANT: IN PROGRESS - This package is currently being updated to fix build issues. Please use with caution.**\n\nA powerful, multi-platform wallet SDK for React, Next.js, and React Native applications with **free, custom social login** and support for Rainbow Kit and Wagmi. 100% D-Sports branded with no vendor dependencies.\n\n## ✨ Features\n\n- 🌐 **Multi-platform support**: Works with React, Next.js, and React Native\n- 🔐 **Custom social login**: FREE OAuth integration with Google, Facebook, Twitter, Discord, GitHub, and Apple\n- 🏆 **D-Sports branded**: Fully customizable, no vendor lock-in\n- 🌈 **Rainbow Kit compatible**: Easy integration with Rainbow Kit's wallet connection UI\n- ⚡ **Wagmi compatible**: Full support for Wagmi v1 and v2\n- 🎨 **Customizable UI**: Flexible theming and styling options\n- 🔒 **Secure storage**: Platform-specific secure storage solutions\n- 📱 **Mobile-first**: Deep linking and mobile-optimized experience\n- 🔄 **Auto-reconnection**: Persistent wallet connections across sessions\n- 💰 **Zero cost**: No per-user fees or external dependencies\n- 🎯 **TypeScript**: Full TypeScript support with comprehensive type definitions\n\n## 🚀 Installation\n\n```bash\nnpm install @d-sports/wallet\n# or\nyarn add @d-sports/wallet\n# or\nbun add @d-sports/wallet\n```\n\n### Platform-specific Dependencies\n\n**For Next.js/React:**\n```bash\n# No additional dependencies required!\n```\n\n**For React Native:**\n```bash\nnpm install react-native-keychain react-native-url-polyfill\n```\n\n## 🏃‍♂️ Quick Start\n\n### 🚀 Super Quick Start (5 minutes)\n\nGet started immediately with **D-Sports managed OAuth credentials** - no OAuth setup required!\n\n```typescript\nimport { createDSportsWalletQuickStart, mainnet, polygon } from '@d-sports/wallet';\n\n// 🎉 ONE LINE SETUP - No OAuth configuration needed!\nconst wallet = createDSportsWalletQuickStart({\n  projectId: 'your-project-id',\n  chains: [mainnet, polygon],\n  metadata: {\n    name: 'My Awesome App',\n    description: 'Built with D-Sports Wallet',\n    url: 'https://my-app.com',\n    icons: ['https://my-app.com/icon.png']\n  }\n});\n\n// Connect with social login (Google, Facebook, Twitter, Discord, GitHub ready!)\nawait wallet.connect({ socialLogin: true });\n\nconsole.log('🎊 Wallet connected with zero OAuth setup!');\n```\n\n**Perfect for:**\n- 🧪 **Prototyping** and proof of concepts\n- 👨‍💻 **Development** and testing\n- 🎓 **Learning** and tutorials\n- 🏁 **Getting started** quickly\n\n### Production Setup\n\nFor production apps, set up your own OAuth applications:\n\n### Next.js\n\n```typescript\nimport { createDSportsWallet } from '@d-sports/wallet/nextjs';\n\n// Create wallet instance\nconst wallet = createDSportsWallet({\n  projectId: 'your-project-id',\n  chains: [/* your chains */],\n  environment: 'production', // Validates production config\n  socialLogin: {\n    appSecret: 'your-app-secret', // For deterministic key generation\n    redirectUri: 'https://your-app.com/auth/callback',\n    providers: {\n      google: {\n        clientId: 'your-google-client-id',\n      },\n      facebook: {\n        clientId: 'your-facebook-app-id',\n      },\n      twitter: {\n        clientId: 'your-twitter-client-id',\n      },\n      discord: {\n        clientId: 'your-discord-client-id',\n      },\n    },\n  },\n});\n\n// Connect wallet\nawait wallet.connect();\n```\n\n### React Native\n\n```typescript\nimport { createDSportsWallet, setupURLPolyfill } from '@d-sports/wallet/react-native';\n\n// Setup URL polyfill (required for React Native)\nsetupURLPolyfill();\n\n// Create wallet instance\nconst wallet = createDSportsWallet({\n  projectId: 'your-project-id',\n  chains: [/* your chains */],\n  socialLogin: {\n    appSecret: 'your-app-secret',\n    redirectUri: 'dsports://auth/callback', // Deep link for mobile\n    providers: {\n      google: {\n        clientId: 'your-google-client-id',\n      },\n      apple: {\n        clientId: 'your-apple-client-id',\n      },\n    },\n  },\n});\n\n// Connect wallet\nawait wallet.connect();\n```\n\n## 📚 Usage Examples\n\n### Basic Wallet Connection\n\n```typescript\nimport { createDSportsWallet } from '@d-sports/wallet';\n\nconst wallet = createDSportsWallet({\n  projectId: 'your-project-id',\n  chains: [\n    {\n      id: 1,\n      name: 'Ethereum',\n      network: 'homestead',\n      nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },\n      rpcUrls: {\n        default: { http: ['https://mainnet.infura.io/v3/your-key'] },\n        public: { http: ['https://mainnet.infura.io/v3/your-key'] }\n      }\n    }\n  ]\n});\n\n// Connect to wallet\nconst account = await wallet.connect();\nconsole.log('Connected account:', account);\n\n// Get wallet state\nconst state = wallet.getState();\nconsole.log('Wallet state:', state);\n\n// Switch chain\nawait wallet.switchChain(137); // Polygon\n\n// Disconnect\nawait wallet.disconnect();\n```\n\n### Custom Social Login\n\n```typescript\nimport { createDSportsWallet, CustomSocialLoginProvider } from '@d-sports/wallet';\n\nconst wallet = createDSportsWallet({\n  projectId: 'your-project-id',\n  chains: [/* your chains */],\n  socialLogin: {\n    appSecret: 'your-unique-app-secret', // Used for deterministic key generation\n    redirectUri: 'https://your-app.com/auth/callback',\n    providers: {\n      google: {\n        clientId: 'your-google-oauth-client-id',\n      },\n      facebook: {\n        clientId: 'your-facebook-app-id',\n      },\n      twitter: {\n        clientId: 'your-twitter-oauth-client-id',\n      },\n      discord: {\n        clientId: 'your-discord-oauth-client-id',\n      },\n      github: {\n        clientId: 'your-github-oauth-client-id',\n      },\n    },\n  },\n});\n\n// Connect with social login\nawait wallet.connect({ socialLogin: true });\n\n// Get social login provider\nconst socialProvider = wallet.getConnector('dsports-wallet').customSocialLoginProvider;\n\n// Login with specific provider\nconst result = await socialProvider.login('google');\nconsole.log('Social login result:', result);\n\n// Get wallet from social login\nconst ethersWallet = await socialProvider.getWalletFromSocial(result);\nconsole.log('Generated wallet address:', ethersWallet.address);\n```\n\n### Rainbow Kit Integration\n\n```typescript\nimport { createDSportsRainbowKitConnector } from '@d-sports/wallet';\n\nconst connector = createDSportsRainbowKitConnector({\n  chains: [/* your chains */],\n  projectId: 'your-project-id',\n  appName: 'My App',\n  socialLogin: {\n    appSecret: 'your-app-secret',\n    redirectUri: 'https://your-app.com/auth/callback',\n    providers: {\n      google: {\n        clientId: 'your-google-client-id',\n      },\n      facebook: {\n        clientId: 'your-facebook-client-id',\n      },\n    },\n  },\n});\n\n// Use with Rainbow Kit\nconst connectors = [\n  connector,\n  // ... other connectors\n];\n```\n\n### Wagmi Integration\n\n```typescript\nimport { dsportsWagmiConnector } from '@d-sports/wallet';\n\nconst connector = dsportsWagmiConnector({\n  chains: [/* your chains */],\n  projectId: 'your-project-id',\n  socialLogin: {\n    appSecret: 'your-app-secret',\n    redirectUri: 'https://your-app.com/auth/callback',\n    providers: {\n      google: {\n        clientId: 'your-google-client-id',\n      },\n    },\n  },\n});\n\n// Use with Wagmi\nconst connectors = [\n  connector,\n  // ... other connectors\n];\n```\n\n## 🔧 API Reference\n\n### DSportsWallet\n\n#### Constructor Options\n\n```typescript\ninterface DSportsWalletOptions {\n  projectId: string;\n  chains: Chain[];\n  socialLogin?: CustomSocialLoginConfig;\n  theme?: WalletTheme;\n  metadata?: {\n    name: string;\n    description: string;\n    url: string;\n    icons: string[];\n  };\n}\n```\n\n#### Methods\n\n- `connect(config?: { socialLogin?: boolean }): Promise<WalletAccount>`\n- `disconnect(): Promise<void>`\n- `switchChain(chainId: number): Promise<void>`\n- `getState(): WalletState`\n- `isConnected(): boolean`\n- `getConnector(id: string): WalletConnector | undefined`\n- `addConnector(connector: WalletConnector): void`\n- `removeConnector(id: string): void`\n\n#### Events\n\n- `connect`: Emitted when wallet connects\n- `disconnect`: Emitted when wallet disconnects\n- `accountsChanged`: Emitted when accounts change\n- `chainChanged`: Emitted when chain changes\n- `error`: Emitted when an error occurs\n\n### React Hooks\n\n#### useDSportsWallet\n\n```typescript\nconst {\n  account,\n  isConnecting,\n  isReconnecting,\n  isDisconnected,\n  error,\n  connect,\n  disconnect,\n  switchChain,\n  isConnected\n} = useDSportsWallet(wallet);\n```\n\n#### useSocialLogin\n\n```typescript\nconst {\n  user,\n  isLoading,\n  error,\n  login,\n  logout\n} = useSocialLogin(customSocialLoginProvider);\n```\n\n## ⚙️ Configuration\n\n### Custom Social Login Configuration\n\n```typescript\ninterface CustomSocialLoginConfig {\n  appSecret?: string; // Used for deterministic wallet generation\n  redirectUri?: string; // OAuth callback URL\n  providers: {\n    [key in SocialProvider]?: {\n      clientId: string;\n      clientSecret?: string; // For backend token exchange\n    };\n  };\n}\n```\n\n### Supported Social Providers\n\n- **Google** (`google`): OAuth 2.0\n- **Facebook** (`facebook`): Facebook Login\n- **Twitter** (`twitter`): OAuth 2.0\n- **Discord** (`discord`): OAuth 2.0\n- **GitHub** (`github`): OAuth 2.0\n- **Apple** (`apple`): Sign in with Apple\n\n### Setting Up OAuth Applications\n\n#### Google OAuth Setup\n1. Go to [Google Cloud Console](https://console.cloud.google.com/)\n2. Create a new project or select existing\n3. Enable Google+ API\n4. Create OAuth 2.0 credentials\n5. Add your domain to authorized origins\n6. Copy the **Client ID**\n\n#### Facebook OAuth Setup\n1. Go to [Facebook Developers](https://developers.facebook.com/)\n2. Create a new app\n3. Set up Facebook Login\n4. Add your domain to valid OAuth redirect URIs\n5. Copy the **App ID**\n\n#### Twitter OAuth Setup\n1. Go to [Twitter Developer Portal](https://developer.twitter.com/)\n2. Create a new app\n3. Set up OAuth 2.0\n4. Configure callback URLs\n5. Copy the **Client ID**\n\n### Theme Configuration\n\n```typescript\ninterface WalletTheme {\n  colors?: {\n    primary?: string;\n    secondary?: string;\n    background?: string;\n    text?: string;\n    border?: string;\n  };\n  borderRadius?: number;\n  fontFamily?: string;\n}\n```\n\n### OAuth Callback Page\n\nCreate a callback page at your `redirectUri` to handle OAuth responses:\n\n```html\n<!DOCTYPE html>\n<html>\n<head>\n  <title>D-Sports Authentication</title>\n  <style>\n    body { font-family: Arial, sans-serif; text-align: center; padding: 50px; }\n    .loading { color: #666; }\n    .logo { width: 64px; height: 64px; margin: 20px auto; }\n  </style>\n</head>\n<body>\n  <div class=\"logo\">🏆</div>\n  <h2>D-Sports Authentication</h2>\n  <p class=\"loading\">Processing your login...</p>\n  <script>\n    // Handle OAuth callback\n    const urlParams = new URLSearchParams(window.location.search);\n    const code = urlParams.get('code');\n    const error = urlParams.get('error');\n    \n    if (error) {\n      window.parent.postMessage({\n        type: 'OAUTH_ERROR',\n        error: error\n      }, window.location.origin);\n    } else if (code) {\n      // Exchange code for user data (implement your backend logic)\n      window.parent.postMessage({\n        type: 'OAUTH_SUCCESS',\n        payload: {\n          code,\n          user: {\n            id: 'user-id-from-your-backend',\n            email: 'user@example.com',\n            name: 'User Name',\n            avatar: 'https://example.com/avatar.jpg'\n          },\n          token: 'access-token-from-your-backend',\n          expiresAt: Date.now() + 3600000\n        }\n      }, window.location.origin);\n    }\n  </script>\n</body>\n</html>\n```\n\n### Deep Linking (React Native)\n\n```typescript\nimport { handleDeepLink } from '@d-sports/wallet/react-native';\n\n// Handle deep link\nhandleDeepLink('dsports://wallet/connect?connector=dsports-wallet', wallet);\n```\n\n## 💰 Cost Comparison\n\n| Provider | Cost | Lock-in | Branding |\n|----------|------|---------|----------|\n| **@d-sports/wallet** | **FREE** | ❌ None | 🏆 Full D-Sports |\n| Web3Auth | $0.05/MAU | ✅ Yes | 🔒 Limited |\n| Magic | $0.02/MAU | ✅ Yes | 🔒 Limited |\n| Privy | $0.05/MAU | ✅ Yes | 🔒 Limited |\n\n## 🛠️ Development\n\n### Setup\n\n```bash\ngit clone https://github.com/D-Sports-Ecosystem/wallet.git\ncd wallet\nbun install\n```\n\n### Build\n\n```bash\nbun run build\n```\n\n### Test\n\n```bash\nbun test\n```\n\n### Development Scripts\n\n- `bun run dev`: Start development mode\n- `bun run build`: Build all packages\n- `bun run build:core`: Build core package\n- `bun run build:nextjs`: Build Next.js package\n- `bun run build:react-native`: Build React Native package\n- `bun run clean`: Clean build artifacts\n- `bun run lint`: Run ESLint\n- `bun run test`: Run tests\n- `bun run test:watch`: Run tests in watch mode\n\n## 📦 Package Structure\n\n```\n@d-sports/wallet/\n├── core              # Core wallet functionality\n├── nextjs            # Next.js specific exports\n├── react-native      # React Native specific exports\n├── custom-social-login # Custom social login provider\n└── types             # TypeScript type definitions\n```\n\n## 🔒 Security Features\n\n- **Deterministic Key Generation**: Wallets are generated deterministically from social login data\n- **Secure Storage**: Platform-specific secure storage (localStorage, AsyncStorage, Keychain)\n- **No Private Key Transmission**: Keys are generated locally, never sent to servers\n- **Custom App Secret**: Use your own secret for additional security\n- **OAuth Best Practices**: Follows OAuth 2.0 security guidelines\n\n## 🤝 Contributing\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add some amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\n## 📄 License\n\nMIT License - see the [LICENSE](LICENSE) file for details.\n\n## 🙏 Acknowledgments\n\n- [ethers.js](https://ethers.org/) for Ethereum interactions\n- [Rainbow Kit](https://www.rainbowkit.com/) for wallet connection UI\n- [Wagmi](https://wagmi.sh/) for React hooks for Ethereum\n- [Rollup](https://rollupjs.org/) for module bundling\n\n---\n\n**Made with ❤️ by the D-Sports team** - A free, open-source alternative to expensive wallet providers.\n\n## 🔄 Quick Start → Production Migration\n\n### Development to Production Path\n\n1. **Start with Quick Start** (5 minutes):\n   ```typescript\n   const wallet = createDSportsWalletQuickStart({\n     projectId: 'your-project-id',\n     chains: [mainnet, polygon]\n   });\n   ```\n\n2. **Create Your OAuth Apps** (30 minutes):\n   - [Google OAuth Setup](#google-oauth-setup)\n   - [Facebook OAuth Setup](#facebook-oauth-setup) \n   - [Twitter OAuth Setup](#twitter-oauth-setup)\n\n3. **Switch to Production Config**:\n   ```typescript\n   const wallet = createDSportsWallet({\n     projectId: 'your-project-id',\n     chains: [mainnet, polygon],\n     environment: 'production', // Validates config\n     socialLogin: {\n       appSecret: 'your-production-secret',\n       redirectUri: 'https://your-app.com/auth/callback',\n       providers: {\n         google: { clientId: 'your-google-client-id' },\n         facebook: { clientId: 'your-facebook-app-id' },\n         // ... other providers\n       }\n     }\n   });\n   ```\n\n### D-Sports OAuth Service\n\nD-Sports provides **managed OAuth credentials** for instant development:\n\n```typescript\nimport { DSportsOAuthService, createQuickStartSocialLogin } from '@d-sports/wallet';\n\n// Get managed credentials\nconst managed = DSportsOAuthService.getManagedCredentials({ \n  environment: 'development' \n});\n\n// Quick start config (auto-generated)\nconst quickStartConfig = createQuickStartSocialLogin();\n\n// Validate production config\nconst productionConfig = validateSocialLoginConfig(myConfig, 'production');\n```\n\n**Managed OAuth includes:**\n- ✅ **Google** - Ready to use\n- ✅ **Facebook** - Ready to use  \n- ✅ **Twitter** - Ready to use\n- ✅ **Discord** - Ready to use\n- ✅ **GitHub** - Ready to use\n- ⚠️ **Apple** - Requires individual setup\n\n**Benefits:**\n- 🚀 **Instant setup** - No OAuth configuration\n- 🛡️ **Production warnings** - Automatic validation\n- 🔄 **Easy migration** - Same API, different config\n- 📚 **Perfect for demos** - Show features immediately","readmeFilename":"README.md"}