{"_id":"@degenlab/stacks-wallet-kit-mobile","_rev":"9-edd95f290ba4d6e10ae6684b080e3b2d","name":"@degenlab/stacks-wallet-kit-mobile","dist-tags":{"latest":"2.0.0"},"versions":{"1.0.0":{"name":"@degenlab/stacks-wallet-kit-mobile","version":"1.0.0","author":{"name":"DegenLab"},"license":"ISC","_id":"@degenlab/stacks-wallet-kit-mobile@1.0.0","maintainers":[{"name":"bowtiedblox","email":"degenlabsetups@gmail.com"}],"dist":{"shasum":"0e6cc50c4ee68265913026ae1deef2aac637de51","tarball":"https://registry.npmjs.org/@degenlab/stacks-wallet-kit-mobile/-/stacks-wallet-kit-mobile-1.0.0.tgz","fileCount":2,"integrity":"sha512-J16XfIZqWYSoTfUpi2Eh1JOuyjKsFSLrp0CmZf2Qpchsr38XJlQ8AZUhtEw02i/TKgwz2/xUIy7TsA95TAo28w==","signatures":[{"sig":"MEQCIEAaq8ngsZ52M8rV3SSi0yau1SF3QYmDzpGcKEv6xQfZAiAi96+FBvWLuY0kY7i4O+xJYoHI/mO1RFYWWiDQhz7ANw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21671},"main":"dist/src/index.js","type":"module","types":"dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","default":"./dist/src/index.js"}},"gitHead":"9e8ef5fd5ba7f1b010667ecb942dd7f50408dee4","scripts":{"lint":"eslint '{src,testing}/**/*.{ts,tsx}' --fix","test":"jest","build":"tsc -b","format":"prettier --write '{src,testing}/**/*.{ts,tsx,js,json,md}'"},"_npmUser":{"name":"bowtiedblox","email":"degenlabsetups@gmail.com"},"_npmVersion":"11.6.3","description":"A React Native/Expo SDK for building Stacks blockchain applications with Google authentication and wallet management.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"@noble/ciphers":"^2.0.1","expo-secure-store":"^15.0.7","react-native-keychain":"^10.0.0","@degenlab/stacks-wallet-kit-core":"1.0.0","@react-native-async-storage/async-storage":"^2.2.0","@react-native-google-signin/google-signin":"^16.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.4.5","babel-jest":"^30.2.0","typescript":"^5.9.3","@types/jest":"^29.5.14","@scure/bip39":"^2.0.1","@types/react":"^19.1.1","@jest/globals":"^30.0.5","react-test-renderer":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/stacks-wallet-kit-mobile_1.0.0_1765302751587_0.5126599782395826","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@degenlab/stacks-wallet-kit-mobile","version":"1.0.1","author":{"name":"DegenLab"},"license":"ISC","_id":"@degenlab/stacks-wallet-kit-mobile@1.0.1","maintainers":[{"name":"bowtiedblox","email":"degenlabsetups@gmail.com"}],"homepage":"https://github.com/degen-lab/stacks-wallet-kit#readme","bugs":{"url":"https://github.com/degen-lab/stacks-wallet-kit/issues"},"dist":{"shasum":"e3aab77e5b64ce5d1b23696a583ac420645898c2","tarball":"https://registry.npmjs.org/@degenlab/stacks-wallet-kit-mobile/-/stacks-wallet-kit-mobile-1.0.1.tgz","fileCount":2,"integrity":"sha512-/SIdliWa0CCeliCkmGyiMlvH+WGk+yzOugPnQIJasuSSoJZ7Ud1eB4YKYXpLBt/guqjANhEbzEOtHGbIMWURXQ==","signatures":[{"sig":"MEQCIEK4blpNHD6o9F8DoYwwABd3iZCOrnXjDLxt1tbjjq9QAiB4OL8CSXIE4+6ZlGKpgouiP+strxIwb4/xEUzJR715iA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@degenlab%2fstacks-wallet-kit-mobile@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22035},"main":"dist/src/index.js","type":"module","types":"dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","default":"./dist/src/index.js"}},"gitHead":"0a5c643659dc968114c0f299edfaf8c3c712a154","scripts":{"lint":"eslint '{src,testing}/**/*.{ts,tsx}' --fix","test":"jest","build":"tsc -b","format":"prettier --write '{src,testing}/**/*.{ts,tsx,js,json,md}'","format:check":"prettier --check '{src,testing}/**/*.{ts,tsx,js,json,md}'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0ed729cf-2ef4-41a5-9ecc-11dd2396720f"}},"repository":{"url":"git+https://github.com/degen-lab/stacks-wallet-kit.git","type":"git"},"_npmVersion":"11.6.4","description":"A React Native/Expo SDK for building Stacks blockchain applications with Google authentication and wallet management.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"@noble/ciphers":"^2.0.1","expo-secure-store":"^15.0.7","react-native-keychain":"^10.0.0","@degenlab/stacks-wallet-kit-core":"1.0.1","@react-native-async-storage/async-storage":"^2.2.0","@react-native-google-signin/google-signin":"^16.0.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.4.5","babel-jest":"^30.2.0","typescript":"^5.9.3","@types/jest":"^29.5.14","@scure/bip39":"^2.0.1","@types/react":"^19.1.1","@jest/globals":"^30.0.5","react-test-renderer":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/stacks-wallet-kit-mobile_1.0.1_1765306662295_0.0784147514465865","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@degenlab/stacks-wallet-kit-mobile","version":"1.0.2","author":{"name":"DegenLab"},"license":"ISC","_id":"@degenlab/stacks-wallet-kit-mobile@1.0.2","maintainers":[{"name":"bowtiedblox","email":"degenlabsetups@gmail.com"}],"homepage":"https://github.com/degen-lab/stacks-wallet-kit#readme","bugs":{"url":"https://github.com/degen-lab/stacks-wallet-kit/issues"},"dist":{"shasum":"f831b6f5707c3a8a2ffa1e8481dd699dd4d75a23","tarball":"https://registry.npmjs.org/@degenlab/stacks-wallet-kit-mobile/-/stacks-wallet-kit-mobile-1.0.2.tgz","fileCount":30,"integrity":"sha512-cnGgrQiaMyZU/ZxBODy5HKiI1l/Zmn9JOu9gryDvQLGcEAM82ABAye1Ab568slTIGBFl/rV5Snr/8UYS8GAZ/A==","signatures":[{"sig":"MEQCIEeaBqAoy5q2afyL24WUgvj7/HM/layKGzjV9LohXUmWAiB1sHk9sy5PjmztQP3i4n1o9HRIFBOkODlYu3kBqNthOA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@degenlab%2fstacks-wallet-kit-mobile@1.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41222},"main":"dist/src/index.js","type":"module","types":"dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","default":"./dist/src/index.js"}},"gitHead":"e670a4879928380d103906e0f966b1033b95c1d8","scripts":{"lint":"eslint '{src,testing}/**/*.{ts,tsx}' --fix","test":"jest","build":"tsc -b","format":"prettier --write '{src,testing}/**/*.{ts,tsx,js,json,md}'","format:check":"prettier --check '{src,testing}/**/*.{ts,tsx,js,json,md}'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0ed729cf-2ef4-41a5-9ecc-11dd2396720f"}},"repository":{"url":"git+https://github.com/degen-lab/stacks-wallet-kit.git","type":"git"},"_npmVersion":"11.7.0","description":"A React Native/Expo SDK for building Stacks blockchain applications with Google authentication and wallet management.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"@noble/ciphers":"^2.0.1","expo-secure-store":"^15.0.7","react-native-keychain":"^10.0.0","@degenlab/stacks-wallet-kit-core":"workspace:*","@react-native-async-storage/async-storage":"^2.2.0","@react-native-google-signin/google-signin":"^16.0.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.4.5","babel-jest":"^30.2.0","typescript":"^5.9.3","@types/jest":"^29.5.14","@scure/bip39":"^2.0.1","@types/react":"^19.1.1","@jest/globals":"^30.0.5","react-test-renderer":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/stacks-wallet-kit-mobile_1.0.2_1765311625680_0.9027862448231718","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@degenlab/stacks-wallet-kit-mobile","version":"1.0.3","author":{"name":"DegenLab"},"license":"ISC","_id":"@degenlab/stacks-wallet-kit-mobile@1.0.3","maintainers":[{"name":"bowtiedblox","email":"degenlabsetups@gmail.com"}],"homepage":"https://github.com/degen-lab/stacks-wallet-kit#readme","bugs":{"url":"https://github.com/degen-lab/stacks-wallet-kit/issues"},"dist":{"shasum":"990ea74583c2a8833d4421094620984d8c334cc6","tarball":"https://registry.npmjs.org/@degenlab/stacks-wallet-kit-mobile/-/stacks-wallet-kit-mobile-1.0.3.tgz","fileCount":30,"integrity":"sha512-7WJG7RDVKstOpPqQOn6zZ4EaOXQwIbhi/MoZ9BazoRWzE/Zf0iAHClQg8GAHWpdL55d043h6WG13AWZ/RPi5/A==","signatures":[{"sig":"MEYCIQCRtq1taBf8af8uavly/JymuRKN4qiBIoCXObarnX9SiQIhANMkdarxJVWBZhly28vDmU237hw3OeMS4hDKGeJ/ZQkF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@degenlab%2fstacks-wallet-kit-mobile@1.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41215},"main":"dist/src/index.js","type":"module","_from":"file:degenlab-stacks-wallet-kit-mobile-1.0.3.tgz","types":"dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","default":"./dist/src/index.js"}},"scripts":{"lint":"eslint '{src,testing}/**/*.{ts,tsx}' --fix","test":"jest","build":"tsc -b","format":"prettier --write '{src,testing}/**/*.{ts,tsx,js,json,md}'","format:check":"prettier --check '{src,testing}/**/*.{ts,tsx,js,json,md}'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0ed729cf-2ef4-41a5-9ecc-11dd2396720f"}},"_resolved":"/tmp/7ad2cb6b67f84942917a4748e02e7b52/degenlab-stacks-wallet-kit-mobile-1.0.3.tgz","_integrity":"sha512-7WJG7RDVKstOpPqQOn6zZ4EaOXQwIbhi/MoZ9BazoRWzE/Zf0iAHClQg8GAHWpdL55d043h6WG13AWZ/RPi5/A==","repository":{"url":"git+https://github.com/degen-lab/stacks-wallet-kit.git","type":"git"},"_npmVersion":"11.7.0","description":"A React Native/Expo SDK for building Stacks blockchain applications with Google authentication and wallet management.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"@noble/ciphers":"^2.0.1","expo-secure-store":"^15.0.7","react-native-keychain":"^10.0.0","@degenlab/stacks-wallet-kit-core":"1.0.3","@react-native-async-storage/async-storage":"^2.2.0","@react-native-google-signin/google-signin":"^16.0.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.4.5","babel-jest":"^30.2.0","typescript":"^5.9.3","@types/jest":"^29.5.14","@scure/bip39":"^2.0.1","@types/react":"^19.1.1","@jest/globals":"^30.0.5","react-test-renderer":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/stacks-wallet-kit-mobile_1.0.3_1765312610384_0.5458075328376153","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@degenlab/stacks-wallet-kit-mobile","version":"1.1.0","author":{"name":"DegenLab"},"license":"ISC","_id":"@degenlab/stacks-wallet-kit-mobile@1.1.0","maintainers":[{"name":"bowtiedblox","email":"degenlabsetups@gmail.com"}],"homepage":"https://github.com/degen-lab/stacks-wallet-kit#readme","bugs":{"url":"https://github.com/degen-lab/stacks-wallet-kit/issues"},"dist":{"shasum":"2d621ab49c55a2b34a70aa022e5d6966e2e601ad","tarball":"https://registry.npmjs.org/@degenlab/stacks-wallet-kit-mobile/-/stacks-wallet-kit-mobile-1.1.0.tgz","fileCount":30,"integrity":"sha512-ntXo6TPiij3Ho9RjPLU6eTLLaSOcnxXHFYyL2lE3Z2f657qemi29otDv2mU3882LJVYK9LHMIIuBG3H69AWaBw==","signatures":[{"sig":"MEUCIDkKcj7zt0pEPnuz+xa9MBXtNsCu/2f9N7qLKcjei4cNAiEAsJw/YL5fZPugXrELKvgJmAVxx3GV1aChVN7pvz56YK4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@degenlab%2fstacks-wallet-kit-mobile@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42583},"main":"dist/src/index.js","type":"module","_from":"file:degenlab-stacks-wallet-kit-mobile-1.1.0.tgz","types":"dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","default":"./dist/src/index.js"}},"scripts":{"lint":"eslint '{src,testing}/**/*.{ts,tsx}' --fix","test":"jest","build":"tsc -b","format":"prettier --write '{src,testing}/**/*.{ts,tsx,js,json,md}'","format:check":"prettier --check '{src,testing}/**/*.{ts,tsx,js,json,md}'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0ed729cf-2ef4-41a5-9ecc-11dd2396720f"}},"_resolved":"/tmp/6c34bf8db381d3d72a9473998cac817d/degenlab-stacks-wallet-kit-mobile-1.1.0.tgz","_integrity":"sha512-ntXo6TPiij3Ho9RjPLU6eTLLaSOcnxXHFYyL2lE3Z2f657qemi29otDv2mU3882LJVYK9LHMIIuBG3H69AWaBw==","repository":{"url":"git+https://github.com/degen-lab/stacks-wallet-kit.git","type":"git"},"_npmVersion":"11.7.0","description":"A React Native/Expo SDK for building Stacks blockchain applications with Google authentication and wallet management.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"@noble/ciphers":"^2.0.1","expo-secure-store":"^15.0.7","react-native-keychain":"^10.0.0","@degenlab/stacks-wallet-kit-core":"1.1.0","@react-native-async-storage/async-storage":"^2.2.0","@react-native-google-signin/google-signin":"^16.0.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.4.5","babel-jest":"^30.2.0","typescript":"^5.9.3","@types/jest":"^29.5.14","@scure/bip39":"^2.0.1","@types/react":"^19.1.1","@jest/globals":"^30.0.5","react-test-renderer":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/stacks-wallet-kit-mobile_1.1.0_1765489751276_0.15749199906316602","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@degenlab/stacks-wallet-kit-mobile","version":"1.2.0","author":{"name":"DegenLab"},"license":"ISC","_id":"@degenlab/stacks-wallet-kit-mobile@1.2.0","maintainers":[{"name":"bowtiedblox","email":"degenlabsetups@gmail.com"}],"homepage":"https://github.com/degen-lab/stacks-wallet-kit#readme","bugs":{"url":"https://github.com/degen-lab/stacks-wallet-kit/issues"},"dist":{"shasum":"d42b50b6ac4b058d559c1b13e431911e59ef5e32","tarball":"https://registry.npmjs.org/@degenlab/stacks-wallet-kit-mobile/-/stacks-wallet-kit-mobile-1.2.0.tgz","fileCount":30,"integrity":"sha512-heM/IZYjqAyS/TefprW/KEb7cfA9YmDzWiQeE1Tokf75LkGzwbj55wS8NlDc0BMtu6aaNyyG8t3a+6iJgGSpEA==","signatures":[{"sig":"MEUCIQDbs9bII/D70yhcC5Ao4jlOVa+7VtofTMMJw4rQSsGazgIgWMiu2b6Ar998RQF2SebWU9y70wPhhXZCeugbZuKMJC8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@degenlab%2fstacks-wallet-kit-mobile@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42759},"main":"dist/src/index.js","type":"module","_from":"file:degenlab-stacks-wallet-kit-mobile-1.2.0.tgz","types":"dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","default":"./dist/src/index.js"}},"scripts":{"lint":"eslint '{src,testing}/**/*.{ts,tsx}' --fix","test":"jest","build":"tsc -b","format":"prettier --write '{src,testing}/**/*.{ts,tsx,js,json,md}'","format:check":"prettier --check '{src,testing}/**/*.{ts,tsx,js,json,md}'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0ed729cf-2ef4-41a5-9ecc-11dd2396720f"}},"_resolved":"/tmp/2df0228268e549b457497e1362419fd0/degenlab-stacks-wallet-kit-mobile-1.2.0.tgz","_integrity":"sha512-heM/IZYjqAyS/TefprW/KEb7cfA9YmDzWiQeE1Tokf75LkGzwbj55wS8NlDc0BMtu6aaNyyG8t3a+6iJgGSpEA==","repository":{"url":"git+https://github.com/degen-lab/stacks-wallet-kit.git","type":"git"},"_npmVersion":"11.7.0","description":"A React Native/Expo SDK for building Stacks blockchain applications with Google authentication and wallet management.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"@noble/ciphers":"^2.0.1","expo-secure-store":"^15.0.7","react-native-keychain":"^10.0.0","@degenlab/stacks-wallet-kit-core":"1.2.0","@react-native-async-storage/async-storage":"^2.2.0","@react-native-google-signin/google-signin":"^16.0.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.4.5","babel-jest":"^30.2.0","typescript":"^5.9.3","@types/jest":"^29.5.14","@scure/bip39":"^2.0.1","@types/react":"^19.1.1","@jest/globals":"^30.0.5","react-test-renderer":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/stacks-wallet-kit-mobile_1.2.0_1768259732267_0.7116624933756881","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@degenlab/stacks-wallet-kit-mobile","version":"1.3.0","author":{"name":"DegenLab"},"license":"ISC","_id":"@degenlab/stacks-wallet-kit-mobile@1.3.0","maintainers":[{"name":"bowtiedblox","email":"degenlabsetups@gmail.com"}],"homepage":"https://github.com/degen-lab/stacks-wallet-kit#readme","bugs":{"url":"https://github.com/degen-lab/stacks-wallet-kit/issues"},"dist":{"shasum":"e7aca7169904b20cd1bae757456a913c3c674f8f","tarball":"https://registry.npmjs.org/@degenlab/stacks-wallet-kit-mobile/-/stacks-wallet-kit-mobile-1.3.0.tgz","fileCount":30,"integrity":"sha512-8RibIS4LNvR4+g4l3xGaCzR6Xmcbd2jVf8XyBtg6aAOrUcniMxnl/udnJz9r7H7Pq/bkDAiEgXO4PAuksywsvA==","signatures":[{"sig":"MEUCIDVGW9DrFoI0DiNFJT9OH4Pa+6eQpiboPnYVjVLh39ixAiEArvyh7R4v0VM15DQLWXmy438xbqCXwKmPFvKR8Rfz5S0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@degenlab%2fstacks-wallet-kit-mobile@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":47349},"main":"dist/src/index.js","type":"module","_from":"file:degenlab-stacks-wallet-kit-mobile-1.3.0.tgz","types":"dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","default":"./dist/src/index.js"}},"scripts":{"lint":"eslint '{src,testing}/**/*.{ts,tsx}' --fix","test":"jest","build":"tsc -b","format":"prettier --write '{src,testing}/**/*.{ts,tsx,js,json,md}'","format:check":"prettier --check '{src,testing}/**/*.{ts,tsx,js,json,md}'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0ed729cf-2ef4-41a5-9ecc-11dd2396720f"}},"_resolved":"/tmp/fd2c11b072ac03ffac3d2dc2dee7a454/degenlab-stacks-wallet-kit-mobile-1.3.0.tgz","_integrity":"sha512-8RibIS4LNvR4+g4l3xGaCzR6Xmcbd2jVf8XyBtg6aAOrUcniMxnl/udnJz9r7H7Pq/bkDAiEgXO4PAuksywsvA==","repository":{"url":"git+https://github.com/degen-lab/stacks-wallet-kit.git","type":"git"},"_npmVersion":"11.8.0","description":"A React Native/Expo SDK for building Stacks blockchain applications with Google authentication and wallet management.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"@noble/ciphers":"^2.0.1","expo-secure-store":"^15.0.7","react-native-keychain":"^10.0.0","@degenlab/stacks-wallet-kit-core":"1.3.0","@react-native-async-storage/async-storage":"^2.2.0","@react-native-google-signin/google-signin":"^16.0.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.4.5","babel-jest":"^30.2.0","typescript":"^5.9.3","@types/jest":"^29.5.14","@scure/bip39":"^2.0.1","@types/react":"^19.1.1","@jest/globals":"^30.0.5","react-test-renderer":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/stacks-wallet-kit-mobile_1.3.0_1769080525112_0.3989757154057718","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@degenlab/stacks-wallet-kit-mobile","version":"1.4.0","author":{"name":"DegenLab"},"license":"ISC","_id":"@degenlab/stacks-wallet-kit-mobile@1.4.0","maintainers":[{"name":"bowtiedblox","email":"degenlabsetups@gmail.com"}],"homepage":"https://github.com/degen-lab/stacks-wallet-kit#readme","bugs":{"url":"https://github.com/degen-lab/stacks-wallet-kit/issues"},"dist":{"shasum":"9a2aaf67beb4b4ee3bc3934518d2a20438c62b6c","tarball":"https://registry.npmjs.org/@degenlab/stacks-wallet-kit-mobile/-/stacks-wallet-kit-mobile-1.4.0.tgz","fileCount":30,"integrity":"sha512-TgnkzIG0NKjMusRCpqK41l71B4gJrLO0IPxKjcWoMqF+echylUVj1rl28Rtf9B758/YtUHwyve+qfhstNjYtaw==","signatures":[{"sig":"MEQCIGT/duTmFl/7c7d2tiRs/qNoVk413morp3XOk0udWjdIAiBri/fuMknRzC02yZ9oSm9oiV+BPGiAkj034dKSBr7V/A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@degenlab%2fstacks-wallet-kit-mobile@1.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":47823},"main":"dist/src/index.js","type":"module","_from":"file:degenlab-stacks-wallet-kit-mobile-1.4.0.tgz","types":"dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","default":"./dist/src/index.js"}},"scripts":{"lint":"eslint '{src,testing}/**/*.{ts,tsx}' --fix","test":"jest","build":"tsc -b","format":"prettier --write '{src,testing}/**/*.{ts,tsx,js,json,md}'","format:check":"prettier --check '{src,testing}/**/*.{ts,tsx,js,json,md}'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0ed729cf-2ef4-41a5-9ecc-11dd2396720f"}},"_resolved":"/tmp/1d45c5149b64bd4318b54c86ac49fb37/degenlab-stacks-wallet-kit-mobile-1.4.0.tgz","_integrity":"sha512-TgnkzIG0NKjMusRCpqK41l71B4gJrLO0IPxKjcWoMqF+echylUVj1rl28Rtf9B758/YtUHwyve+qfhstNjYtaw==","repository":{"url":"git+https://github.com/degen-lab/stacks-wallet-kit.git","type":"git"},"_npmVersion":"11.8.0","description":"A React Native/Expo SDK for building Stacks blockchain applications with Google authentication and wallet management.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"@noble/ciphers":"^2.0.1","expo-secure-store":"^15.0.7","react-native-keychain":"^10.0.0","@degenlab/stacks-wallet-kit-core":"1.4.0","@react-native-async-storage/async-storage":"^2.2.0","@react-native-google-signin/google-signin":"^16.0.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.4.5","babel-jest":"^30.2.0","typescript":"^5.9.3","@types/jest":"^29.5.14","@scure/bip39":"^2.0.1","@types/react":"^19.1.1","@jest/globals":"^30.0.5","react-test-renderer":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/stacks-wallet-kit-mobile_1.4.0_1769994115252_0.7715890411635977","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@degenlab/stacks-wallet-kit-mobile","version":"2.0.0","repository":{"url":"git+https://github.com/degen-lab/stacks-wallet-kit.git","type":"git"},"main":"dist/src/index.js","type":"module","dependencies":{"@noble/ciphers":"^2.0.1","@noble/hashes":"^2.0.1","@react-native-async-storage/async-storage":"^2.2.0","@react-native-google-signin/google-signin":"^16.0.0","expo-apple-authentication":"~8.0.7","expo-modules-core":"~3.0.27","expo-secure-store":"^15.0.7","react-native-keychain":"^10.0.0","@degenlab/stacks-wallet-kit-core":"2.0.0"},"devDependencies":{"@jest/globals":"^30.0.5","@scure/bip39":"^2.0.1","@types/jest":"^29.5.14","@types/react":"^19.1.1","babel-jest":"^30.2.0","jest":"^29.7.0","react-native":"0.81.5","react-test-renderer":"^19.2.0","ts-jest":"^29.4.5","typescript":"^5.9.3"},"peerDependencies":{"expo":">=54.0.0","react-native":">=0.81.5"},"publishConfig":{"access":"public","provenance":true},"license":"ISC","author":{"name":"DegenLab"},"types":"dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","default":"./dist/src/index.js"},"./app.plugin.js":"./app.plugin.js"},"scripts":{"lint":"eslint '{src,testing}/**/*.{ts,tsx}' --fix","format":"prettier --write '{src,testing}/**/*.{ts,tsx,js,json,md}'","format:check":"prettier --check '{src,testing}/**/*.{ts,tsx,js,json,md}'","build":"tsc -b","test":"jest"},"_id":"@degenlab/stacks-wallet-kit-mobile@2.0.0","description":"A React Native/Expo SDK for building Stacks blockchain applications with Google and Apple authentication, wallet management, and wallet backup.","bugs":{"url":"https://github.com/degen-lab/stacks-wallet-kit/issues"},"homepage":"https://github.com/degen-lab/stacks-wallet-kit#readme","_integrity":"sha512-nIJKh3ljKoYO2plz4eIzHDECAH6y98O55pkLEjn0S86ZcJm94Yxq7bOqnEOsVf1za5t5VtUM4UHEyWsccHntmw==","_resolved":"/tmp/71eeafad276ec826ee083403cad228f0/degenlab-stacks-wallet-kit-mobile-2.0.0.tgz","_from":"file:degenlab-stacks-wallet-kit-mobile-2.0.0.tgz","_nodeVersion":"24.14.1","_npmVersion":"11.11.0","dist":{"integrity":"sha512-nIJKh3ljKoYO2plz4eIzHDECAH6y98O55pkLEjn0S86ZcJm94Yxq7bOqnEOsVf1za5t5VtUM4UHEyWsccHntmw==","shasum":"c3c4c022b41e0c2133538778af40d52d4ea58764","tarball":"https://registry.npmjs.org/@degenlab/stacks-wallet-kit-mobile/-/stacks-wallet-kit-mobile-2.0.0.tgz","fileCount":47,"unpackedSize":78548,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@degenlab%2fstacks-wallet-kit-mobile@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDtLo4WwIQgnJ7lNP4T0YbKz1ygL61FRqCi8UktdFJchQIgG+bI5xOSxcI5PYByTyxHBELbNFaZlO6MR8Xy7YTwQaQ="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0ed729cf-2ef4-41a5-9ecc-11dd2396720f"}},"directories":{},"maintainers":[{"name":"bowtiedblox","email":"degenlabsetups@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/stacks-wallet-kit-mobile_2.0.0_1777985347472_0.8600312839817703"},"_hasShrinkwrap":false}},"time":{"created":"2025-12-09T17:52:31.516Z","modified":"2026-05-05T12:49:07.913Z","1.0.0":"2025-12-09T17:52:31.728Z","1.0.1":"2025-12-09T18:57:42.430Z","1.0.2":"2025-12-09T20:20:25.844Z","1.0.3":"2025-12-09T20:36:50.522Z","1.1.0":"2025-12-11T21:49:11.411Z","1.2.0":"2026-01-12T23:15:32.465Z","1.3.0":"2026-01-22T11:15:25.266Z","1.4.0":"2026-02-02T01:01:55.400Z","2.0.0":"2026-05-05T12:49:07.621Z"},"bugs":{"url":"https://github.com/degen-lab/stacks-wallet-kit/issues"},"author":{"name":"DegenLab"},"license":"ISC","homepage":"https://github.com/degen-lab/stacks-wallet-kit#readme","repository":{"url":"git+https://github.com/degen-lab/stacks-wallet-kit.git","type":"git"},"description":"A React Native/Expo SDK for building Stacks blockchain applications with Google and Apple authentication, wallet management, and wallet backup.","maintainers":[{"name":"bowtiedblox","email":"degenlabsetups@gmail.com"}],"readme":"# stacks-wallet-kit/mobile [![npm](https://img.shields.io/npm/v/@degenlab/stacks-wallet-kit-mobile?color=red)](https://www.npmjs.com/package/@degenlab/stacks-wallet-kit-mobile)\n\nA React Native/Expo SDK for building Stacks blockchain applications with Google and Apple authentication, wallet management, and wallet backup.\n\n## Purpose\n\nThis SDK enables seamless Web2 authentication for mobile apps and provides easy wallet backup to a safe place without requiring users to store or remember their mnemonic phrase. It simplifies blockchain operations by handling the complexity of parsing arguments and data, allowing developers to focus on building their applications rather than managing low-level blockchain interactions.\n\nThe mobile SDK imports functionality from the `@degenlab/stacks-wallet-kit-core` package, which is platform-agnostic and shared between this mobile SDK and the web extension SDK, ensuring consistency across platforms.\n\n## Installation\n\n```bash\nnpm install @degenlab/stacks-wallet-kit-mobile\n# or\nyarn add @degenlab/stacks-wallet-kit-mobile\n# or\npnpm add @degenlab/stacks-wallet-kit-mobile\n```\n\n**Note:** This package works with npm, yarn, and pnpm. Choose the package manager that fits your project.\n\n## Required Polyfills and Setup\n\nThe SDK requires Node.js polyfills to work in React Native/Expo environments. These polyfills must be imported **before** any SDK code runs.\n\n### Required Polyfill Packages\n\nInstall the following packages:\n\n```bash\nnpm install react-native-get-random-values buffer\n# For Expo projects:\nnpm install expo-standard-web-crypto\n```\n\n**Required packages:**\n\n1. **`react-native-get-random-values`** - Provides `crypto.getRandomValues()` for cryptographic operations\n2. **`buffer`** - Provides Node.js `Buffer` API\n3. **`expo-standard-web-crypto`** (Expo only) - Provides Web Crypto API polyfill\n\n### Polyfill Setup\n\n#### For Expo Router Projects\n\nIf you're using **Expo Router**, add the polyfills at the very top of your root layout file (`app/_layout.tsx` or `app/_layout.js`):\n\n```typescript\n// app/_layout.tsx\n// ⚠️ IMPORTANT: Polyfills MUST be imported FIRST, before any other imports\nimport 'react-native-get-random-values'\nimport 'expo-standard-web-crypto'\nimport { Buffer } from 'buffer'\n\n// Make Buffer available globally for React Native\nif (typeof global.Buffer === 'undefined') {\n  global.Buffer = Buffer\n}\n\n// Now import your other dependencies\nimport { Stack } from 'expo-router'\n// ... rest of your imports\n```\n\n#### For React Native (Non-Expo) Projects\n\nIf you're using **React Native without Expo**, create an `index.js` file in your project root:\n\n```javascript\n// index.js\n// ⚠️ IMPORTANT: Polyfills MUST be imported FIRST\nimport 'react-native-get-random-values'\nimport { Buffer } from 'buffer'\n\n// Make Buffer available globally\nif (typeof global.Buffer === 'undefined') {\n  global.Buffer = Buffer\n}\n\n// Now import your app entry point\nimport { AppRegistry } from 'react-native'\nimport App from './App'\nimport { name as appName } from './app.json'\n\nAppRegistry.registerComponent(appName, () => App)\n```\n\nThen update your `package.json`:\n\n```json\n{\n  \"main\": \"index.js\"\n}\n```\n\n#### For Expo (Non-Router) Projects\n\nIf you're using **Expo without Router**, add polyfills to your `App.js` or `App.tsx`:\n\n```typescript\n// App.tsx\n// ⚠️ IMPORTANT: Polyfills MUST be imported FIRST\nimport 'react-native-get-random-values'\nimport 'expo-standard-web-crypto'\nimport { Buffer } from 'buffer'\n\n// Make Buffer available globally\nif (typeof global.Buffer === 'undefined') {\n  global.Buffer = Buffer\n}\n\n// Now import your app components\nimport { View, Text } from 'react-native'\n// ... rest of your app\n```\n\n### Platform-Specific Configuration\n\n#### Apple Sign-In and iCloud CloudKit Backup\n\nApple Sign-In and CloudKit backup are iOS-only. Google auth and Google Drive backup remain available when you pass a `google` configuration.\n\nBoth features depend on the app's registered iOS bundle identifier. Create or open the App ID in Apple Developer for the exact `ios.bundleIdentifier` used by the app, for example `com.yourcompany.yourapp`.\n\nFor Apple Sign-In:\n\n- Enable **Sign in with Apple** for the App ID.\n- Add `ios.usesAppleSignIn: true`.\n- Add the `expo-apple-authentication` config plugin.\n\nFor CloudKit backup:\n\n- Enable **iCloud** and select **CloudKit** for the App ID.\n- Create or select the CloudKit container used for wallet backups.\n- Add the `@degenlab/stacks-wallet-kit-mobile` config plugin.\n- Regenerate/download provisioning profiles after changing capabilities.\n\nConfigure both plugins when the app uses both Apple Sign-In and CloudKit backup:\n\n```json\n{\n  \"expo\": {\n    \"ios\": {\n      \"bundleIdentifier\": \"com.yourcompany.yourapp\",\n      \"usesAppleSignIn\": true\n    },\n    \"plugins\": [\n      \"expo-apple-authentication\",\n      [\n        \"@degenlab/stacks-wallet-kit-mobile\",\n        { \"containerIdentifier\": \"iCloud.com.yourcompany.yourapp\" }\n      ]\n    ]\n  }\n}\n```\n\n`expo-apple-authentication` enables the native Apple Sign-In module used by `signIn('apple')`. The `@degenlab/stacks-wallet-kit-mobile` plugin adds the CloudKit iCloud service, the CloudKit container entitlement, and the `Info.plist` value that the CloudKit backup module reads at runtime.\n\nIf you only use Apple Sign-In, you do not need the wallet-kit plugin. If you only use CloudKit backup, you still need the wallet-kit plugin, but you do not need to call `signIn('apple')` first; CloudKit uses the signed-in iCloud account on the device.\n\nCloudKit backup stores the encrypted wallet envelope in the signed-in iCloud user's private CloudKit database. The user must be signed into iCloud on the device, and the app build must use a provisioning profile that includes the CloudKit capability and container.\n\n#### Android Emulator\n\nWhen testing on Android emulator, use `10.0.2.2` instead of `localhost` for devnet URLs:\n\n```typescript\nimport { Platform } from 'react-native'\n\nconst getDevnetUrl = (): string => {\n  if (Platform.OS === 'android') {\n    // Android emulator - use 10.0.2.2 (maps to host's localhost)\n    return 'http://10.0.2.2:3999/'\n  } else if (Platform.OS === 'web') {\n    // Web platform - use localhost\n    return 'http://localhost:3999/'\n  } else {\n    // iOS - use localhost (iOS simulator maps localhost correctly)\n    return 'http://localhost:3999/'\n  }\n}\n\nconst client = new MobileClient({\n  google: {\n    webClientId: 'web-client-id',\n    iosClientId: 'ios-client-id',\n  },\n  network: NetworkType.Devnet,\n  devnetUrl: getDevnetUrl(),\n})\n```\n\n#### Web Platform\n\nWhen running on web (Expo web), the polyfills work the same way, but make sure to use `localhost` for devnet URLs instead of `10.0.2.2`.\n\n### Common Errors and Solutions\n\n**Error: `crypto.getRandomValues must be defined`**\n\n- **Solution:** Make sure `react-native-get-random-values` is imported at the very top of your entry file, before any other imports.\n\n**Error: `Property 'Buffer' doesn't exist`**\n\n- **Solution:** Import `buffer` and set `global.Buffer = Buffer` before any SDK code runs.\n\n**Error: `ReferenceError: Buffer is not defined`**\n\n- **Solution:** Ensure the Buffer polyfill is set up correctly (see setup instructions above).\n\n**Troubleshooting Steps:**\n\n1. Verify polyfills are imported **first** in your entry file\n2. Clear Metro bundler cache: `npx expo start --clear` or `npx react-native start --reset-cache`\n3. Delete `node_modules` and reinstall: `rm -rf node_modules && npm install`\n4. Restart your development server completely\n\n## Quick Start\n\n```typescript\nimport { MobileClient, NetworkType } from '@degenlab/stacks-wallet-kit-mobile'\n\nconst client = new MobileClient({\n  google: {\n    webClientId: 'your-web-client-id',\n    iosClientId: 'your-ios-client-id',\n    scopes: ['email', 'profile'],\n  },\n  network: NetworkType.Testnet,\n  devnetUrl: 'http://10.0.2.2:3999',\n})\n\nclient.setNetwork(NetworkType.Devnet)\n\nconst wallet = await client.createWallet() // Optional passphrase\n\nconst accounts = await client.getWalletAccounts()\nconst account = accounts[0]\n\nconst balance = await client.getBalance(account)\n\n// Sign a prepared Stacks transaction with a specific account\nconst signedTx = await client.signTransaction(\n  account.index,\n  unsignedTransaction // StacksTransactionWire\n)\n\n// Make a contract call with custom fee\nimport { PostConditionMode, ClarityValue } from '@stacks/transactions'\n\nconst txId = await client.makeContractCall(\n  'SP000000000000000000002Q6VF78.contract-name',\n  'function-name',\n  [/* functionArgs as ClarityValue[] */],\n  PostConditionMode.Allow,\n  5000 // optional custom fee in microSTX\n)\n```\n\n## MobileClient Configuration\n\n### Constructor Parameters\n\n```typescript\nnew MobileClient({\n  google?: {\n    webClientId: string       // Google OAuth web client ID\n    iosClientId: string       // Google OAuth iOS client ID\n    scopes?: string[]         // Optional: Additional OAuth scopes\n  }\n  network: NetworkType        // Required: Initial network (Mainnet, Testnet, or Devnet)\n  storageManager?: IStorageManager  // Optional: Custom storage manager\n  mainnetUrl?: string         // Optional: Custom mainnet API URL\n  testnetUrl?: string         // Optional: Custom testnet API URL\n  devnetUrl?: string          // Optional: Custom devnet API URL\n})\n```\n\n### Default Configuration\n\n**Storage Manager:**\n\n- If not provided, `MobileClient` automatically selects a storage implementation:\n  - **Expo**: Uses `SecureStore` (Expo SecureStore)\n  - **React Native**: Uses `KeyChainStorage` (react-native-keychain)\n\n**OAuth Scopes:**\n\n- Default scope: `https://www.googleapis.com/auth/drive.appdata` (required for Google Drive backup)\n- Additional scopes can be provided via the `scopes` parameter and will be merged with the default scope\n\n**Stacks API URLs:**\n\n- **Mainnet**: `https://api.hiro.so/`\n- **Testnet**: `https://api.testnet.hiro.so/`\n- **Devnet**: `http://10.0.2.2:3999/` (Android emulator compatible)\n\n**Google Sign-In Configuration:**\n\n- `offlineAccess: true` - Enables refresh token support\n- `forceCodeForRefreshToken: true` - Forces code exchange for refresh tokens\n\n### Internal Components\n\n`MobileClient` automatically initializes the following components:\n\n- **Authentication**: `GoogleAuth` when Google config is provided, plus `AppleAuth` on iOS\n- **Backup Manager**: `BackupManager` with registered Google Drive and iOS CloudKit providers\n- **Wallet Manager**: `WalletManager` for wallet operations\n- **Encryption Manager**: `EncryptionManager` for encryption/decryption\n- **Stacks Client**: `StacksClient` with configured network and API URLs\n- **Stacking Client**: `StackingClient` with configured network\n\n## API Reference\n\n### Authentication\n\n#### `signIn(provider)`\n\nSign in with Google or Apple.\n\n```typescript\nconst { user } = await client.signIn('google')\nconst hasBackup = await client.hasBackup('google')\n\nif (user.provider === 'google') {\n  console.log(user.credentials.accessToken)\n  console.log(user.credentials.idToken)\n}\n```\n\nOn iOS, Apple Sign-In returns an `AuthenticatedUser` with `providerUserId`, optional email/profile fields, and Apple credentials under `user.credentials`.\n\n```typescript\nconst { user } = await client.signIn('apple')\n\nif (user.provider === 'apple') {\n  console.log(user.credentials.authorizationCode)\n  console.log(user.credentials.rawNonce)\n}\n```\n\n#### `signOut()`\n\nSign out from registered authentication providers.\n\n```typescript\nawait client.signOut()\n```\n\n### Wallet\n\n#### `createWallet(passphrase?: string)`\n\nCreate a new wallet with a generated mnemonic.\n\n```typescript\nconst wallet: Wallet = await client.createWallet() // Optional passphrase\n```\n\n#### `storeExistingWallet(mnemonic: string, passphrase?: string)`\n\nStore an existing wallet from a mnemonic phrase.\n\n```typescript\nconst mnemonic: string = 'abandon abandon abandon ...'\nconst wallet: Wallet = await client.storeExistingWallet(mnemonic) // Optional passphrase\n```\n\n#### `getWalletAccounts()`\n\nGet all accounts in the wallet.\n\n```typescript\nconst accounts: WalletAccount[] = await client.getWalletAccounts()\n```\n\n#### `createAccount()`\n\nCreate a new account in the wallet.\n\n```typescript\nconst newAccount: WalletAccount = await client.createAccount()\n```\n\n#### `removeWalletAccount(accountIndex: number)`\n\nRemove an account from the wallet by its account index property.\n\n```typescript\n// Remove account where account.index === 1\nawait client.removeWalletAccount(1)\n\n// Trying to remove the same index again will throw an error\n// await client.removeWalletAccount(1) // ❌ Error: Account with index 1 not found\n\n// Get updated accounts\nconst accounts: WalletAccount[] = await client.getWalletAccounts()\n```\n\n**Note:** \n- This removes the account by its `index` property, not by array position\n- The deleted index is tracked and will be reused when creating new accounts\n- Throws an error if no account with the specified index exists\n- This permanently removes the account from the wallet stored in local storage\n\n#### `getMnemonic()`\n\nRetrieve the stored mnemonic phrase from secure storage.\n\n```typescript\nconst mnemonic: string | null = await client.getMnemonic()\n```\n\n**Note:** Returns `null` if no mnemonic is stored. The mnemonic is securely stored when creating or storing a wallet.\n\n### Backup\n\n#### `backupWallet(password: string, targets?: AuthProvider[])`\n\nBackup the wallet to one or more providers.\n\n```typescript\nawait client.backupWallet('wallet-password', ['google'])\nawait client.backupWallet('wallet-password', ['apple'])\nawait client.backupWallet('wallet-password', ['google', 'apple'])\n```\n\n#### `retrieveWalletFromProvider(password: string, provider: AuthProvider)`\n\nRetrieve a wallet backup from a specific provider.\n\n```typescript\nconst { wallet, mnemonic }: { wallet: Wallet; mnemonic: string } =\n  await client.retrieveWalletFromProvider('wallet-password', 'google')\n\nconst restoredFromCloudKit = await client.retrieveWalletFromProvider(\n  'wallet-password',\n  'apple'\n)\n```\n\n#### `deleteBackup(provider?: AuthProvider)`\n\nDelete the wallet backup from a specific provider.\n\n```typescript\nawait client.deleteBackup('google')\nawait client.deleteBackup('apple')\n```\n\n#### Deprecated Google-only wrappers\n\nThe previous Google-only facade methods are still available for backward compatibility, but they are deprecated:\n\n- `loginWithGoogle()` -> use `signIn('google')` and `hasBackup('google')`\n- `retrieveWallet(password)` -> use `retrieveWalletFromProvider(password, 'google')`\n- `deleteBackupWithoutPassword()` -> use `deleteBackup('google')`\n\n### Stacks\n\n#### `getBalance(account)`\n\nGet the STX balance for an account.\n\n```typescript\nconst accounts: WalletAccount[] = await client.getWalletAccounts()\nconst account: WalletAccount = accounts[0]\nconst balance: number = await client.getBalance(account) // Returns: number\n```\n\n#### `sendStx(accountIndex, to, amount, network, memo?)`\n\nSend STX tokens to another address.\n\n```typescript\nconst txid: string = await client.sendStx(\n  0, // account index\n  'ST1AWHANXSGZ3SY8XQC2J7S18E22KJJW9B3JT2T54', // recipient\n  0.002, // amount in STX\n  NetworkType.Devnet, // network\n  'Test memo' // optional memo\n) // Returns: string\n```\n\n#### `transferNFT(accountIndex, contractId, tokenId, to, network)`\n\nTransfer an NFT to another address. Designed for SIP-9 NFT trait compliant contracts.\n\n```typescript\nconst txid: string = await client.transferNFT(\n  0, // account index\n  'STJK0PY5JPPNR4PZWR7HVS7T92B1MKHQKBT5Q6MX.nft-test', // contract ID\n  '2', // token ID\n  'ST10WDE40SQ62CSWRE99NA0KWBZ74NNK4FNS9T19Q', // recipient\n  NetworkType.Devnet // network\n) // Returns: string\n```\n\n#### `transferFT(accountIndex, contractId, amount, to, network)`\n\nTransfer fungible tokens to another address. Designed for SIP-10 FT trait compliant contracts.\n\n```typescript\nconst txid: string = await client.transferFT(\n  0, // account index\n  'STJK0PY5JPPNR4PZWR7HVS7T92B1MKHQKBT5Q6MX.ft-test', // contract ID\n  100 * 1000000, // amount in micro-units (100 tokens with 6 decimals)\n  'ST10WDE40SQ62CSWRE99NA0KWBZ74NNK4FNS9T19Q', // recipient\n  NetworkType.Devnet // network\n) // Returns: string\n```\n\n#### `makeContractCall(contractAddress, functionName, functionArgs, postConditionMode?)`\n\nMake a contract call to any Stacks smart contract.\n\n```typescript\nimport {\n  uintCV,\n  standardPrincipalCV,\n  PostConditionMode,\n  ClarityValue,\n} from '@stacks/transactions'\n\nconst contractAddress: string =\n  'STJK0PY5JPPNR4PZWR7HVS7T92B1MKHQKBT5Q6MX.nft-test'\nconst functionName: string = 'transfer'\nconst functionArgs: ClarityValue[] = [\n  uintCV('2'), // token-id\n  standardPrincipalCV(senderAddress), // sender\n  standardPrincipalCV(recipientAddress), // recipient\n]\n\n// With default post condition mode (PostConditionMode.Deny)\nconst txid: string = await client.makeContractCall(\n  contractAddress,\n  functionName,\n  functionArgs\n) // Returns: string\n\n// With custom post condition mode\nconst txid2: string = await client.makeContractCall(\n  contractAddress,\n  functionName,\n  functionArgs,\n  PostConditionMode.Allow // Optional: defaults to PostConditionMode.Deny\n) // Returns: string\n```\n\n### Stacking\n\n#### Solo Stacking\n\n##### `stackSTX(account, amount, lockPeriod, maxAmount, options?)`\n\nStack STX to earn Bitcoin rewards.\n\n**Note:** If `options` is not provided, the signature will be automatically generated by a backend service for mainnet and testnet networks.\n\n```typescript\nconst accounts: WalletAccount[] = await client.getWalletAccounts()\nconst account: WalletAccount = accounts[0]\n\n// Basic usage (signature generated by backend)\nconst txid: string = await client.stackSTX(\n  account,\n  1000, // amount to stack in STX\n  1, // lock period in cycles\n  1000 // max amount in STX\n) // Returns: string\n\n// With custom signer options (skip backend signature generation)\nconst txid2: string = await client.stackSTX(account, 1000, 1, 1000, {\n  signerSignature: '0x...', // Optional: custom signer signature\n  signerKey: '0x...', // Optional: custom signer key\n  authId: '123', // Optional: custom auth ID\n}) // Returns: string\n```\n\n##### `stackExtend(account, extendCount, maxAmount, options?)`\n\nExtend the stacking lock period.\n\n**Note:** If `options` is not provided, the signature will be automatically generated by a backend service for mainnet and testnet networks.\n\n```typescript\nconst accounts: WalletAccount[] = await client.getWalletAccounts()\nconst account: WalletAccount = accounts[0]\n\n// Basic usage (signature generated by backend)\nconst txid: string = await client.stackExtend(\n  account,\n  2, // number of cycles to extend\n  1000 // max amount in STX\n) // Returns: string\n\n// With custom signer options (skip backend signature generation)\nconst txid2: string = await client.stackExtend(account, 2, 1000, {\n  signerSignature: '0x...', // Optional: custom signer signature\n  signerKey: '0x...', // Optional: custom signer key\n  authId: '123', // Optional: custom auth ID\n}) // Returns: string\n```\n\n##### `stackIncrease(account, increaseBy, maxAmount, currentLockPeriod, options?)`\n\nIncrease the amount being stacked.\n\n**Note:** If `options` is not provided, the signature will be automatically generated by a backend service for mainnet and testnet networks.\n\n```typescript\nconst accounts: WalletAccount[] = await client.getWalletAccounts()\nconst account: WalletAccount = accounts[0]\n\n// Basic usage (signature generated by backend)\nconst txid: string = await client.stackIncrease(\n  account,\n  500, // amount to increase by in STX\n  1500, // max amount in STX\n  1 // current lock period\n) // Returns: string\n\n// With custom signer options (skip backend signature generation)\nconst txid2: string = await client.stackIncrease(account, 500, 1500, 1, {\n  signerSignature: '0x...', // Optional: custom signer signature\n  signerKey: '0x...', // Optional: custom signer key\n  authId: '123', // Optional: custom auth ID\n}) // Returns: string\n```\n\n#### Stacking with a Pool\n\n##### `delegateSTX(account, amount, delegateTo, untilBurnHeight?)`\n\nDelegate STX to a stacking pool.\n\n```typescript\nimport { StackingPool } from '@degenlab/stacks-wallet-kit-core'\n\nconst pool: StackingPool = {\n  name: 'Pool Name',\n  address: 'SP...',\n}\n\nconst accounts: WalletAccount[] = await client.getWalletAccounts()\nconst account: WalletAccount = accounts[0]\n\nconst txid: string = await client.delegateSTX(\n  account,\n  1000, // amount to delegate in STX\n  pool, // stacking pool\n  100000 // optional: until burn height\n) // Returns: string\n```\n\n##### `revokeDelegation(account)`\n\nRevoke STX delegation from a stacking pool.\n\n```typescript\nconst accounts: WalletAccount[] = await client.getWalletAccounts()\nconst account: WalletAccount = accounts[0]\n\nconst txid: string = await client.revokeDelegation(account) // Returns: string\n```\n\n### Network\n\n#### `setNetwork(network)`\n\nSet the network for all operations.\n\n```typescript\nimport { NetworkType } from '@degenlab/stacks-wallet-kit-mobile'\n\nclient.setNetwork(NetworkType.Mainnet)\nclient.setNetwork(NetworkType.Testnet)\nclient.setNetwork(NetworkType.Devnet)\n```\n\n## Configuration\n\n### Platform-Specific Devnet URLs\n\nSee the [Platform-Specific Configuration](#platform-specific-configuration) section above for details on setting up devnet URLs for different platforms (Android emulator, iOS simulator, Web).\n\n### Custom Storage Manager\n\nYou can provide a custom storage manager by implementing the `IStorageManager` interface from the `@degenlab/stacks-wallet-kit-core` package. Make sure to install the core package:\n\n```bash\nnpm install @degenlab/stacks-wallet-kit-core\n# or\nyarn add @degenlab/stacks-wallet-kit-core\n# or\npnpm add @degenlab/stacks-wallet-kit-core\n```\n\n```typescript\nimport { IStorageManager } from '@degenlab/stacks-wallet-kit-core'\n\nclass CustomStorage implements IStorageManager {\n  async setItem<T>(key: string, value: T): Promise<void> {\n    // Your implementation\n  }\n\n  async getItem<T>(key: string): Promise<T | null> {\n    // Your implementation\n  }\n\n  async removeItem(key: string): Promise<void> {\n    // Your implementation\n  }\n\n  async clear(): Promise<void> {\n    // Your implementation\n  }\n}\n\nconst client = new MobileClient({\n  google: {\n    webClientId: 'web-client-id',\n    iosClientId: 'ios-client-id',\n  },\n  network: NetworkType.Testnet,\n  storageManager: new CustomStorage(),\n})\n```\n\n## Types\n\n### NetworkType\n\n```typescript\nenum NetworkType {\n  Mainnet = 'mainnet',\n  Testnet = 'testnet',\n  Devnet = 'devnet',\n}\n```\n\n### WalletAccount\n\n```typescript\ninterface WalletAccount {\n  index: number\n  publicKey: string\n  addresses: {\n    mainnet: string\n    testnet: string\n  }\n}\n```\n\n### StackingPool\n\n```typescript\ninterface StackingPool {\n  name: string\n  address: string\n}\n```\n\n## Examples\n\n### Complete Wallet Flow\n\n```typescript\nimport { MobileClient, NetworkType } from '@degenlab/stacks-wallet-kit-mobile'\nimport { Wallet, WalletAccount } from '@degenlab/stacks-wallet-kit-core'\n\nasync function walletFlow(): Promise<void> {\n  const client: MobileClient = new MobileClient({\n    google: {\n      webClientId: 'web-client-id',\n      iosClientId: 'ios-client-id',\n    },\n    network: NetworkType.Devnet,\n    devnetUrl: 'http://10.0.2.2:3999',\n  })\n\n  await client.signIn('google')\n  const hasBackup = await client.hasBackup('google')\n\n  let wallet: Wallet\n  if (hasBackup) {\n    const result: { wallet: Wallet; mnemonic: string } =\n      await client.retrieveWalletFromProvider('password', 'google')\n    wallet = result.wallet\n  } else {\n    wallet = await client.createWallet() // Optional passphrase\n    await client.backupWallet('password', ['google'])\n  }\n\n  const accounts: WalletAccount[] = await client.getWalletAccounts()\n  const account: WalletAccount = accounts[0]\n\n  const balance: number = await client.getBalance(account)\n  if (balance > 0.01) {\n    const txid: string = await client.sendStx(\n      0,\n      'ST1AWHANXSGZ3SY8XQC2J7S18E22KJJW9B3JT2T54',\n      0.01,\n      NetworkType.Devnet,\n      'Test payment'\n    )\n  }\n}\n```\n\n### NFT Transfer Example\n\n```typescript\nimport { MobileClient, NetworkType } from '@degenlab/stacks-wallet-kit-mobile'\nimport { WalletAccount } from '@degenlab/stacks-wallet-kit-core'\n\nasync function transferNFT(): Promise<void> {\n  const client: MobileClient = new MobileClient({\n    google: {\n      webClientId: 'web-client-id',\n      iosClientId: 'ios-client-id',\n    },\n    network: NetworkType.Devnet,\n  })\n\n  const accounts: WalletAccount[] = await client.getWalletAccounts()\n  const account: WalletAccount = accounts[0]\n\n  const txid: string = await client.transferNFT(\n    account.index,\n    'SP1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ.my-nft',\n    '1',\n    'ST1AWHANXSGZ3SY8XQC2J7S18E22KJJW9B3JT2T54',\n    NetworkType.Devnet\n  )\n}\n```\n\n### Custom Contract Call Example\n\n```typescript\nimport { MobileClient, NetworkType } from '@degenlab/stacks-wallet-kit-mobile'\nimport {\n  uintCV,\n  standardPrincipalCV,\n  ClarityValue,\n  PostConditionMode,\n} from '@stacks/transactions'\n\nasync function customContractCall(): Promise<void> {\n  const client: MobileClient = new MobileClient({\n    google: {\n      webClientId: 'web-client-id',\n      iosClientId: 'ios-client-id',\n    },\n    network: NetworkType.Devnet,\n  })\n\n  const contractAddress: string =\n    'SP1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ.my-contract'\n  const functionName: string = 'my-function'\n  const functionArgs: ClarityValue[] = [\n    uintCV(100),\n    standardPrincipalCV('ST1AWHANXSGZ3SY8XQC2J7S18E22KJJW9B3JT2T54'),\n  ]\n\n  // With optional post condition mode\n  const txid: string = await client.makeContractCall(\n    contractAddress,\n    functionName,\n    functionArgs,\n    PostConditionMode.Allow\n  )\n}\n```\n","readmeFilename":"README.md"}