{"_id":"@solana/kit-plugin-wallet","_rev":"10-ffb8d4e0a677ca2fd293f67ff374d183","name":"@solana/kit-plugin-wallet","dist-tags":{"latest":"0.20.0"},"versions":{"0.0.0":{"name":"@solana/kit-plugin-wallet","version":"0.0.0","author":"","license":"ISC","_id":"@solana/kit-plugin-wallet@0.0.0","maintainers":[{"name":"solana-devs","email":"npm@solana.org"}],"dist":{"shasum":"ffaa98b12f90a83c9aca582803298a4362d752d2","tarball":"https://registry.npmjs.org/@solana/kit-plugin-wallet/-/kit-plugin-wallet-0.0.0.tgz","fileCount":1,"integrity":"sha512-JtbFXpVZkmiD+6Fr+kMRI5p3s/L7n7HHYHIfwdrEeCGq25df59I/rZtn7Dfe4v2Uv3SVN74pOEI+YXQ6PB9b/A==","signatures":[{"sig":"MEQCIC/fh8+3U/2Ml/u2k1WtB0LrxUZkva5nA9VL/rhYa0tSAiACmzDiZ8DtBHhjC2whlAx14+Bqo3Q7vLD+r5WjKZoY/Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":243},"main":"index.js","type":"commonjs","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"solana-devs","email":"npm@solana.org"},"_npmVersion":"11.12.1","description":"","directories":{},"_nodeVersion":"24.10.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/kit-plugin-wallet_0.0.0_1781014149486_0.7002132024883179","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"@solana/kit-plugin-wallet","version":"0.12.0","keywords":["kit","plugin","signer","solana","wallet","wallet-adapter","wallet-standard"],"license":"MIT","_id":"@solana/kit-plugin-wallet@0.12.0","maintainers":[{"name":"solana-devs","email":"npm@solana.org"}],"homepage":"https://github.com/anza-xyz/kit-plugins#readme","bugs":{"url":"http://github.com/anza-xyz/kit-plugins/issues"},"dist":{"shasum":"eb926fb838bdf143857cef639843e6271cbe1253","tarball":"https://registry.npmjs.org/@solana/kit-plugin-wallet/-/kit-plugin-wallet-0.12.0.tgz","fileCount":27,"integrity":"sha512-517pQAF1+6lo5QQ58IroybHe22jV7E2IqyLQntFlDpgvPCPjHFGSsrUFy9nk4UhhM6tF/VApr3Quc2OKf4P7Mw==","signatures":[{"sig":"MEQCIB0psyqOUUrspN0m979IHrH+GrAsiA6eDL7fUORGATQ1AiAxayCmmGV9tKk+dkPn4Zr3zqkapGcnLmlYA6GQNk9jcA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@solana%2fkit-plugin-wallet@0.12.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":430395},"main":"./dist/index.node.cjs","type":"commonjs","_from":"file:solana-kit-plugin-wallet-0.12.0.tgz","types":"./dist/types/index.d.ts","module":"./dist/index.node.mjs","browser":{"./dist/index.node.cjs":"./dist/index.browser.cjs","./dist/index.node.mjs":"./dist/index.browser.mjs"},"exports":{"node":{"import":"./dist/index.node.mjs","require":"./dist/index.node.cjs"},"types":"./dist/types/index.d.ts","browser":{"import":"./dist/index.browser.mjs","require":"./dist/index.browser.cjs"},"react-native":"./dist/index.react-native.mjs"},"scripts":{"dev":"vitest --project node","test":"pnpm test:types && pnpm test:treeshakability && pnpm test:unit","build":"rimraf dist && tsup && tsc -p ./tsconfig.declarations.json","test:unit":"vitest run","test:types":"tsc --noEmit","test:treeshakability":"for file in dist/index.*.mjs; do agadoo $file; done"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ed89fe80-684a-4377-804b-61ea481b37c7"}},"_resolved":"/tmp/b7faec2b62bd3a73e88a5520b7bc89a7/solana-kit-plugin-wallet-0.12.0.tgz","_integrity":"sha512-517pQAF1+6lo5QQ58IroybHe22jV7E2IqyLQntFlDpgvPCPjHFGSsrUFy9nk4UhhM6tF/VApr3Quc2OKf4P7Mw==","repository":{"url":"git+https://github.com/anza-xyz/kit-plugins.git","type":"git"},"_npmVersion":"11.13.0","description":"Wallet connection plugin for Kit clients","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","browserslist":["supports bigint and not dead","maintained node versions"],"dependencies":{"@wallet-standard/ui":"^1.0.3","@wallet-standard/app":"^1.1.1","@wallet-standard/base":"^1.1.1","@wallet-standard/features":"^1.1.1","@wallet-standard/ui-features":"^1.0.3","@wallet-standard/ui-registry":"^1.1.1","@solana/wallet-account-signer":"^6.10.0","@solana/wallet-standard-chains":"^1.1.2","@solana/wallet-standard-features":"^1.4.0"},"react-native":"./dist/index.react-native.mjs","_hasShrinkwrap":false,"devDependencies":{"@wallet-standard/errors":"^0.1.2"},"peerDependencies":{"@solana/kit":"^6.10.0"},"_npmOperationalInternal":{"tmp":"tmp/kit-plugin-wallet_0.12.0_1782136881559_0.7158416108813372","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"@solana/kit-plugin-wallet","version":"0.13.0","keywords":["kit","plugin","signer","solana","wallet","wallet-adapter","wallet-standard"],"license":"MIT","_id":"@solana/kit-plugin-wallet@0.13.0","maintainers":[{"name":"solana-devs","email":"npm@solana.org"}],"homepage":"https://github.com/anza-xyz/kit-plugins#readme","bugs":{"url":"http://github.com/anza-xyz/kit-plugins/issues"},"dist":{"shasum":"880b7d2e87d9e8a856df801f4eb58f7d54b6ae37","tarball":"https://registry.npmjs.org/@solana/kit-plugin-wallet/-/kit-plugin-wallet-0.13.0.tgz","fileCount":44,"integrity":"sha512-vCsRtjbTPM0zDf99oNnIcf35UhQIrkm5c5RBV7oBNXUeaHbW+4AxGwubFGl3jUgP8LH3G6bW0Z/AWCBFx95lzA==","signatures":[{"sig":"MEUCIQCm0M586wYWAnYV9Oh9HiZTf8mPTWb7otKwI1JKsI48lwIgc9qlnZl0sApNVDswtEaQF8tbkGX47kJofTzvoQ3W+kg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@solana%2fkit-plugin-wallet@0.13.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":620202},"main":"./dist/index.node.cjs","type":"commonjs","_from":"file:solana-kit-plugin-wallet-0.13.0.tgz","types":"./dist/types/index.d.ts","module":"./dist/index.node.mjs","browser":{"./dist/index.node.cjs":"./dist/index.browser.cjs","./dist/index.node.mjs":"./dist/index.browser.mjs"},"exports":{".":{"node":{"import":"./dist/index.node.mjs","require":"./dist/index.node.cjs"},"types":"./dist/types/index.d.ts","browser":{"import":"./dist/index.browser.mjs","require":"./dist/index.browser.cjs"},"react-native":"./dist/index.react-native.mjs"},"./react":{"node":{"import":"./dist/react/index.node.mjs","require":"./dist/react/index.node.cjs"},"types":"./dist/types/react/index.d.ts","browser":{"import":"./dist/react/index.browser.mjs","require":"./dist/react/index.browser.cjs"},"react-native":"./dist/react/index.react-native.mjs"}},"scripts":{"dev":"vitest --project node","test":"pnpm test:types && pnpm test:treeshakability && pnpm test:unit","build":"rimraf dist && tsup && tsc -p ./tsconfig.declarations.json","test:unit":"vitest run","test:types":"tsc --noEmit","test:treeshakability":"for file in dist/index.*.mjs dist/react/index.*.mjs; do agadoo $file; done"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ed89fe80-684a-4377-804b-61ea481b37c7"}},"_resolved":"/tmp/d73fc0649f7c00dcfa1616af6827dceb/solana-kit-plugin-wallet-0.13.0.tgz","_integrity":"sha512-vCsRtjbTPM0zDf99oNnIcf35UhQIrkm5c5RBV7oBNXUeaHbW+4AxGwubFGl3jUgP8LH3G6bW0Z/AWCBFx95lzA==","deprecated":"Broken build; upgrade to the latest version","repository":{"url":"git+https://github.com/anza-xyz/kit-plugins.git","type":"git"},"_npmVersion":"11.16.0","description":"Wallet connection plugin for Kit clients","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","browserslist":["supports bigint and not dead","maintained node versions"],"dependencies":{"@wallet-standard/ui":"^1.0.3","@wallet-standard/app":"^1.1.1","@wallet-standard/base":"^1.1.1","@wallet-standard/features":"^1.1.1","@wallet-standard/ui-features":"^1.0.3","@wallet-standard/ui-registry":"^1.1.1","@solana/wallet-account-signer":"^7.0.0","@solana/wallet-standard-chains":"^1.1.2","@solana/wallet-standard-features":"^1.4.0"},"react-native":"./dist/index.react-native.mjs","_hasShrinkwrap":false,"devDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0","@types/react":"^18.0.0 || ^19.0.0","@solana/react":"^7.0.0","@testing-library/react":"^16.0.0","@wallet-standard/errors":"^0.1.2"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","@solana/kit":"^7.0.0","@solana/react":"^7.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@solana/react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/kit-plugin-wallet_0.13.0_1783956634672_0.8919975544970888","host":"s3://npm-registry-packages-npm-production"}},"0.13.1":{"name":"@solana/kit-plugin-wallet","version":"0.13.1","keywords":["kit","plugin","signer","solana","wallet","wallet-adapter","wallet-standard"],"license":"MIT","_id":"@solana/kit-plugin-wallet@0.13.1","maintainers":[{"name":"solana-devs","email":"npm@solana.org"}],"homepage":"https://github.com/anza-xyz/kit-plugins#readme","bugs":{"url":"http://github.com/anza-xyz/kit-plugins/issues"},"dist":{"shasum":"819b1dd476f6fb8dd956b1f4d243169736525938","tarball":"https://registry.npmjs.org/@solana/kit-plugin-wallet/-/kit-plugin-wallet-0.13.1.tgz","fileCount":44,"integrity":"sha512-Zmbz7MAa5HHZPKMKoYMzi9Xh6jBD40WTMB5M6oZBkrTQKSnXnsf2wyjDG5NmkaSPS/7He+oLLuxPOeukfzoxvg==","signatures":[{"sig":"MEYCIQCoNLcQz4nBrMaXRyOlzq/lxLK45zb3uhfLZdZwvHebFwIhAJIsDWvgQiNY/ULHdgGm7c79mE/DgSmQ/dxETNBS9w2y","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@solana%2fkit-plugin-wallet@0.13.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":630258},"main":"./dist/index.node.cjs","type":"commonjs","_from":"file:solana-kit-plugin-wallet-0.13.1.tgz","types":"./dist/types/index.d.ts","module":"./dist/index.node.mjs","browser":{"./dist/index.node.cjs":"./dist/index.browser.cjs","./dist/index.node.mjs":"./dist/index.browser.mjs"},"exports":{".":{"node":{"import":"./dist/index.node.mjs","require":"./dist/index.node.cjs"},"types":"./dist/types/index.d.ts","browser":{"import":"./dist/index.browser.mjs","require":"./dist/index.browser.cjs"},"react-native":"./dist/index.react-native.mjs"},"./react":{"node":{"import":"./dist/react/index.node.mjs","require":"./dist/react/index.node.cjs"},"types":"./dist/types/react/index.d.ts","browser":{"import":"./dist/react/index.browser.mjs","require":"./dist/react/index.browser.cjs"},"react-native":"./dist/react/index.react-native.mjs"}},"scripts":{"dev":"vitest --project node","test":"pnpm test:types && pnpm test:treeshakability && pnpm test:packaging && pnpm test:unit","build":"rimraf dist && tsup && tsc -p ./tsconfig.declarations.json","test:unit":"vitest run","test:types":"tsc --noEmit","test:packaging":"node ../../scripts/assert-publishable-dist.mjs","test:treeshakability":"for file in dist/index.*.mjs dist/react/index.*.mjs; do agadoo $file; done"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ed89fe80-684a-4377-804b-61ea481b37c7"}},"_resolved":"/tmp/b502a6ef96bc097223be451e95cfb82b/solana-kit-plugin-wallet-0.13.1.tgz","_integrity":"sha512-Zmbz7MAa5HHZPKMKoYMzi9Xh6jBD40WTMB5M6oZBkrTQKSnXnsf2wyjDG5NmkaSPS/7He+oLLuxPOeukfzoxvg==","repository":{"url":"git+https://github.com/anza-xyz/kit-plugins.git","type":"git"},"_npmVersion":"11.16.0","description":"Wallet connection plugin for Kit clients","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","browserslist":["supports bigint and not dead","maintained node versions"],"dependencies":{"@wallet-standard/ui":"^1.0.3","@wallet-standard/app":"^1.1.1","@wallet-standard/base":"^1.1.1","@wallet-standard/features":"^1.1.1","@wallet-standard/ui-features":"^1.0.3","@wallet-standard/ui-registry":"^1.1.1","@solana/wallet-account-signer":"^7.0.0","@solana/wallet-standard-chains":"^1.1.2","@solana/wallet-standard-features":"^1.4.0"},"react-native":"./dist/index.react-native.mjs","_hasShrinkwrap":false,"devDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0","@types/react":"^18.0.0 || ^19.0.0","@solana/react":"^7.0.0","@testing-library/react":"^16.0.0","@wallet-standard/errors":"^0.1.2"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","@solana/kit":"^7.0.0","@solana/react":"^7.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@solana/react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/kit-plugin-wallet_0.13.1_1784026933966_0.5485391393188566","host":"s3://npm-registry-packages-npm-production"}},"0.14.0":{"name":"@solana/kit-plugin-wallet","version":"0.14.0","keywords":["kit","plugin","signer","solana","wallet","wallet-adapter","wallet-standard"],"license":"MIT","_id":"@solana/kit-plugin-wallet@0.14.0","maintainers":[{"name":"solana-devs","email":"npm@solana.org"}],"homepage":"https://github.com/anza-xyz/kit-plugins#readme","bugs":{"url":"http://github.com/anza-xyz/kit-plugins/issues"},"dist":{"shasum":"ca94dc73993691a58fe7c3ddf1ffb2448b1d6af0","tarball":"https://registry.npmjs.org/@solana/kit-plugin-wallet/-/kit-plugin-wallet-0.14.0.tgz","fileCount":44,"integrity":"sha512-gxVJk4TEBebXhxksptt8i4OTPSN8FAhHayu3/P2eYTpY2gik5mTnakisTa7cevF2E53+xApHd4qoavYXltwJ6w==","signatures":[{"sig":"MEUCIQDoQ734SiTbHTLB/8AJCUApavDIMjEUqBbd5GUxk7tiBwIgZuvJlkvbuDTmI3IH+IypJAO1r1oPpv5V1Yj0ZcKJsfI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@solana%2fkit-plugin-wallet@0.14.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":623088},"main":"./dist/index.node.cjs","type":"commonjs","_from":"file:solana-kit-plugin-wallet-0.14.0.tgz","types":"./dist/types/index.d.ts","module":"./dist/index.node.mjs","browser":{"./dist/index.node.cjs":"./dist/index.browser.cjs","./dist/index.node.mjs":"./dist/index.browser.mjs"},"exports":{".":{"node":{"import":"./dist/index.node.mjs","require":"./dist/index.node.cjs"},"types":"./dist/types/index.d.ts","browser":{"import":"./dist/index.browser.mjs","require":"./dist/index.browser.cjs"},"react-native":"./dist/index.react-native.mjs"},"./react":{"node":{"import":"./dist/react/index.node.mjs","require":"./dist/react/index.node.cjs"},"types":"./dist/types/react/index.d.ts","browser":{"import":"./dist/react/index.browser.mjs","require":"./dist/react/index.browser.cjs"},"react-native":"./dist/react/index.react-native.mjs"}},"scripts":{"dev":"vitest --project node","test":"pnpm test:types && pnpm test:treeshakability && pnpm test:packaging && pnpm test:unit","build":"rimraf dist && tsup && tsc -p ./tsconfig.declarations.json","test:unit":"vitest run","test:types":"tsc --noEmit","test:packaging":"node ../../scripts/assert-publishable-dist.mjs","test:treeshakability":"for file in dist/index.*.mjs dist/react/index.*.mjs; do agadoo $file; done"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ed89fe80-684a-4377-804b-61ea481b37c7"}},"_resolved":"/tmp/6a454058ccf2355a067207509396bf66/solana-kit-plugin-wallet-0.14.0.tgz","_integrity":"sha512-gxVJk4TEBebXhxksptt8i4OTPSN8FAhHayu3/P2eYTpY2gik5mTnakisTa7cevF2E53+xApHd4qoavYXltwJ6w==","repository":{"url":"git+https://github.com/anza-xyz/kit-plugins.git","type":"git"},"_npmVersion":"11.16.0","description":"Wallet connection plugin for Kit clients","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","browserslist":["supports bigint and not dead","maintained node versions"],"dependencies":{"@wallet-standard/ui":"^1.0.3","@wallet-standard/app":"^1.1.1","@wallet-standard/base":"^1.1.1","@wallet-standard/features":"^1.1.1","@wallet-standard/ui-features":"^1.0.3","@wallet-standard/ui-registry":"^1.1.1","@solana/wallet-account-signer":"^7.0.0","@solana/wallet-standard-chains":"^1.1.2","@solana/wallet-standard-features":"^1.4.0"},"react-native":"./dist/index.react-native.mjs","_hasShrinkwrap":false,"devDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0","@types/react":"^18.0.0 || ^19.0.0","@solana/react":"^7.0.0","@testing-library/react":"^16.0.0","@wallet-standard/errors":"^0.1.2"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","@solana/kit":"^7.0.0","@solana/react":"^7.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@solana/react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/kit-plugin-wallet_0.14.0_1784818613480_0.2833622243280134","host":"s3://npm-registry-packages-npm-production"}},"0.17.0":{"name":"@solana/kit-plugin-wallet","version":"0.17.0","keywords":["kit","plugin","signer","solana","wallet","wallet-adapter","wallet-standard"],"license":"MIT","_id":"@solana/kit-plugin-wallet@0.17.0","maintainers":[{"name":"solana-devs","email":"npm@solana.org"}],"homepage":"https://github.com/anza-xyz/kit-plugins#readme","bugs":{"url":"http://github.com/anza-xyz/kit-plugins/issues"},"dist":{"shasum":"a18e9c92653e5b8bcfd09d9ecb55fd26c0fbb6be","tarball":"https://registry.npmjs.org/@solana/kit-plugin-wallet/-/kit-plugin-wallet-0.17.0.tgz","fileCount":44,"integrity":"sha512-a3escg+u11Cva7Bjwca0Pjkg6FawVMVvdCWOVvrsKW0AAhgYEjo2PtvtlP/61bW7cc7BXcw16wJOcsNbOSBlHg==","signatures":[{"sig":"MEYCIQDG0tYjxvo+kX7ebvVPqEXb5kFgSa5M+aq4uMbMI4PfqwIhAIuwfE4Wd9b1rou6t+5GHUHynmrjbsMniNXzhkSOuo2+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@solana%2fkit-plugin-wallet@0.17.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":629626},"main":"./dist/index.node.cjs","type":"commonjs","_from":"file:solana-kit-plugin-wallet-0.17.0.tgz","types":"./dist/types/index.d.ts","module":"./dist/index.node.mjs","browser":{"./dist/index.node.cjs":"./dist/index.browser.cjs","./dist/index.node.mjs":"./dist/index.browser.mjs"},"exports":{".":{"node":{"import":"./dist/index.node.mjs","require":"./dist/index.node.cjs"},"types":"./dist/types/index.d.ts","browser":{"import":"./dist/index.browser.mjs","require":"./dist/index.browser.cjs"},"react-native":"./dist/index.react-native.mjs"},"./react":{"node":{"import":"./dist/react/index.node.mjs","require":"./dist/react/index.node.cjs"},"types":"./dist/types/react/index.d.ts","browser":{"import":"./dist/react/index.browser.mjs","require":"./dist/react/index.browser.cjs"},"react-native":"./dist/react/index.react-native.mjs"}},"scripts":{"dev":"vitest --project node","test":"pnpm test:types && pnpm test:treeshakability && pnpm test:packaging && pnpm test:unit","build":"rimraf dist && tsup && tsc -p ./tsconfig.declarations.json","test:unit":"vitest run","test:types":"tsc --noEmit","test:packaging":"node ../../scripts/assert-publishable-dist.mjs","test:treeshakability":"for file in dist/index.*.mjs dist/react/index.*.mjs; do agadoo $file; done"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ed89fe80-684a-4377-804b-61ea481b37c7"}},"_resolved":"/tmp/1535d49d429f424a3edbff88d7ab1671/solana-kit-plugin-wallet-0.17.0.tgz","_integrity":"sha512-a3escg+u11Cva7Bjwca0Pjkg6FawVMVvdCWOVvrsKW0AAhgYEjo2PtvtlP/61bW7cc7BXcw16wJOcsNbOSBlHg==","repository":{"url":"git+https://github.com/anza-xyz/kit-plugins.git","type":"git"},"_npmVersion":"11.17.0","description":"Wallet connection plugin for Kit clients","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","browserslist":["supports bigint and not dead","maintained node versions"],"dependencies":{"@wallet-standard/ui":"^1.0.3","@wallet-standard/app":"^1.1.1","@wallet-standard/base":"^1.1.1","@wallet-standard/features":"^1.1.1","@wallet-standard/ui-features":"^1.0.3","@wallet-standard/ui-registry":"^1.1.1","@solana/wallet-account-signer":"^7.1.0","@solana/wallet-standard-chains":"^1.1.2","@solana/wallet-standard-features":"^1.4.0"},"react-native":"./dist/index.react-native.mjs","_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.8","react-dom":"^19.2.8","@types/react":"^19.2.18","@solana/react":"^7.1.0","@testing-library/react":"^16.0.0","@wallet-standard/errors":"^0.1.2"},"peerDependencies":{"react":"^19.2.8","@solana/kit":"^7.0.0","@solana/react":"^7.1.0"},"peerDependenciesMeta":{"react":{"optional":true},"@solana/react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/kit-plugin-wallet_0.17.0_1787145954805_0.10254885984632067","host":"s3://npm-registry-packages-npm-production"}},"0.18.0":{"name":"@solana/kit-plugin-wallet","version":"0.18.0","keywords":["kit","plugin","signer","solana","wallet","wallet-adapter","wallet-standard"],"license":"MIT","_id":"@solana/kit-plugin-wallet@0.18.0","maintainers":[{"name":"solana-devs","email":"npm@solana.org"}],"homepage":"https://github.com/anza-xyz/kit-plugins#readme","bugs":{"url":"http://github.com/anza-xyz/kit-plugins/issues"},"dist":{"shasum":"84ce06536bb8a52aff76a2238af41efdc7336450","tarball":"https://registry.npmjs.org/@solana/kit-plugin-wallet/-/kit-plugin-wallet-0.18.0.tgz","fileCount":44,"integrity":"sha512-AO/DvBFoyS/7Lx9INSaFgTrqm/g3rqeSfUkwvO9T5bQfMRPylznvJyQ2r4sVKvDM9eguu97EfLsQ342fbJ+Dzg==","signatures":[{"sig":"MEQCIAz9UtC/lInqUROdQLMVhQcdQdgFygN0d25iEnx/3FEBAiBvOuQMvhO3IlEsFeXE5OowXX1YJjlGIMBCIS2R4JNZ7g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@solana%2fkit-plugin-wallet@0.18.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":640688},"main":"./dist/index.node.cjs","type":"commonjs","_from":"file:solana-kit-plugin-wallet-0.18.0.tgz","types":"./dist/types/index.d.ts","module":"./dist/index.node.mjs","browser":{"./dist/index.node.cjs":"./dist/index.browser.cjs","./dist/index.node.mjs":"./dist/index.browser.mjs"},"exports":{".":{"node":{"import":"./dist/index.node.mjs","require":"./dist/index.node.cjs"},"types":"./dist/types/index.d.ts","browser":{"import":"./dist/index.browser.mjs","require":"./dist/index.browser.cjs"},"react-native":"./dist/index.react-native.mjs"},"./react":{"node":{"import":"./dist/react/index.node.mjs","require":"./dist/react/index.node.cjs"},"types":"./dist/types/react/index.d.ts","browser":{"import":"./dist/react/index.browser.mjs","require":"./dist/react/index.browser.cjs"},"react-native":"./dist/react/index.react-native.mjs"}},"scripts":{"dev":"vitest --project node","test":"pnpm test:types && pnpm test:treeshakability && pnpm test:packaging && pnpm test:unit","build":"rimraf dist && tsup && tsc -p ./tsconfig.declarations.json","test:unit":"vitest run","test:types":"tsc --noEmit","test:packaging":"node ../../scripts/assert-publishable-dist.mjs","test:treeshakability":"for file in dist/index.*.mjs dist/react/index.*.mjs; do agadoo $file; done"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ed89fe80-684a-4377-804b-61ea481b37c7"}},"_resolved":"/tmp/af8a8d6f9301f2c50b5bd4ec81484277/solana-kit-plugin-wallet-0.18.0.tgz","_integrity":"sha512-AO/DvBFoyS/7Lx9INSaFgTrqm/g3rqeSfUkwvO9T5bQfMRPylznvJyQ2r4sVKvDM9eguu97EfLsQ342fbJ+Dzg==","repository":{"url":"git+https://github.com/anza-xyz/kit-plugins.git","type":"git"},"_npmVersion":"11.17.0","description":"Wallet connection plugin for Kit clients","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","browserslist":["supports bigint and not dead","maintained node versions"],"dependencies":{"@wallet-standard/ui":"^1.0.3","@wallet-standard/app":"^1.1.1","@wallet-standard/base":"^1.1.1","@wallet-standard/features":"^1.1.1","@wallet-standard/ui-features":"^1.0.3","@wallet-standard/ui-registry":"^1.1.1","@solana/wallet-account-signer":"^8.0.0","@solana/wallet-standard-chains":"^1.1.2","@solana/wallet-standard-features":"^1.4.0"},"react-native":"./dist/index.react-native.mjs","_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.8","react-dom":"^19.2.8","@types/react":"^19.2.18","@solana/react":"^8.0.0","@testing-library/react":"^16.0.0","@wallet-standard/errors":"^0.1.2"},"peerDependencies":{"react":"^19.2.8","@solana/kit":"^8.0.0","@solana/react":"^8.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@solana/react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/kit-plugin-wallet_0.18.0_1787313818816_0.020270304970241293","host":"s3://npm-registry-packages-npm-production"}},"0.19.0":{"name":"@solana/kit-plugin-wallet","version":"0.19.0","keywords":["kit","plugin","signer","solana","wallet","wallet-adapter","wallet-standard"],"license":"MIT","_id":"@solana/kit-plugin-wallet@0.19.0","maintainers":[{"name":"solana-devs","email":"npm@solana.org"}],"homepage":"https://github.com/anza-xyz/kit-plugins#readme","bugs":{"url":"http://github.com/anza-xyz/kit-plugins/issues"},"dist":{"shasum":"9815286fec1292fbab4e5ae57b5ae0d9945df102","tarball":"https://registry.npmjs.org/@solana/kit-plugin-wallet/-/kit-plugin-wallet-0.19.0.tgz","fileCount":44,"integrity":"sha512-IY1pXkmKOoR95uL7n7h7QAvSumS29ApBPE65aS3yugObZ8tlIdMnCTA0dF1IbURfxu+kSPSxWFjUFbx53LoRlw==","signatures":[{"sig":"MEYCIQCxfrgYXn0sbzpjpZbwxxceqLHf5VzjVGLWBDjTMT5icQIhAKaN1MyYcSCPDEnwS/oWmzZtaTelBFNxqmpAfBGFruE8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@solana%2fkit-plugin-wallet@0.19.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":640688},"main":"./dist/index.node.cjs","type":"commonjs","_from":"file:solana-kit-plugin-wallet-0.19.0.tgz","types":"./dist/types/index.d.ts","module":"./dist/index.node.mjs","browser":{"./dist/index.node.cjs":"./dist/index.browser.cjs","./dist/index.node.mjs":"./dist/index.browser.mjs"},"exports":{".":{"node":{"import":"./dist/index.node.mjs","require":"./dist/index.node.cjs"},"types":"./dist/types/index.d.ts","browser":{"import":"./dist/index.browser.mjs","require":"./dist/index.browser.cjs"},"react-native":"./dist/index.react-native.mjs"},"./react":{"node":{"import":"./dist/react/index.node.mjs","require":"./dist/react/index.node.cjs"},"types":"./dist/types/react/index.d.ts","browser":{"import":"./dist/react/index.browser.mjs","require":"./dist/react/index.browser.cjs"},"react-native":"./dist/react/index.react-native.mjs"}},"scripts":{"dev":"vitest --project node","test":"pnpm test:types && pnpm test:treeshakability && pnpm test:packaging && pnpm test:unit","build":"rimraf dist && tsup && tsc -p ./tsconfig.declarations.json","test:unit":"vitest run","test:types":"tsc --noEmit","test:packaging":"node ../../scripts/assert-publishable-dist.mjs","test:treeshakability":"for file in dist/index.*.mjs dist/react/index.*.mjs; do agadoo $file; done"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ed89fe80-684a-4377-804b-61ea481b37c7"}},"_resolved":"/tmp/da1702a9d3c1ddc471a47090e52dcd85/solana-kit-plugin-wallet-0.19.0.tgz","_integrity":"sha512-IY1pXkmKOoR95uL7n7h7QAvSumS29ApBPE65aS3yugObZ8tlIdMnCTA0dF1IbURfxu+kSPSxWFjUFbx53LoRlw==","repository":{"url":"git+https://github.com/anza-xyz/kit-plugins.git","type":"git"},"_npmVersion":"11.17.0","description":"Wallet connection plugin for Kit clients","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","browserslist":["supports bigint and not dead","maintained node versions"],"dependencies":{"@wallet-standard/ui":"^1.0.3","@wallet-standard/app":"^1.1.1","@wallet-standard/base":"^1.1.1","@wallet-standard/features":"^1.1.1","@wallet-standard/ui-features":"^1.0.3","@wallet-standard/ui-registry":"^1.1.1","@solana/wallet-account-signer":"^8.1.0","@solana/wallet-standard-chains":"^1.1.2","@solana/wallet-standard-features":"^1.4.0"},"react-native":"./dist/index.react-native.mjs","_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.8","react-dom":"^19.2.8","@types/react":"^19.2.18","@solana/react":"^8.1.0","@testing-library/react":"^16.3.3","@wallet-standard/errors":"^0.1.2"},"peerDependencies":{"react":"^19.2.8","@solana/kit":"^8.2.0","@solana/react":"^8.1.0"},"peerDependenciesMeta":{"react":{"optional":true},"@solana/react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/kit-plugin-wallet_0.19.0_1788195812001_0.45756787551561806","host":"s3://npm-registry-packages-npm-production"}},"0.20.0":{"name":"@solana/kit-plugin-wallet","version":"0.20.0","description":"Wallet connection plugin for Kit clients","keywords":["kit","plugin","signer","solana","wallet","wallet-adapter","wallet-standard"],"bugs":{"url":"http://github.com/anza-xyz/kit-plugins/issues"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/anza-xyz/kit-plugins.git"},"type":"commonjs","sideEffects":false,"main":"./dist/index.node.cjs","module":"./dist/index.node.mjs","browser":{"./dist/index.node.cjs":"./dist/index.browser.cjs","./dist/index.node.mjs":"./dist/index.browser.mjs"},"types":"./dist/types/index.d.ts","react-native":"./dist/index.react-native.mjs","exports":{".":{"types":"./dist/types/index.d.ts","react-native":"./dist/index.react-native.mjs","browser":{"import":"./dist/index.browser.mjs","require":"./dist/index.browser.cjs"},"node":{"import":"./dist/index.node.mjs","require":"./dist/index.node.cjs"}},"./react":{"types":"./dist/types/react/index.d.ts","react-native":"./dist/react/index.react-native.mjs","browser":{"import":"./dist/react/index.browser.mjs","require":"./dist/react/index.browser.cjs"},"node":{"import":"./dist/react/index.node.mjs","require":"./dist/react/index.node.cjs"}}},"dependencies":{"@solana/wallet-account-signer":"^8.2.0","@solana/wallet-standard-chains":"^1.1.2","@solana/wallet-standard-features":"^1.5.0","@wallet-standard/app":"^1.1.1","@wallet-standard/base":"^1.1.1","@wallet-standard/features":"^1.1.1","@wallet-standard/ui":"^1.0.3","@wallet-standard/ui-features":"^1.0.3","@wallet-standard/ui-registry":"^1.1.1"},"devDependencies":{"@solana/react":"^8.2.0","@testing-library/react":"^16.3.3","@types/react":"^19.2.18","@wallet-standard/errors":"^0.1.2","react":"^19.2.8","react-dom":"^19.2.8"},"peerDependencies":{"@solana/kit":"^8.2.0","@solana/react":"^8.2.0","react":"^19.2.8"},"peerDependenciesMeta":{"@solana/react":{"optional":true},"react":{"optional":true}},"browserslist":["supports bigint and not dead","maintained node versions"],"scripts":{"build":"rimraf dist && tsup && tsc -p ./tsconfig.declarations.json","dev":"vitest --project node","test":"pnpm test:types && pnpm test:treeshakability && pnpm test:packaging && pnpm test:unit","test:packaging":"node ../../scripts/assert-publishable-dist.mjs","test:treeshakability":"for file in dist/index.*.mjs dist/react/index.*.mjs; do agadoo $file; done","test:types":"tsc --noEmit","test:unit":"vitest run"},"_id":"@solana/kit-plugin-wallet@0.20.0","homepage":"https://github.com/anza-xyz/kit-plugins#readme","_integrity":"sha512-Pw3aKJoORkU4bxRjCu5nsRiNi7f2garKi7HjQDo7rCnSrj5y/Qp7wK5mHXTLiep9+CahDLS+aPbX4TFd867DKw==","_resolved":"/tmp/26f91dbb52209c424e927bcbf7615de6/solana-kit-plugin-wallet-0.20.0.tgz","_from":"file:solana-kit-plugin-wallet-0.20.0.tgz","_nodeVersion":"24.20.0","_npmVersion":"11.19.0","dist":{"integrity":"sha512-Pw3aKJoORkU4bxRjCu5nsRiNi7f2garKi7HjQDo7rCnSrj5y/Qp7wK5mHXTLiep9+CahDLS+aPbX4TFd867DKw==","shasum":"e180aaec64a124e4414c4bb95cd42de3a1670bdb","tarball":"https://registry.npmjs.org/@solana/kit-plugin-wallet/-/kit-plugin-wallet-0.20.0.tgz","fileCount":44,"unpackedSize":675674,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@solana%2fkit-plugin-wallet@0.20.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICeXV+SW9Ih3DAT1LoM5Gf/Ky4lJDZl6XlfhyAZ2QcBpAiAtzsKOBk/hysAgb9ii/sgcZZxq/+bDaSyf0jSoW9Y4ew=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ed89fe80-684a-4377-804b-61ea481b37c7"}},"directories":{},"maintainers":[{"name":"solana-devs","email":"npm@solana.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/kit-plugin-wallet_0.20.0_1789056404958_0.3016803682336704"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-09T14:09:09.318Z","modified":"2026-09-10T16:06:45.497Z","0.0.0":"2026-06-09T14:09:09.640Z","0.12.0":"2026-06-22T14:01:21.699Z","0.13.0":"2026-07-13T15:30:34.814Z","0.13.1":"2026-07-14T11:02:14.152Z","0.14.0":"2026-07-23T14:56:53.640Z","0.17.0":"2026-08-19T13:25:54.954Z","0.18.0":"2026-08-21T12:03:39.013Z","0.19.0":"2026-08-31T17:03:32.166Z","0.20.0":"2026-09-10T16:06:45.102Z"},"bugs":{"url":"http://github.com/anza-xyz/kit-plugins/issues"},"license":"MIT","homepage":"https://github.com/anza-xyz/kit-plugins#readme","keywords":["kit","plugin","signer","solana","wallet","wallet-adapter","wallet-standard"],"repository":{"type":"git","url":"git+https://github.com/anza-xyz/kit-plugins.git"},"description":"Wallet connection plugin for Kit clients","maintainers":[{"name":"solana-devs","email":"npm@solana.org"}],"readme":"# Kit Plugins ➤ Wallet\n\n[![npm][npm-image]][npm-url]\n[![npm-downloads][npm-downloads-image]][npm-url]\n\n[npm-downloads-image]: https://img.shields.io/npm/dm/@solana/kit-plugin-wallet.svg?style=flat\n[npm-image]: https://img.shields.io/npm/v/@solana/kit-plugin-wallet.svg?style=flat&label=%40solana%2Fkit-plugin-wallet\n[npm-url]: https://www.npmjs.com/package/@solana/kit-plugin-wallet\n\nThis package provides plugins that add browser wallet support to your Kit clients using [wallet-standard](https://github.com/wallet-standard/wallet-standard). They handle wallet discovery, connection lifecycle, account selection, and signer creation.\n\nFour plugin functions are exported — each adds a `client.wallet` namespace, but they differ in how the connected wallet's signer is exposed on the client:\n\n| Plugin                | `client.payer` | `client.identity` | Use case                                                      |\n| --------------------- | -------------- | ----------------- | ------------------------------------------------------------- |\n| `walletSigner`        | wallet signer  | wallet signer     | Most dApps — wallet pays fees and signs as the user identity. |\n| `walletPayer`         | wallet signer  | —                 | Wallet pays fees; identity is managed separately.             |\n| `walletIdentity`      | —              | wallet signer     | Backend relayer pays fees; wallet provides user identity.     |\n| `walletWithoutSigner` | —              | —                 | Wallet state only; payer and identity are managed separately. |\n\n## Installation\n\n```sh\npnpm install @solana/kit-plugin-wallet\n```\n\n## Quick start\n\n```ts\nimport { createClient } from '@solana/kit';\nimport { solanaRpc } from '@solana/kit-plugin-rpc';\nimport { walletSigner } from '@solana/kit-plugin-wallet';\n\nconst client = createClient()\n    .use(walletSigner({ chain: 'solana:mainnet' }))\n    .use(solanaRpc({ rpcUrl: 'https://api.mainnet-beta.solana.com' }));\n\n// Read discovered wallets from state\nconst { wallets } = client.wallet.getState();\n\n// Connect a wallet\nawait client.wallet.connect(wallets[0]);\n\n// client.payer and client.identity are now the connected wallet's signer\nawait client.sendTransaction([myInstruction]);\n```\n\n## `walletSigner` plugin\n\nSyncs the connected wallet's signer to both `client.payer` and `client.identity`. This is the most common choice for dApps where the user's wallet pays fees and signs as the transaction identity.\n\n```ts\nimport { walletSigner } from '@solana/kit-plugin-wallet';\n\nconst client = createClient()\n    .use(walletSigner({ chain: 'solana:mainnet' }))\n    .use(solanaRpc({ rpcUrl: 'https://api.mainnet-beta.solana.com' }));\n```\n\n## `walletPayer` plugin\n\nSyncs the connected wallet's signer to `client.payer` only. Use this when you need the wallet as the fee payer but don't need `client.identity`. For most dApps, prefer `walletSigner` which sets both.\n\n```ts\nimport { walletPayer } from '@solana/kit-plugin-wallet';\n\nconst client = createClient()\n    .use(walletPayer({ chain: 'solana:mainnet' }))\n    .use(solanaRpc({ rpcUrl: 'https://api.mainnet-beta.solana.com' }));\n```\n\n## `walletIdentity` plugin\n\nSyncs the connected wallet's signer to `client.identity` only. Use this when a separate payer (e.g. a backend relayer) pays transaction fees, but the user's wallet is needed as the identity signer.\n\n```ts\nimport { payer } from '@solana/kit-plugin-signer';\nimport { walletIdentity } from '@solana/kit-plugin-wallet';\n\nconst client = createClient()\n    .use(payer(relayerKeypair))\n    .use(walletIdentity({ chain: 'solana:mainnet' }))\n    .use(solanaRpc({ rpcUrl: 'https://api.mainnet-beta.solana.com' }));\n\n// client.payer is always relayerKeypair\n// client.identity is the connected wallet's signer\n```\n\n## `walletWithoutSigner` plugin\n\nAdds `client.wallet` without setting `client.payer` or `client.identity`. Use this alongside separate `payer()` and/or `identity()` plugins, or when the wallet's signer is used explicitly in instructions.\n\n```ts\nimport { payer } from '@solana/kit-plugin-signer';\nimport { walletWithoutSigner } from '@solana/kit-plugin-wallet';\n\nconst client = createClient()\n    .use(payer(backendKeypair))\n    .use(walletWithoutSigner({ chain: 'solana:mainnet' }))\n    .use(solanaRpc({ rpcUrl: 'https://api.mainnet-beta.solana.com' }));\n\n// client.payer is always backendKeypair\n// client.wallet.getState().connected?.signer for manual use\n```\n\n## State and actions\n\nAll wallet state is accessed via `client.wallet.getState()`, which returns a referentially stable `WalletState` object (new reference only when something changes).\n\n- **`getState().wallets`** — All discovered wallets that support the configured chain.\n\n    ```ts\n    const { wallets } = client.wallet.getState();\n    for (const w of wallets) {\n        console.log(w.name, w.icon);\n    }\n    ```\n\n- **`getState().connected`** — The active connection (wallet, account, signer, and supported transaction versions), or `null` when disconnected.\n\n    ```ts\n    const { connected } = client.wallet.getState();\n    console.log(connected?.account.address);\n    ```\n\n- **`getState().connected.supportedTransactionVersions`** — The transaction versions the active account can sign, as a `ReadonlySet<SolanaTransactionVersion>` — `'legacy'` plus whichever numbered versions the installed `@solana/wallet-standard-features` defines. Intersected across every signing feature the account has, because `signer` exposes one method per feature (`modifyAndSignTransactions` for `solana:signTransaction`, `signAndSendTransactions` for `solana:signAndSendTransaction`) and the Kit helper you call decides which one is used — a version is only reported when every path accepts it. Wallets that predate versioned transactions report `Set(['legacy'])`, and read-only or message-only accounts report an empty set — so check membership rather than emptiness.\n\n    ```ts\n    const { connected } = client.wallet.getState();\n    // Test for the version you intend to send rather than assuming a ceiling.\n    const canSendV0 = connected?.supportedTransactionVersions.has(0) ?? false;\n    ```\n\n- **`getState().status`** — The current connection status: `'pending'`, `'disconnected'`, `'connecting'`, `'connected'`, `'disconnecting'`, or `'reconnecting'`.\n\n- **`getState().reconnectingTo`** — The persisted account currently being reconnected, or `null` when it is unavailable. Use this to keep the wallet identity visible with a loading indicator during silent reconnect; no signer is exposed until the connection succeeds.\n\n- **`connect(wallet)`** — Connect to a wallet and select the first newly authorized account.\n\n    ```ts\n    const accounts = await client.wallet.connect(selectedWallet);\n    ```\n\n    A successful call resolves only once the wallet is connected; any failure rejects. Connecting to a different wallet keeps the current one connected until the new connection succeeds — so if the attempt fails (the user declines the prompt, the wallet authorizes no accounts, or it becomes unavailable), the previous connection is left untouched rather than torn down. The same holds for `signIn`, which rejects rather than resolving with its sign-in output when the connection can't be established. While the attempt is in flight, `status` is `'connecting'` but `getState().connected` still describes the existing connection.\n\n    If another `connect` or `signIn` starts before this one resolves (e.g. an accidental double-click), the newer request wins and owns the connection — the superseded call rejects with a `DOMException` whose `name` is `'AbortError'`. Ignore it the way you'd ignore any aborted operation:\n\n    ```ts\n    try {\n        await client.wallet.connect(selectedWallet);\n    } catch (e) {\n        if ((e as Error).name !== 'AbortError') throw e; // a real failure\n    }\n    ```\n\n- **`disconnect(wallet?)`** — Disconnects an authorized wallet. If `wallet` is not provided, disconnects the active wallet.\n\n- **`selectAccount(account)`** — Switch to a different account within any already-authorized wallet without reconnecting.\n\n    ```ts\n    client.wallet.selectAccount(accounts[0]);\n    ```\n\n- **`signMessage(message)`** — Sign a raw message with the connected account.\n\n    ```ts\n    const signature = await client.wallet.signMessage(new TextEncoder().encode('Hello'));\n    ```\n\n- **`signIn(wallet, input)`** — Sign In With Solana (SIWS-as-connect). Connects the wallet, calls `solana:signIn`, and sets up full connection state. Pass `{}` for `input` if no sign-in customization is needed. To sign in with the already-connected wallet, pass `getState().connected.wallet`.\n\n    ```ts\n    const output = await client.wallet.signIn(selectedWallet, { domain: window.location.host });\n    ```\n\n## React hooks\n\nThe `@solana/kit-plugin-wallet/react` subpath exposes hooks for reading wallet state and driving wallet actions from React components. Install the optional peer dependencies (`react` and [`@solana/react`](https://www.npmjs.com/package/@solana/react)). Every hook takes your wallet-enabled `client` — a client built with a wallet plugin such as `walletSigner()` — as its first argument.\n\nThe **state** hooks subscribe via `useSyncExternalStore`, each to a single slice of `WalletState`, so a component only re-renders when the slice it reads changes:\n\n| Hook                     | Returns                                                                          |\n| ------------------------ | -------------------------------------------------------------------------------- |\n| `useWalletStatus`        | The current `WalletStatus`.                                                      |\n| `useConnectedWallet`     | The active connection (`{ account, signer, wallet }`) or null.                   |\n| `useReconnectingAccount` | The persisted account being auto-reconnected, or null.                           |\n| `useWallets`             | The discovered wallets for the client's chain.                                   |\n| `useIsWalletReady`       | `false` while the initial warm-up is in progress (`'pending'`/`'reconnecting'`). |\n\nThe **action** hooks wrap the async wallet actions with `useAction` from `@solana/react`, returning its result (`dispatch`, `dispatchAsync`, `data`, `error`, `status`, `isRunning`, `reset`, …). The hook manages the `AbortSignal` internally, so an in-flight call is aborted when a newer one is dispatched:\n\n| Hook               | Wraps                                                                     |\n| ------------------ | ------------------------------------------------------------------------- |\n| `useConnect`       | `client.wallet.connect` — `dispatch(wallet)`                              |\n| `useDisconnect`    | `client.wallet.disconnect` — `dispatch()`                                 |\n| `useSignIn`        | `client.wallet.signIn` — `dispatch(wallet, input)`                        |\n| `useSignMessage`   | `client.wallet.signMessage` — `dispatch(message)`                         |\n| `useSelectAccount` | `client.wallet.selectAccount` — returns the synchronous callback directly |\n\nEach component receives the `client` and passes it to the hooks it uses:\n\n```tsx\nimport type { ClientWithWallet } from '@solana/kit-plugin-wallet';\nimport { useConnect, useConnectedWallet, useWallets, useWalletStatus } from '@solana/kit-plugin-wallet/react';\n\nfunction WalletButton({ client }: { client: ClientWithWallet }) {\n    const status = useWalletStatus(client);\n    const wallets = useWallets(client);\n    const connected = useConnectedWallet(client);\n    const { dispatch: connect, isRunning } = useConnect(client);\n\n    if (status === 'pending') return null; // avoid flashing UI before auto-reconnect resolves\n\n    if (connected) return <p>Connected: {connected.account.address}</p>;\n\n    return wallets.map(wallet => (\n        <button key={wallet.name} disabled={isRunning} onClick={() => connect(wallet)}>\n            Connect {wallet.name}\n        </button>\n    ));\n}\n```\n\n### Gating UI on the initial warm-up\n\nA freshly built client runs a silent auto-reconnect on mount, briefly passing through `'pending'` and `'reconnecting'` before it settles. If you render wallet-dependent UI immediately, a persisted wallet flashes \"disconnected\" for a frame before it reconnects. `useIsWalletReady` reports `false` for the duration of that warm-up and `true` once it settles, so you can hold back the wallet-dependent parts while painting the rest of the app:\n\n```tsx\nimport type { ClientWithWallet } from '@solana/kit-plugin-wallet';\nimport { useIsWalletReady, WalletReadyGate } from '@solana/kit-plugin-wallet/react';\n\n// Hide a whole subtree until the connection settles:\nfunction App({ client }: { client: ClientWithWallet }) {\n    return (\n        <WalletReadyGate client={client} fallback={<Spinner />}>\n            <WalletDependentUI />\n        </WalletReadyGate>\n    );\n}\n\n// Or read the boolean directly for finer control (e.g. disabling a button):\nfunction ConnectButton({ client }: { client: ClientWithWallet }) {\n    const isReady = useIsWalletReady(client);\n    return <button disabled={!isReady}>Connect</button>;\n}\n```\n\n`WalletReadyGate` is a thin wrapper over `useIsWalletReady`. Its props are shaped like React's `<Suspense fallback>`, but it is synchronous — it renders `fallback` directly off the reactive status rather than suspending, so it needs no `<Suspense>` ancestor. Both gate on the same warm-up set as `whenReady()` below, so they stay in sync — and like `whenReady()`, they ignore user-initiated `'connecting'` / `'disconnecting'`. To genuinely suspend a subtree, throw the Suspense-safe `whenReady()` promise from your own component instead.\n\n### Advanced: seamless client swaps with `whenReady()`\n\n> Most apps don't need this. It only matters if you **rebuild the client at runtime** — for example, to change chain — since each wallet plugin is bound to a single chain.\n\nEvery freshly built client runs a silent auto-reconnect that briefly passes through the `'pending'` and `'reconnecting'` statuses. If you publish the new client as soon as you build it, the UI may flash that reconnecting state on every switch. `client.wallet.whenReady()` returns a promise that resolves once the status has left `'pending'` / `'reconnecting'`, so you can build the new client, wait for it to settle, and only then swap it in — keeping the previous client live until the new one is ready:\n\n```ts\nimport { createClient } from '@solana/kit';\nimport { walletSigner } from '@solana/kit-plugin-wallet';\n\n// On a chain switch, hold the previous client until the rebuilt one is ready:\nconst next = createClient().use(walletSigner({ chain }));\nawait next.wallet.whenReady();\nswapInClient(next); // publish `next`, then dispose the client it replaced\n```\n\n`whenReady()` deliberately does **not** wait for user-initiated `connect` / `disconnect` / `signIn` (those pass through `'connecting'` / `'disconnecting'`), so it only ever blocks on the initial warm-up — a normal connect stays interactive.\n\nDisposing a client mid-warm-up settles its status to `'disconnected'` and resolves any pending `whenReady()` promise — a superseded client never leaves an `await` hanging. Check `getState()` after awaiting if you need to tell a ready connection from a disposed (or never-connected) client.\n\n## Framework integration\n\nThe plugin exposes `subscribe` and `getState` for binding wallet state to any UI framework. To gate UI on the initial auto-reconnect warm-up without React, pass `getState().status` through `isWalletWarmingUp` — the same predicate that backs `whenReady()` and the [React readiness helpers](#gating-ui-on-the-initial-warm-up), so all three stay in sync:\n\n```ts\nimport { isWalletWarmingUp } from '@solana/kit-plugin-wallet';\n\nclient.wallet.subscribe(() => {\n    const { status } = client.wallet.getState();\n    setLoading(isWalletWarmingUp(status)); // true while 'pending' / 'reconnecting'\n});\n```\n\n**React** — prefer the ready-made [React hooks](#react-hooks) above; they wrap the pattern below. To bind state manually (e.g. to read the whole snapshot at once), use `useSyncExternalStore` for concurrent-mode-safe rendering:\n\n```tsx\nimport { useSyncExternalStore } from 'react';\n\nfunction useWalletState() {\n    return useSyncExternalStore(client.wallet.subscribe, client.wallet.getState);\n}\n\nfunction App() {\n    const { wallets, connected, status } = useWalletState();\n\n    if (status === 'pending') return null; // avoid flashing a connect button before auto-reconnect\n\n    if (!connected) {\n        return wallets.map(w => (\n            <button key={w.name} onClick={() => client.wallet.connect(w)}>\n                {w.name}\n            </button>\n        ));\n    }\n\n    return <p>Connected: {connected.account.address}</p>;\n}\n```\n\n**Vue** — use a `shallowRef` composable:\n\n```ts\nimport { onMounted, onUnmounted, shallowRef } from 'vue';\n\nfunction useWalletState() {\n    const state = shallowRef(client.wallet.getState());\n    onMounted(() => {\n        const unsub = client.wallet.subscribe(() => {\n            state.value = client.wallet.getState();\n        });\n        onUnmounted(unsub);\n    });\n    return state;\n}\n```\n\n**Svelte** — wrap in a `readable` store:\n\n```ts\nimport { readable } from 'svelte/store';\n\nexport const walletState = readable(client.wallet.getState(), set => {\n    return client.wallet.subscribe(() => set(client.wallet.getState()));\n});\n```\n\n### Reactivity: observing `payer` / `identity`\n\nBecause the connected wallet's signer is dynamic, the plugins follow Kit's\nreactive-capability convention. The variants that set `client.payer` /\n`client.identity` also install a sibling `subscribeToPayer` /\n`subscribeToIdentity` function, so reactive consumers can observe signer\nchanges without naming the wallet plugin:\n\n```ts\nconst client = createClient().use(walletSigner({ chain: 'solana:mainnet' }));\n\nconst unsubscribe = client.subscribeToPayer(() => {\n    // Re-read the current value; it may now throw if disconnected.\n    console.log('payer is now', client.payer);\n});\n```\n\n`walletSigner` installs both hooks, `walletPayer` installs `subscribeToPayer`,\n`walletIdentity` installs `subscribeToIdentity`, and `walletWithoutSigner`\ninstalls neither. The listener fires on connect, account switch, and\ndisconnect. For the full\nwallet state (including the discovered-wallet list), use\n`client.wallet.subscribe` instead.\n\n## Configuration\n\n```ts\nwalletSigner({\n    chain: 'solana:mainnet', // required\n    storage: sessionStorage, // default: localStorage (null to disable)\n    storageKey: 'my-app:wallet', // default: 'kit-wallet'\n    autoConnect: false, // default: true (disable silent reconnect)\n    filter: w => w.features.includes('solana:signAndSendTransaction'), // optional\n});\n```\n\n## Persistence\n\nBy default the plugin uses `localStorage` to remember the last connected wallet and auto-reconnects on the next page load. Pass `storage: null` to disable, or provide a custom adapter (e.g. `sessionStorage` or an IndexedDB wrapper).\n\n## SSR / server-side rendering\n\nAll four wallet plugins are safe to include in a shared client that runs on both server and browser. On the server, `status` stays `'pending'` permanently, all actions throw, and no registry listeners or storage reads are made. In the browser the plugin initializes normally.\n\nReact Native is treated the same way as the server: wallet-standard browser discovery is not available, so the plugin returns the same inert stub (`status` stays `'pending'`, actions throw). Native wallet integration would need a different discovery mechanism and is out of scope for this plugin.\n\n```ts\nconst client = createClient()\n    .use(solanaRpc({ rpcUrl: 'https://api.mainnet-beta.solana.com' }))\n    .use(walletSigner({ chain: 'solana:mainnet' }));\n\n// Server: status === 'pending', client.payer throws\n// Browser: auto-connects, client.payer becomes the wallet signer\n```\n\n## Cleanup\n\nThe plugin implements `[Symbol.dispose]`, so it integrates with the `using` declaration or explicit disposal:\n\n```ts\n{\n    using client = createClient().use(walletSigner({ chain: 'solana:mainnet' }));\n    // registry listeners and storage subscriptions are cleaned up on scope exit\n}\n```\n\nOr call `[Symbol.dispose]()` explicitly when you're done with the client:\n\n```ts\nconst client = createClient().use(walletSigner({ chain: 'solana:mainnet' }));\n\n// ... later, when the client is no longer needed\nclient[Symbol.dispose]();\n```\n","readmeFilename":"README.md"}