{"_id":"@identity.com/prove-solana-wallet","_rev":"50-1314dbdee19bfccf239e0675dc4260e2","name":"@identity.com/prove-solana-wallet","dist-tags":{"latest":"0.4.2","beta":"0.4.2-beta.1"},"versions":{"0.1.2":{"version":"0.1.2","license":"MIT","main":"dist/index.js","typings":"dist/index.d.ts","engines":{"node":">=10"},"scripts":{"start":"tsdx watch","build":"tsdx build","test":"tsdx test","lint":"tsdx lint","prepare":"tsdx build","size":"size-limit","analyze":"size-limit --why"},"peerDependencies":{},"husky":{"hooks":{"pre-commit":"tsdx lint"}},"prettier":{"printWidth":80,"semi":true,"singleQuote":true,"trailingComma":"es5"},"name":"@identity.com/prove-solana-wallet","author":{"name":"Daniel Kelleher","email":"daniel@identity.com"},"description":"Prove ownership of a Solana wallet.","module":"dist/prove-solana-wallet.esm.js","size-limit":[{"path":"dist/prove-solana-wallet.cjs.production.min.js","limit":"10 KB"},{"path":"dist/prove-solana-wallet.esm.js","limit":"10 KB"}],"devDependencies":{"@size-limit/preset-small-lib":"^4.11.0","husky":"^6.0.0","size-limit":"^4.11.0","tsdx":"^0.14.1","tslib":"^2.2.0","typescript":"^4.2.4"},"dependencies":{"@solana/web3.js":"^1.14.0"},"licenseText":"MIT License\n\nCopyright (c) 2021 dankelleher\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.","_id":"@identity.com/prove-solana-wallet@0.1.2","dist":{"shasum":"2e175aaaaf699b88e3c9af8cf5ddbd390f9472ef","integrity":"sha512-9i3V8asKefc4lmDy4ViLSgnIcmtd55aOH3/eJ+W7Nd5rao5EoSUxn5RWijxClfdsCWSUvh5idCxbWkY39Y2law==","tarball":"https://registry.npmjs.org/@identity.com/prove-solana-wallet/-/prove-solana-wallet-0.1.2.tgz","fileCount":15,"unpackedSize":214159,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgrjtlCRA9TVsSAnZWagAA1BwP/iqe17Ksx7nxMZoI859n\noqjRZS4R3+SU05SKKFgq5mxUSpMqHuG6HlbGRb41/TBJ+X1OEBZdxth0VEYo\ncr58ROf4NE4ie5h2/veORcf19JNsAqp50kNG/VMBBrVZclDd8qp3V2EI7MnW\n2QoaBIU/X45DPS+hcXlnNSqwYUL6ETYLSOSG0qMLbIYQr3j1uk+/bJZYGU+9\nsWrACaecqRaicUtJmBmma7/Q/RNydZqZK1xktO1x3eVrKTctzEwvzt8CPE85\nd/fviUDaGxwcsbIv2zi84A9DJ/uPD1+G2bph/up2PXShmFKW8Qm4ztapC2BX\nQjfZkHk7+tc1nxqqIt0Coa+25B/uwTVXRMiiJoEc/W2IfgeQMRiwjXmGqhsA\nLjKDnsuCL7aWO7kr+JjyQipp2iZF+d06Bu+UxGC+qRJQndnzYKFVTaQGOd+T\n/9oEFzY4e7CvEFMI9aXvI0NgAiWWF7Z3DdP8Q4gMRaK58UFsu2sDbMjrLark\nDYuhc5CJ0863sDDiwSxLkij5g5iF8+1KedF+J1ESwUxLx3S8LUWD6jX/jxFD\nrA2YQQnjZfWwhR4VDr0kWRp4DDqe8zzEVRpPPSQCaT09cKs+9GTym5E+Nj6n\nkAkXyGOtZUPVoX6/rjPtsoqg81RAcdv3UDwxdmv5wGQTRh+0FsvTGcPa+OPg\nJ6ag\r\n=ujnh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDNJgSk6Nbxm2zuzlMXlSqpheQBazfjua+PopAzYtlMeQIhANC7ESz4TNhT/Q3laUJhXESeClrhRgpmJz+7H1sifwf4"}]},"_npmUser":{"name":"dankelleher","email":"dankelleher@yahoo.com"},"directories":{},"maintainers":[{"name":"tyronemichael","email":"tyronemichael@gmail.com"},{"name":"pbshoemaker","email":"phillip@identity.org"},{"name":"kevinhcolgan","email":"kevin@civic.com"},{"name":"flippiescholtz","email":"flippie@civic.com"},{"name":"dmelosantos","email":"danielmelos@gmail.com"},{"name":"identity.com-ci","email":"bruno@civic.com"},{"name":"dankelleher","email":"dankelleher@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/prove-solana-wallet_0.1.2_1622031204635_0.41809135399827335"},"_hasShrinkwrap":false},"0.1.3":{"version":"0.1.3","license":"MIT","main":"dist/index.js","typings":"dist/index.d.ts","engines":{"node":">=10"},"scripts":{"start":"tsdx watch","build":"tsdx build","test":"tsdx test","lint":"tsdx lint","prepare":"tsdx build","size":"size-limit","analyze":"size-limit --why"},"peerDependencies":{},"husky":{"hooks":{"pre-commit":"tsdx lint"}},"prettier":{"printWidth":80,"semi":true,"singleQuote":true,"trailingComma":"es5"},"name":"@identity.com/prove-solana-wallet","author":{"name":"Daniel Kelleher","email":"daniel@identity.com"},"description":"Prove ownership of a Solana wallet.","module":"dist/prove-solana-wallet.esm.js","size-limit":[{"path":"dist/prove-solana-wallet.cjs.production.min.js","limit":"10 KB"},{"path":"dist/prove-solana-wallet.esm.js","limit":"10 KB"}],"devDependencies":{"@size-limit/preset-small-lib":"^4.11.0","husky":"^6.0.0","size-limit":"^4.11.0","tsdx":"^0.14.1","tslib":"^2.2.0","typescript":"^4.2.4"},"dependencies":{"@solana/web3.js":"^1.14.0"},"licenseText":"MIT License\n\nCopyright (c) 2021 dankelleher\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.","_id":"@identity.com/prove-solana-wallet@0.1.3","dist":{"shasum":"a8fc694dd850cea1b82b3568667e3b6877dc5422","integrity":"sha512-XeWoFKJ5o5HoKWP4NuuHKAJAjQ5qmiYYVMCvQwPxnWf2mTWnHrInLhfLtTvfQKMQBGJbA5EJ5Ic2J5a1bGz3eA==","tarball":"https://registry.npmjs.org/@identity.com/prove-solana-wallet/-/prove-solana-wallet-0.1.3.tgz","fileCount":15,"unpackedSize":213301,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgrlGLCRA9TVsSAnZWagAAI1IQAJTTInFXMJRoAwUPw2qv\nVvOGSBuvcTR7knHXgTsCvHPpfe8voiXLeC3l0SMT1b+XGAGiZOGVi6O6a756\ncSh1TWr17ymmaWmaAXwKsv1GO3Nct9ZYlrBFDOeUxaLVBY2cfTqv38XzsZ/c\nFPY1lG1fPVOv1vapGBxC6TAhY8dbGctSuGuqmdtyc+lYDm4DMl2TaQuiBWnU\nuKdpoAtvKGm6ROhuZIwIxblcIu0B+ZD4LPhRxIAO2CmTnOV3D1ft/MuON9d0\nonxBTncVWwdpBJyEC0lxf4SPPEnkI6vJ7hqq1laYJqVLctZ1Csqnys1Yygw6\neGLb1hJbVrFU/fW/ef5HjdgPt0nTnXTayGjQLDqdXBFGhubf/RWpfF52BbOl\no+gTKsXzMxIWclN4RqUEStlXmQ9buQFBSD3GLvFTx/h5NdYdNWHT1msB04P4\nWEFP7uGYhUWg3QeREK8fn0pqfNK2qjZPisy+3azk0P73GqOpL/gZBuwwo+Ej\n82eo6X8glR7OsbiOf9Haeq5qAq1fOOWITJrI42hnASpQ3tdxdiqnIYymGL6O\n32F7jdxxV8vAL1XoD+x7KIRx4qTO3K8+zq0ZU1f+sc7MSWywBiFLhBcTS6u7\nJ7+948TCWVhBcxEofGn8d1ErtkkjRTSBfo8RcTV2UGVkA0TnQLseT5IuYodc\nXo7f\r\n=tVIQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB8+iBbwbxfmGArJoZA+Veuc/iKgOGDkM8hSx7JL4h8rAiEAkYv1sOonu7p7PZL3wOoitzwkEQRt01ogPwSden39Ts0="}]},"_npmUser":{"name":"dankelleher","email":"dankelleher@yahoo.com"},"directories":{},"maintainers":[{"name":"tyronemichael","email":"tyronemichael@gmail.com"},{"name":"pbshoemaker","email":"phillip@identity.org"},{"name":"kevinhcolgan","email":"kevin@civic.com"},{"name":"flippiescholtz","email":"flippie@civic.com"},{"name":"dmelosantos","email":"danielmelos@gmail.com"},{"name":"identity.com-ci","email":"bruno@civic.com"},{"name":"dankelleher","email":"dankelleher@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/prove-solana-wallet_0.1.3_1622036875369_0.8611496926528772"},"_hasShrinkwrap":false},"0.1.4":{"version":"0.1.4","license":"MIT","main":"dist/index.js","typings":"dist/index.d.ts","engines":{"node":">=10"},"scripts":{"start":"tsdx watch","build":"tsdx build","test":"tsdx test","lint":"tsdx lint","prepare":"tsdx build","size":"size-limit","analyze":"size-limit --why"},"peerDependencies":{},"husky":{"hooks":{"pre-commit":"tsdx lint"}},"prettier":{"printWidth":80,"semi":true,"singleQuote":true,"trailingComma":"es5"},"name":"@identity.com/prove-solana-wallet","author":{"name":"Daniel Kelleher","email":"daniel@identity.com"},"description":"Prove ownership of a Solana wallet.","module":"dist/prove-solana-wallet.esm.js","size-limit":[{"path":"dist/prove-solana-wallet.cjs.production.min.js","limit":"10 KB"},{"path":"dist/prove-solana-wallet.esm.js","limit":"10 KB"}],"devDependencies":{"@size-limit/preset-small-lib":"^4.11.0","husky":"^6.0.0","size-limit":"^4.11.0","tsdx":"^0.14.1","tslib":"^2.2.0","typescript":"^4.2.4"},"dependencies":{"@solana/web3.js":"^1.14.0"},"licenseText":"MIT License\n\nCopyright (c) 2021 dankelleher\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.","_id":"@identity.com/prove-solana-wallet@0.1.4","dist":{"shasum":"e42139855a75367f5750d2fc5a078a7f211fbad6","integrity":"sha512-XQd/j6Qy/+cpdE/D8MwSAx50Dk/A1AfaEOkiSa0vtfz0XWKqI9ml46VlbmrAddIGlxIbWc8eWTXJyLP+Uw42vQ==","tarball":"https://registry.npmjs.org/@identity.com/prove-solana-wallet/-/prove-solana-wallet-0.1.4.tgz","fileCount":15,"unpackedSize":213607,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgr2hqCRA9TVsSAnZWagAA9NIP/07K4pNYf5QGISHj0NkO\ncTkoDR8AQO1GEtG1VQ3OJBEkg+qTGegZ7/arWhWkr0jZfm4LSAptoZ5jMINj\noSPg9aemIB0cPyitO8aHU/VMl3r9cd0b5Hxc/h+lrPZ1BuvBcYMSTbbkRr+P\nyzZFy06rPuKoJwSRZ+OmTey5itIdanTIEwBzgFkNYtfANU/qSzOFtoeKcpfS\npcN8Jw6/C0ylDNq5T/IYXg27vfuJIpAV6Q/AzJWXlDUT9etAZTOJSDbuelAU\n8UOnqHZOw2ufCihaGAbD9g4zqOSLwbYUVMC6P73kx+epTXZWgIE/4jmwQvtz\nCQLRO8yuM6n4ipumwNxWNqciTsRnWOeQ8NKERLgvqA/fcrBop12hforkM7aK\n9mNbYHbzGEsOkeDHsDB6EvFqGZ7FRPN/cwsd0+jhrzA040YMpftg6vfgnM0I\nHBrcTObce1Nvs9KK1hdYFjQ1JkQVeAp+KD0IcHFXJNpnh/tFbTXRxFB7pnLR\nmkux/9SYDe+zt8GVBYy5UPTkjyi5DQXQXg9swD2zH67RRbqJ/Ax8bY7+jUjx\nKsfOhw4nsadKxfLpk3fQrCQmtk81oQYnG6BGn88uJKTgpt9WkcYVEeDz1pCI\nwNXdI0+3dNZtbaVLuZgOqcLOzoQCd4P25P4xdrYDUWouNPdtvvneoS8BviTG\nr5nO\r\n=KNuh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAQKsSV370yElyhLWMdZ27E4vAaNR/ntFKz6H6tbKvD3AiB6qlF/DTyuAq0lBwXafKkgKKCIfjXJuaBlytSkd0dAFg=="}]},"_npmUser":{"name":"dankelleher","email":"dankelleher@yahoo.com"},"directories":{},"maintainers":[{"name":"tyronemichael","email":"tyronemichael@gmail.com"},{"name":"pbshoemaker","email":"phillip@identity.org"},{"name":"kevinhcolgan","email":"kevin@civic.com"},{"name":"flippiescholtz","email":"flippie@civic.com"},{"name":"dmelosantos","email":"danielmelos@gmail.com"},{"name":"identity.com-ci","email":"bruno@civic.com"},{"name":"dankelleher","email":"dankelleher@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/prove-solana-wallet_0.1.4_1622108265765_0.4508505418148263"},"_hasShrinkwrap":false},"0.2.0":{"version":"0.2.0","license":"MIT","main":"dist/index.js","typings":"dist/index.d.ts","engines":{"node":">=12"},"scripts":{"start":"tsdx watch","build":"tsdx build","test":"tsdx test","lint":"tsdx lint","prepare":"tsdx build","size":"size-limit","analyze":"size-limit --why"},"peerDependencies":{},"husky":{"hooks":{"pre-commit":"tsdx lint"}},"prettier":{"printWidth":80,"semi":true,"singleQuote":true,"trailingComma":"es5"},"name":"@identity.com/prove-solana-wallet","author":{"name":"Daniel Kelleher","email":"daniel@identity.com"},"description":"Prove ownership of a Solana wallet.","module":"dist/prove-solana-wallet.esm.js","size-limit":[{"path":"dist/prove-solana-wallet.cjs.production.min.js","limit":"200 KB"},{"path":"dist/prove-solana-wallet.esm.js","limit":"200 KB"}],"devDependencies":{"@size-limit/preset-small-lib":"^5.0.2","@types/bs58":"^4.0.1","husky":"^7.0.1","size-limit":"^5.0.2","ts-node":"^10.1.0","tsdx":"^0.14.1","tslib":"^2.3.0","typescript":"^4.3.5"},"dependencies":{"@solana/web3.js":"^1.22.0","bs58":"^4.0.1"},"licenseText":"MIT License\n\nCopyright (c) 2021 dankelleher\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.","_id":"@identity.com/prove-solana-wallet@0.2.0","dist":{"shasum":"37a716d8f97c1aeccfd80802fc11ee0c07e1a565","integrity":"sha512-177e5xVZjFqIS6V0G5t7LiVLor82iG9swq9TnqAts/nlP5wIGQp4wXfSlmcEZ7DiGWBZeVTRyA70kvojkBBxYQ==","tarball":"https://registry.npmjs.org/@identity.com/prove-solana-wallet/-/prove-solana-wallet-0.2.0.tgz","fileCount":17,"unpackedSize":252721,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhA9oPCRA9TVsSAnZWagAAZooP/AgHngvtTRxEzJMIEp57\n2n0vcXzBbpElC5vNBzfr1Wflz3bmv5f2Hj07uvDvBa370uFsopaYu4OauAEc\nllNO4VQVoBuj/osHnWwdk40npeV1LKqt9RwPmfLhj7cz9TcbaYUQld4oH0zf\nJjGy1Jb8sdRQztNLd7WtFNn1S94M/xzG1p0bZAX/Os0+HUB9gAn3nzM5NGqa\nsOcS8ppSFZtG6QLJ+zvvMhebdesMcY5w4UOmLcAV+pPIOmACItNMVZKt3hIY\n3rWP3L+HafF3ty9G75CixiIBi80t+iqDZX9odfm/r6/rXTfuQlN0tA8YG+sb\nIGhs1PdRx21Ws/MJ5gv6uQdWdU6g5zSXXvTB8vhQDvHIE6tkQTOUXrz27aoe\nGYzz8J766jGq3p6odsskF2hp0GnHywtMKVQolTpRLysgrIGWB58ZHvmVSE4q\neBu15gWIQvLJS0mikaRYbqrALhU8JnUFd4pPGRG7rwdH+v5DnAmweYnGR2Kp\nbgv9Xli+z6owJFp8P7TI3JbxRwc6pKpfpJc53RAuV3wArJMtD96GsLhRATcJ\n0aSPW2YHZkk+zmlqB1OiedC78pgY3GSyPb0Z3LnybupdiSfXQf3S8JXrqKyn\nst3sECQ6s1NeXEBuQ+8gpV08By7Jg4t3fSsdhVQp9GzyY+A4buC+wK7rq1Oy\ndXr3\r\n=2+mZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFwMjLRDx+wLMyn6RyKjJ0ypvWJ2Nx3b2E9uRkEkbJEkAiBJA4DlhoeDN7mg7wlXcA7PL0or8K34nF/MelQ9LI51Ew=="}]},"_npmUser":{"name":"dankelleher","email":"dankelleher@yahoo.com"},"directories":{},"maintainers":[{"name":"identity.com-ci","email":"bruno@civic.com"},{"name":"dankelleher","email":"dankelleher@yahoo.com"},{"name":"dmelosantos","email":"danielmelos@gmail.com"},{"name":"flippiescholtz","email":"flippie@civic.com"},{"name":"kevinhcolgan","email":"kevin@civic.com"},{"name":"pbshoemaker","email":"phillip@identity.org"},{"name":"tyronemichael","email":"tyronemichael@gmail.com"},{"name":"lucmir","email":"luccmir@gmail.com"},{"name":"s4nt14go","email":"santiagopergamo@gmail.com"},{"name":"william-identity","email":"william@identity.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/prove-solana-wallet_0.2.0_1627642383597_0.5658289209502698"},"_hasShrinkwrap":false},"0.2.1":{"version":"0.2.1","license":"MIT","main":"dist/index.js","typings":"dist/index.d.ts","engines":{"node":">=12"},"scripts":{"start":"tsdx watch","build":"tsdx build","test":"tsdx test","lint":"tsdx lint","prepare":"tsdx build","size":"size-limit","analyze":"size-limit --why"},"peerDependencies":{},"husky":{"hooks":{"pre-commit":"tsdx lint"}},"prettier":{"printWidth":80,"semi":true,"singleQuote":true,"trailingComma":"es5"},"name":"@identity.com/prove-solana-wallet","author":{"name":"Daniel Kelleher","email":"daniel@identity.com"},"description":"Prove ownership of a Solana wallet.","module":"dist/prove-solana-wallet.esm.js","size-limit":[{"path":"dist/prove-solana-wallet.cjs.production.min.js","limit":"200 KB"},{"path":"dist/prove-solana-wallet.esm.js","limit":"200 KB"}],"devDependencies":{"@size-limit/preset-small-lib":"^5.0.2","@types/bs58":"^4.0.1","husky":"^7.0.1","size-limit":"^5.0.2","ts-node":"^10.1.0","tsdx":"^0.14.1","tslib":"^2.3.0","typescript":"^4.3.5"},"dependencies":{"@solana/web3.js":"^1.22.0","bs58":"^4.0.1"},"licenseText":"MIT License\n\nCopyright (c) 2021 dankelleher\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.","_id":"@identity.com/prove-solana-wallet@0.2.1","dist":{"shasum":"6f15ad0fde64b114975d9cdf8872730969a9166d","integrity":"sha512-AgT+rplWcT0QmaeYd/p3oMisrZQ+zJcdRPSPPwqM6Vwd6RSc5YFZNm0AME6G6B5uEACi65tMLTbjJQU0Y9NeEA==","tarball":"https://registry.npmjs.org/@identity.com/prove-solana-wallet/-/prove-solana-wallet-0.2.1.tgz","fileCount":17,"unpackedSize":252953,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhA9yPCRA9TVsSAnZWagAAyvgP/14o9JgYSfXNUIJNCAep\nReQrxLe2hSoxcQ01oJXbslSEFQl4S/xkom3aMdIoXcX4ppfEOS9uXj2tRfL+\nfIVk085mrRgHQZGRxScSu3XOJnv80mtWP75ovxciZjw1SWnQbCbJ1CB9DJ2u\nA6Cdo9k5eOoAZER1vGFyKnVC2WEJH2Rt8iByMS4OOrlsADqln447uYuDqqMA\nQIrinFqLGloA8Uef5Po4kHOzIoWmFrW7kviNjIRZ2Ku8f5KgaF9IypZqh+pi\n10d/RmHhdIPAU7Sdroft2J+LdKqlDTj4DqOQUb0DbO654t+/ZuT+99zxyzsT\n91LdU+aVlb5Xo4KupEty4NIa5F5jaDPC309ffbmuraxGatfWFBtBqytMYz+S\nj2owjuBBkfzoZOPchH5hRgqX64eQ17mX/o71u527Nwi39OOsbmej1QAKP2G+\neGvGRgN8yiFIFgqEW6nkcd1QB/gbeeRaVwRvLgauLFB5TisnquRavZ3JgXQz\nmclDFdmo6k4u8g8h2l74hwn/9qOBCJxFLnv/LKzb3PR4dOlrywH6Oyz4CZ9X\nhWmi2RdcKwuyGgBJdRUkGnmmcX8SF0ZWfe3VM0D3oPtoi+ZdG+dmBQBXEu8u\nOoWZLjqxIivUrHB3LjUJNoaILzpHqquitXR/GcN/LuriJUsiDnTF67yiBONV\nrITk\r\n=d00K\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCwNcd3LDYC4Wr/Oh0Xpr/f1ZZjo/CbMqIOA+C8JdpWKQIhAIMfel3jXlW3g6rdXqqOMUVyek/8UqZeTj554nWPZWU3"}]},"_npmUser":{"name":"dankelleher","email":"dankelleher@yahoo.com"},"directories":{},"maintainers":[{"name":"identity.com-ci","email":"bruno@civic.com"},{"name":"dankelleher","email":"dankelleher@yahoo.com"},{"name":"dmelosantos","email":"danielmelos@gmail.com"},{"name":"flippiescholtz","email":"flippie@civic.com"},{"name":"kevinhcolgan","email":"kevin@civic.com"},{"name":"pbshoemaker","email":"phillip@identity.org"},{"name":"tyronemichael","email":"tyronemichael@gmail.com"},{"name":"lucmir","email":"luccmir@gmail.com"},{"name":"s4nt14go","email":"santiagopergamo@gmail.com"},{"name":"william-identity","email":"william@identity.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/prove-solana-wallet_0.2.1_1627643023485_0.5524503604988902"},"_hasShrinkwrap":false},"0.2.2":{"version":"0.2.2","license":"MIT","main":"dist/index.js","typings":"dist/index.d.ts","engines":{"node":">=12"},"scripts":{"start":"tsdx watch","build":"tsdx build","test":"tsdx test","lint":"tsdx lint","prepare":"tsdx build","size":"size-limit","analyze":"size-limit --why"},"peerDependencies":{},"husky":{"hooks":{"pre-commit":"tsdx lint"}},"prettier":{"printWidth":80,"semi":true,"singleQuote":true,"trailingComma":"es5"},"name":"@identity.com/prove-solana-wallet","author":{"name":"Daniel Kelleher","email":"daniel@identity.com"},"description":"Prove ownership of a Solana wallet.","module":"dist/prove-solana-wallet.esm.js","size-limit":[{"path":"dist/prove-solana-wallet.cjs.production.min.js","limit":"200 KB"},{"path":"dist/prove-solana-wallet.esm.js","limit":"200 KB"}],"devDependencies":{"@size-limit/preset-small-lib":"^5.0.2","@types/bs58":"^4.0.1","husky":"^7.0.1","size-limit":"^5.0.2","ts-node":"^10.1.0","tsdx":"^0.14.1","tslib":"^2.3.0","typescript":"^4.3.5"},"dependencies":{"@solana/web3.js":"^1.22.0","bs58":"^4.0.1"},"licenseText":"MIT License\n\nCopyright (c) 2021 dankelleher\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.","_id":"@identity.com/prove-solana-wallet@0.2.2","dist":{"shasum":"922c874f5a59be54a6a564a9dd0feb51290f29e2","integrity":"sha512-+4BYv0cHdiPSL0jhY6ImAuvbFZZ6LQnE3Q8GPnSWXvfsWi3E7brxrUPQ9702CPqdIi0F4fn3VWvq/8pwIGrnaw==","tarball":"https://registry.npmjs.org/@identity.com/prove-solana-wallet/-/prove-solana-wallet-0.2.2.tgz","fileCount":17,"unpackedSize":259913,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhHMxDCRA9TVsSAnZWagAA574QAIRJLVBCatZIA8f0mGC8\nnSK94lCSYBm5FKVzxdX8L4KAihseXJyNQINNz+mXBK+NHkl4eK/L+tfr5E/V\nbdYZ6SeIRZwvgETyglcdLM0O7dv27LOP2tTwbyQuOHmM2ptPVcO9El8//v6Z\nKLsU3vvsHXP0iV5cDLsI8cuA40KX5ecUHOsIitvPyh1nRuhdDWleQBh4Xfe8\nZrsd+jQQ9LAwMWDfyuF7XgcKs0vnYz4cUwwpIEzfRBfEWAJTm17w4mm+oU3g\n1TMH6xtxWtqAkr4J9NHwSbVK9SN55kBidZi70jJ83ZbqFofyIn5oVZbvlg+Q\nB5uP2RlesKLC8F3RT8JQNLQYd90/TJkIlXq+x6AZi+r7O9fVx8/PtNk9VHKX\n97fjymOeUQfsL2AbJbytlS4LaSFikKfouakqU9bb2+uZsZrCP3uqXqXzBrfd\nynR42PtybV7Kc7e1We/6xjRCGbSbTvuPrcUtNml0LUmvUaVyXdv6546VuDQO\nY9bz+bMW1FLH6+sJ0A7j6k+eONRVtZmKEobeYTkjWfHvmmMBfvDIyzYb0ZIX\nBqqJP6hQd1N/MNyxf9rbxJenQgatnVM3JjnYMxvXnnMsjGpcw7YgaY7L7VK1\nxWrAo1dH8yWIjHZKSFxoJ0b2CxPQgvCEFQVuqk0toRiI/Pb9PtmkGsEoBr0K\nQ7jy\r\n=hTtb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCq8owBN3SUkc24PXfAqP+ZYFptGpmMnh09p91IdqkxTwIhAPIqKgpaArYq78hpGzuwTYixJi5qCWNZNI5QsQ1aXy3J"}]},"_npmUser":{"name":"dankelleher","email":"dankelleher@yahoo.com"},"directories":{},"maintainers":[{"name":"buzzec","email":"bbetter9101@gmail.com"},{"name":"identity.com-ci","email":"bruno@civic.com"},{"name":"dankelleher","email":"dankelleher@yahoo.com"},{"name":"dmelosantos","email":"danielmelos@gmail.com"},{"name":"flippiescholtz","email":"flippie@civic.com"},{"name":"kevinhcolgan","email":"kevin@civic.com"},{"name":"pbshoemaker","email":"phillip@identity.org"},{"name":"tyronemichael","email":"tyronemichael@gmail.com"},{"name":"lucmir","email":"luccmir@gmail.com"},{"name":"s4nt14go","email":"santiagopergamo@gmail.com"},{"name":"william-identity","email":"william@identity.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/prove-solana-wallet_0.2.2_1629277250937_0.8229658295726936"},"_hasShrinkwrap":false},"0.2.3":{"version":"0.2.3","license":"MIT","main":"dist/index.js","typings":"dist/index.d.ts","engines":{"node":">=12"},"scripts":{"start":"tsdx watch","build":"tsdx build","test":"tsdx test","lint":"tsdx lint","prepare":"tsdx build","size":"size-limit","analyze":"size-limit --why"},"peerDependencies":{},"husky":{"hooks":{"pre-commit":"tsdx lint"}},"prettier":{"printWidth":80,"semi":true,"singleQuote":true,"trailingComma":"es5"},"name":"@identity.com/prove-solana-wallet","author":{"name":"Daniel Kelleher","email":"daniel@identity.com"},"description":"Prove ownership of a Solana wallet.","module":"dist/prove-solana-wallet.esm.js","size-limit":[{"path":"dist/prove-solana-wallet.cjs.production.min.js","limit":"200 KB"},{"path":"dist/prove-solana-wallet.esm.js","limit":"200 KB"}],"devDependencies":{"@size-limit/preset-small-lib":"^5.0.2","@types/bs58":"^4.0.1","husky":"^7.0.1","size-limit":"^5.0.2","ts-node":"^10.1.0","tsdx":"^0.14.1","tslib":"^2.3.0","typescript":"^4.3.5"},"dependencies":{"@solana/web3.js":"^1.22.0","bs58":"^4.0.1"},"licenseText":"MIT License\n\nCopyright (c) 2021 dankelleher\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.","_id":"@identity.com/prove-solana-wallet@0.2.3","dist":{"shasum":"6a303e174da8b03a585d3e47a0c32d7735076c59","integrity":"sha512-WSzx4iGHz7/5EVnAmPPrL0t/k69grow5h0JtdOfCOPpVlzHaAEMMUABn3qHNJ5irwVbN4kYHXDEqETMewTh3ZQ==","tarball":"https://registry.npmjs.org/@identity.com/prove-solana-wallet/-/prove-solana-wallet-0.2.3.tgz","fileCount":17,"unpackedSize":261722,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhN0ssCRA9TVsSAnZWagAAdNIP/i6IEaMFYwUA0eC5OLZd\nNXlNj6jXXldPvPMXQAIEKB4uzT3eGAM0yygg9ssWxyJNmt0zFv6cRj/I1foc\nPDIQ0vtbM/mhy//vYDkojabXFUjjkmfYBXGSkjIu0QwsMgenbctZJmjSFNBV\n10v6uSzjxYaVR2P43eIo0T4GVWsbi4S/QTmH8y/y00m1zqa8jkMCAmbzug2X\nBBrknZeZPrXKWvGPMVLCYdETeY/XFOJFpoaJaSUcZ7oodK419bW08x2FSoLz\n7de2OOEsNfJyL8zcLRStHo2hP1kqNefwUPsqw7u76sanSX5g8TdLlgX/zF09\nUuR7sKBDTFe+lGVkp3/MZhplY40AWdBDVm8xy+burZ9riHDVVESCq8UorhNU\nLwFnZeGT7sXS0X+7Iq+zzrMT2SxPzsvW5dcu/8oUInAg8Tb1j63rU/HGIXKg\n6ouh3qpZdR/gbi+pMqLW7l8p5loSFLpIbTT5cpc86zt7xl21K6ZhtecIl6OI\nkJSoAcWQapR4okkjk/BfAPY26diATFa+3yfiJ4XaeOFsVedevwDDvPOfGdtX\np60baY34vkHlnlXw2VHD8bHxQjvn9KfeDc1bN9MtdVmsGI/LStoZhNTzh0Rw\nY78OeMZXcRuNYnddrk2ZxYA45SitplGeFU22YvaEhqn9LtJeeH0Qt0YpDHsW\nGcqn\r\n=Jz0c\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDMss1IySFSQNBozzQoW+2gGwdaN047KhQSP+UEytpVCQIhAIlgtf2vo3P12b6l1VYclkMCvCE4knQM2MtRT8JqIFsp"}]},"_npmUser":{"name":"dankelleher","email":"dankelleher@yahoo.com"},"directories":{},"maintainers":[{"name":"buzzec","email":"bbetter9101@gmail.com"},{"name":"identity.com-ci","email":"bruno@civic.com"},{"name":"dankelleher","email":"dankelleher@yahoo.com"},{"name":"dmelosantos","email":"danielmelos@gmail.com"},{"name":"flippiescholtz","email":"flippie@civic.com"},{"name":"kevinhcolgan","email":"kevin@civic.com"},{"name":"pbshoemaker","email":"phillip@identity.org"},{"name":"tyronemichael","email":"tyronemichael@gmail.com"},{"name":"lucmir","email":"luccmir@gmail.com"},{"name":"s4nt14go","email":"santiagopergamo@gmail.com"},{"name":"william-identity","email":"william@identity.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/prove-solana-wallet_0.2.3_1631013676078_0.7020887547858188"},"_hasShrinkwrap":false},"0.2.4":{"version":"0.2.4","license":"MIT","main":"dist/index.js","typings":"dist/index.d.ts","engines":{"node":">=12"},"scripts":{"start":"tsdx watch","build":"tsdx build","test":"tsdx test","lint":"tsdx lint","prepare":"tsdx build","size":"size-limit","analyze":"size-limit --why"},"peerDependencies":{},"husky":{"hooks":{"pre-commit":"tsdx lint"}},"jest":{"testTimeout":30000},"prettier":{"printWidth":80,"semi":true,"singleQuote":true,"trailingComma":"es5"},"name":"@identity.com/prove-solana-wallet","author":{"name":"Daniel Kelleher","email":"daniel@identity.com"},"description":"Prove ownership of a Solana wallet.","module":"dist/prove-solana-wallet.esm.js","size-limit":[{"path":"dist/prove-solana-wallet.cjs.production.min.js","limit":"200 KB"},{"path":"dist/prove-solana-wallet.esm.js","limit":"200 KB"}],"devDependencies":{"@size-limit/preset-small-lib":"^5.0.2","@types/bs58":"^4.0.1","husky":"^7.0.1","size-limit":"^5.0.2","ts-node":"^10.1.0","tsdx":"^0.14.1","tslib":"^2.3.0","typescript":"^4.3.5"},"dependencies":{"@solana/web3.js":"^1.22.0","bs58":"^4.0.1"},"licenseText":"MIT License\n\nCopyright (c) 2021 dankelleher\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.","_id":"@identity.com/prove-solana-wallet@0.2.4","dist":{"shasum":"560b2bfc2df5ff70c2183675f6dc9c4d46e8adc7","integrity":"sha512-DsGyu9l52//fmhsC1GR+0ylsaGxOgo8e7UEEF3gTHFXECcHgXatuhyBafMO4Gm9a7EHdC22fjgp1MM9hq/rN3A==","tarball":"https://registry.npmjs.org/@identity.com/prove-solana-wallet/-/prove-solana-wallet-0.2.4.tgz","fileCount":17,"unpackedSize":263121,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCBiv0IjjCj8591POjMQmrHmzghlWTchvbMzOfbi5Z6KAIhAMLyml2BHAdPk/bY2/iUBJzrT8w+o27at3GKglrhURQc"}]},"_npmUser":{"name":"dankelleher","email":"dankelleher@yahoo.com"},"directories":{},"maintainers":[{"name":"buzzec","email":"bbetter9101@gmail.com"},{"name":"rado0x54","email":"web@riedel-it.de"},{"name":"araptarchis","email":"alexis.raptarchis@googlemail.com"},{"name":"mitchcivic","email":"mitch@civic.com"},{"name":"identity.com-ci","email":"bruno@civic.com"},{"name":"dankelleher","email":"dankelleher@yahoo.com"},{"name":"dmelosantos","email":"danielmelos@gmail.com"},{"name":"flippiescholtz","email":"flippie@civic.com"},{"name":"kevinhcolgan","email":"kevin@civic.com"},{"name":"pbshoemaker","email":"phillip@identity.org"},{"name":"tyronemichael","email":"tyronemichael@gmail.com"},{"name":"lucmir","email":"luccmir@gmail.com"},{"name":"s4nt14go","email":"santiagopergamo@gmail.com"},{"name":"william-identity","email":"william@identity.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/prove-solana-wallet_0.2.4_1634294199584_0.299549655436101"},"_hasShrinkwrap":false},"0.2.5":{"version":"0.2.5","license":"MIT","main":"dist/index.js","typings":"dist/index.d.ts","engines":{"node":">=12"},"scripts":{"start":"tsdx watch","build":"tsdx build","test":"tsdx test","lint":"tsdx lint","prepare":"tsdx build","size":"size-limit","analyze":"size-limit --why"},"peerDependencies":{},"husky":{"hooks":{"pre-commit":"tsdx lint"}},"jest":{"testTimeout":30000},"prettier":{"printWidth":80,"semi":true,"singleQuote":true,"trailingComma":"es5"},"name":"@identity.com/prove-solana-wallet","author":{"name":"Daniel Kelleher","email":"daniel@identity.com"},"description":"Prove ownership of a Solana wallet.","module":"dist/prove-solana-wallet.esm.js","size-limit":[{"path":"dist/prove-solana-wallet.cjs.production.min.js","limit":"200 KB"},{"path":"dist/prove-solana-wallet.esm.js","limit":"200 KB"}],"devDependencies":{"@size-limit/preset-small-lib":"^5.0.2","@types/bs58":"^4.0.1","husky":"^7.0.1","size-limit":"^5.0.2","ts-node":"^10.1.0","tsdx":"^0.14.1","tslib":"^2.3.0","typescript":"^4.3.5"},"dependencies":{"@solana/web3.js":"^1.22.0","bs58":"^4.0.1"},"licenseText":"MIT License\n\nCopyright (c) 2021 dankelleher\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.","_id":"@identity.com/prove-solana-wallet@0.2.5","dist":{"shasum":"6884e7657969a38ea0bf20d2ad5c7642161ce183","integrity":"sha512-Q06MFpVIZ2b+nGMxT1+rt5R+b9dAefJFqYUf3zUpJ1YMGpzblAhsLcUW/dKm8cFhAdc5YsFcTqzo+YyUbOkOtg==","tarball":"https://registry.npmjs.org/@identity.com/prove-solana-wallet/-/prove-solana-wallet-0.2.5.tgz","fileCount":17,"unpackedSize":265042,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh8YccCRA9TVsSAnZWagAAcxYQAKRySyv3zttEz3ReNUvT\njkBtodZt1OzEwIvYzBW7CFeJ/5VUGnDzH4F1tuNgetvXA54rh5zwvq7wIJBS\nzyFw0ecmlJjSwp7GkQ4qFCoGYiuOCUidfDOyxdzsS475m5MUs/L/kbhXKyCD\nuN9Ll109pMP4n6v2i5uRFB5LftleWGTXVARgA8KQvfD+wJj8PH4J2Z/7XkeZ\nYYP4gCinL4z94+NnaGkYaM7nXqrIrimvETJiyvcZSr5A660/vMF/alCX5Fv0\nbfKiw4Cc6rWqPLbiZhTSKPgVvfN8wHeUCCTc++EIpn4V8jlf+gGxp/CYhP9F\nQd/pXvPYv3OS9Ui7DOuqSn4ReoZeq11PI1XdGNNORK6+9VMa/DLtt0iPdaNb\nfqRgGaavZc0VZ9r+AktdB7vDKD25v961T24c/b5puu7VcdnuhfEwqGaYfGq8\nEU2x5CvUCeCCThH0JOA71xtC+u2ytEs/uKsRLwNlmyFCU9opCW8MO40RiYBy\n/D8DIG7t3S/VdwJLZE1simuAt/86jU2vKwSbnKxrSBTw9ohtx0wliIo5hvcn\n8GQL1rTTMcGVoF61cPCh49y7z3vbmYKmgXeRzElUE8vyMf3+kw78847rJzkm\nte1DRMs44B/TY2sIdWARs4IStMXx7suTVV7m+oZ8ZABWrvIvf4XXE+uD2nza\nItg8\r\n=mqxj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFvQoL16hfTkSgcJHIK4SSmTbRTB3g6sfABVDS/zYYiCAiEA8CX3+xRGK1uJNy+IP2I+2/ZJcfd3axzlXgD0AeUbAxI="}]},"_npmUser":{"name":"dankelleher","email":"dankelleher@yahoo.com"},"directories":{},"maintainers":[{"name":"chriteixeira","email":"chriteixeira@gmail.com"},{"name":"buzzec","email":"bbetter9101@gmail.com"},{"name":"rado0x54","email":"web@riedel-it.de"},{"name":"araptarchis","email":"alexis.raptarchis@googlemail.com"},{"name":"mitchcivic","email":"mitch@civic.com"},{"name":"identity.com-ci","email":"bruno@civic.com"},{"name":"dankelleher","email":"dankelleher@yahoo.com"},{"name":"dmelosantos","email":"danielmelos@gmail.com"},{"name":"flippiescholtz","email":"flippie@civic.com"},{"name":"kevinhcolgan","email":"kevin@civic.com"},{"name":"pbshoemaker","email":"phillip@identity.org"},{"name":"tyronemichael","email":"tyronemichael@gmail.com"},{"name":"lucmir","email":"luccmir@gmail.com"},{"name":"william-identity","email":"william@identity.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/prove-solana-wallet_0.2.5_1643218716163_0.1044638152664712"},"_hasShrinkwrap":false},"0.2.6-beta1":{"version":"0.2.6-beta1","license":"MIT","main":"dist/index.js","typings":"dist/index.d.ts","engines":{"node":">=12"},"scripts":{"start":"tsdx watch","build":"tsdx build","test":"tsdx test","lint":"tsdx lint","lint:fix":"yarn lint --fix","prepare":"tsdx build","size":"size-limit","analyze":"size-limit --why"},"peerDependencies":{},"husky":{"hooks":{"pre-commit":"tsdx lint"}},"jest":{"testTimeout":30000},"prettier":{"printWidth":80,"semi":true,"singleQuote":true,"trailingComma":"es5"},"name":"@identity.com/prove-solana-wallet","author":{"name":"Daniel Kelleher","email":"daniel@identity.com"},"description":"Prove ownership of a Solana wallet.","module":"dist/prove-solana-wallet.esm.js","size-limit":[{"path":"dist/prove-solana-wallet.cjs.production.min.js","limit":"200 KB"},{"path":"dist/prove-solana-wallet.esm.js","limit":"200 KB"}],"devDependencies":{"@size-limit/preset-small-lib":"^5.0.2","@types/bs58":"^4.0.1","husky":"^7.0.1","size-limit":"^5.0.2","ts-node":"^10.1.0","tsdx":"^0.14.1","tslib":"^2.3.0","typescript":"^4.3.5"},"dependencies":{"@solana/web3.js":"^1.44.0","bs58":"^4.0.1"},"readmeFilename":"README.md","readme":"# Prove-Solana-Wallet\n\nThis library proves ownership of a [Solana](https://solana.com) wallet to off-chain verifiers.\n\nIt is compatible with standard browser wallet adapters, such as \n[sol-wallet-adapter](https://github.com/project-serum/sol-wallet-adapter), \nand can be extended to others.\n\n## Install\n\n```sh\nnpm install @identity.com/prove-solana-wallet\n```\n\nor \n\n```sh\nyarn add @identity.com/prove-solana-wallet\n```\n\n## Usage\n\nProve ownership of a keypair\n\nProver side: \n```js\nconst {prove} = require('@identity.com/prove-solana-wallet');\nconst proof = await prove(myKeypair);\n```\n\nVerifier side:\n```js\nconst {verify} = require('@identity.com/prove-solana-wallet');\nawait verify(proof, expectedPublicKey);\n```\n\nProve ownership of an external wallet (e.g. sol-wallet-adapter).\nSee [here](https://github.com/project-serum/sol-wallet-adapter) for more details.\n\nProver side:\n```js\nconst {prove} = require('@identity.com/prove-solana-wallet');\nimport Wallet from \"@project-serum/sol-wallet-adapter\";\n\nconst providerUrl = 'https://www.sollet.io';\nconst wallet = new Wallet(providerUrl);\nwallet.on('connect', async (publicKey) => {\n  // once the wallet is connected, we can prove ownership\n  const signer = (transaction:Transaction) => wallet.signTransaction(transaction);\n\n  const proof = await prove(myKeypair);\n});\n```\n\nVerifier side:\n```js\nconst {verify} = require('@identity.com/prove-solana-wallet');\nawait verify(proof, expectedPublicKey);\n```\n\n## Details\n\nThe prove() function generates a zero-value transaction, and\nsigns it with the wallet private key. For the transaction to be verified\nby the verify() function, it must:\n\n- have ony one instruction: SystemProgram.transfer\n- be zero-value\n- be self-to-self (i.e the sender and recipient are the same)\n- have a recent blockhash on mainnet\n- but not be broadcast to mainnet\n\nThese measures increase the security by reducing the likelihood\nthat an attacker can either coerce the wallet owner to sign\na transaction or intercept a broadcast one.\n\n## Configuration\n\nThe prove and verify functions can be configured as follows:\n\n### `cluster`\n\nDefault: `mainnet-beta`\n\nThe cluster that should be used when generating and verifying proofs\n\n### `commitment`\n\nDefault: `confirmed`\n\nWhen checking that a proof transaction has not been transmitted, the commitment to be used, i.e. the degree to which the transaction is finalised by the network\n\n### `supportedClusterUrls`\n\nOptional\nDefault: empty\n\nIf the cluster is not a standard solana public cluster, this map provides\nthe cluster URL to connect to. Use this when the proof may contain a cluster that is\nnot recognised by solana's clusterApiUrl function.\n","licenseText":"MIT License\n\nCopyright (c) 2021 dankelleher\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.","_id":"@identity.com/prove-solana-wallet@0.2.6-beta1","dist":{"shasum":"f6d1e864895b3447276ef3416c98a5691517e01f","integrity":"sha512-XOAwrIgm0lJt4HTeODLMbqkVKCXa/mnGbLQYfamXGTjSNaOgMyDW/mkAgs0h9uHrXtvy6vFR4trRhnKgKd8y1w==","tarball":"https://registry.npmjs.org/@identity.com/prove-solana-wallet/-/prove-solana-wallet-0.2.6-beta1.tgz","fileCount":17,"unpackedSize":266099,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB2PsfCi7HBGkzx75sobSTX2z4w5T+Egls4fmNNZIpmkAiEAnWoCGfHOYi43IHZ4YAhQURAuZbRNjPGI82iV+IqaXTw="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixWBRACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpCOg//fYpZ8pKsAgibykbdyPmluAOuTsYoIva3klapVcRYT8DA7p8O\r\n7ewe814Z8AzPG4ZzSrDRZiJopo1TjinM4WjrzcFFBFHQlMJwbO0MLMBrJjfW\r\n68u8l+2JUF5GqiwrBcNNxXMwR81RBTSFdkwUBtm4TPOkc2cnpQjToT9C0RCj\r\ng421yIAxvCV3KhWXLufQ3z50Yz6lbnhANy30cUV7+UV1SEVMfNpPmxaaQT1a\r\nL5Hk8sUVptGOEbBV33j8wTbeKJp5/tUPt1UTMHjQGn/hX4rVJFbT0fTd0nLO\r\nBc8zHwt8Ef9kK4gqAq2rxpOV/fn7C44YeB/X4sI7UW0YPb85N0ojWK4xRG1c\r\nmNaqHZAA3rtF78gcSXX/sCI1Thc6qrlyvYSWsEoZU5+/ixQk805eY65IIQLi\r\nhk1zW/42i1Dk5wrd3M6CO6rd6LSVcDaIBCo+D1fdp2IP+dySU2p8GSzqF7Hl\r\nkIwtY+Gphfqva6Ehokosh47CgF2XPijiBhcfcQKFMmnkTjH2691ftGj2GOj6\r\nbrIGS+3sMNNxXwsWRcMon25JKngkbFGMMBhvq5W7epwz/TYI+Gzl9pe0WkBy\r\n7bRzBtAF2/o1l+YMnFFbyOiSP5+goIc4+YIFaw/3/F6T02Mv45tTCZxlj7VG\r\n0U0riG17hvQ7P0oLmSuMkdIZaNtz6S6KFvM=\r\n=eNaB\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"flippiescholtz","email":"flippie@civic.com"},"directories":{},"maintainers":[{"name":"diosakhilleus","email":"DiosAkhilleus@gmail.com"},{"name":"chriteixeira","email":"chriteixeira@gmail.com"},{"name":"rado0x54","email":"web@riedel-it.de"},{"name":"araptarchis","email":"alexis.raptarchis@googlemail.com"},{"name":"mitchcivic","email":"mitch@civic.com"},{"name":"identity.com-ci","email":"bruno@civic.com"},{"name":"dankelleher","email":"dankelleher@yahoo.com"},{"name":"flippiescholtz","email":"flippie@civic.com"},{"name":"kevinhcolgan","email":"kevin@civic.com"},{"name":"pbshoemaker","email":"phillip@identity.org"},{"name":"tyronemichael","email":"tyronemichael@gmail.com"},{"name":"lucmir","email":"luccmir@gmail.com"},{"name":"william-identity","email":"william@identity.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/prove-solana-wallet_0.2.6-beta1_1657102416771_0.05622465836921764"},"_hasShrinkwrap":false},"0.2.6-beta2":{"version":"0.2.6-beta2","license":"MIT","main":"dist/index.js","typings":"dist/index.d.ts","engines":{"node":">=12"},"scripts":{"start":"tsdx watch","build":"tsdx build","test":"tsdx test","lint":"tsdx lint","lint:fix":"yarn lint --fix","prepare":"tsdx build","size":"size-limit","analyze":"size-limit --why"},"peerDependencies":{},"husky":{"hooks":{"pre-commit":"tsdx lint"}},"jest":{"testTimeout":30000},"prettier":{"printWidth":80,"semi":true,"singleQuote":true,"trailingComma":"es5"},"name":"@identity.com/prove-solana-wallet","author":{"name":"Daniel Kelleher","email":"daniel@identity.com"},"description":"Prove ownership of a Solana wallet.","module":"dist/prove-solana-wallet.esm.js","size-limit":[{"path":"dist/prove-solana-wallet.cjs.production.min.js","limit":"200 KB"},{"path":"dist/prove-solana-wallet.esm.js","limit":"200 KB"}],"devDependencies":{"@size-limit/preset-small-lib":"^5.0.2","@types/bs58":"^4.0.1","husky":"^7.0.1","size-limit":"^5.0.2","ts-node":"^10.1.0","tsdx":"^0.14.1","tslib":"^2.3.0","typescript":"^4.3.5"},"dependencies":{"@solana/web3.js":"^1.44.0","bs58":"^4.0.1"},"readmeFilename":"README.md","readme":"# Prove-Solana-Wallet\n\nThis library proves ownership of a [Solana](https://solana.com) wallet to off-chain verifiers.\n\nIt is compatible with standard browser wallet adapters, such as \n[sol-wallet-adapter](https://github.com/project-serum/sol-wallet-adapter), \nand can be extended to others.\n\n## Install\n\n```sh\nnpm install @identity.com/prove-solana-wallet\n```\n\nor \n\n```sh\nyarn add @identity.com/prove-solana-wallet\n```\n\n## Usage\n\nProve ownership of a keypair\n\nProver side: \n```js\nconst {prove} = require('@identity.com/prove-solana-wallet');\nconst proof = await prove(myKeypair);\n```\n\nVerifier side:\n```js\nconst {verify} = require('@identity.com/prove-solana-wallet');\nawait verify(proof, expectedPublicKey);\n```\n\nProve ownership of an external wallet (e.g. sol-wallet-adapter).\nSee [here](https://github.com/project-serum/sol-wallet-adapter) for more details.\n\nProver side:\n```js\nconst {prove} = require('@identity.com/prove-solana-wallet');\nimport Wallet from \"@project-serum/sol-wallet-adapter\";\n\nconst providerUrl = 'https://www.sollet.io';\nconst wallet = new Wallet(providerUrl);\nwallet.on('connect', async (publicKey) => {\n  // once the wallet is connected, we can prove ownership\n  const signer = (transaction:Transaction) => wallet.signTransaction(transaction);\n\n  const proof = await prove(myKeypair);\n});\n```\n\nVerifier side:\n```js\nconst {verify} = require('@identity.com/prove-solana-wallet');\nawait verify(proof, expectedPublicKey);\n```\n\n## Details\n\nThe prove() function generates a zero-value transaction, and\nsigns it with the wallet private key. For the transaction to be verified\nby the verify() function, it must:\n\n- have ony one instruction: SystemProgram.transfer\n- be zero-value\n- be self-to-self (i.e the sender and recipient are the same)\n- have a recent blockhash on mainnet\n- but not be broadcast to mainnet\n\nThese measures increase the security by reducing the likelihood\nthat an attacker can either coerce the wallet owner to sign\na transaction or intercept a broadcast one.\n\n## Configuration\n\nThe prove and verify functions can be configured as follows:\n\n### `cluster`\n\nDefault: `mainnet-beta`\n\nThe cluster that should be used when generating and verifying proofs\n\n### `commitment`\n\nDefault: `confirmed`\n\nWhen checking that a proof transaction has not been transmitted, the commitment to be used, i.e. the degree to which the transaction is finalised by the network\n\n### `supportedClusterUrls`\n\nOptional\nDefault: empty\n\nIf the cluster is not a standard solana public cluster, this map provides\nthe cluster URL to connect to. Use this when the proof may contain a cluster that is\nnot recognised by solana's clusterApiUrl function.\n","licenseText":"MIT License\n\nCopyright (c) 2021 dankelleher\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.","_id":"@identity.com/prove-solana-wallet@0.2.6-beta2","dist":{"shasum":"707a03b933fd45f8604d1a1e4c553e6937b38d26","integrity":"sha512-6R5vM2BmbfgZAHpMtpZzDFQqG098y/g7P48wsK3nGqqbKPT+yp+JRoP5F6jFwM/B6MF9/0FmfsFvMyPX3wFsmg==","tarball":"https://registry.npmjs.org/@identity.com/prove-solana-wallet/-/prove-solana-wallet-0.2.6-beta2.tgz","fileCount":17,"unpackedSize":266099,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGAaURV7uEc9PNIj1I2c+G/ONUk9gMdNpadkPa2HW2hqAiAf4rAPDNH3k8u0Kpu4XjGjKjPMMtgQpfZfXJKM2MUmOg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixWETACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrCyA/+L8kDv4HNVVefZfLoQWQeu3mG+waf1ZRdFeUpvUv1qVDSMloS\r\nUXNuvn79R91xqGPHNDCm+khwXQJoECRDDA4Z7MeQq9o6Y7X0xignt+hncMch\r\nk8qmPPdNgGrPTd2fzIpF4VA+3uvos1M1KsD+/NJFlc0q7nmYC9irS73XfMs1\r\nHwp2EW/ndCz2QYJAr99riImrB1ZrKJjNmg+aRb/0rwi3RurSO+5iRgemtXxn\r\nBpJDyxXymMJ0LaPnmtL25uBX73bENhpF176+HHWHZ5f3z44A0PfxNMGXfcdd\r\n6GSydloVjxbzwUFR8fkjvz1zklROZeUpAMZcc7OX+2wJcSdurXOM6uAd/xaI\r\n5S/V595Cn3OYZqfBZhFsx34adXLOEqIxe/Ts4I0lAyiaGUrhc0hvXoxskDmb\r\nxjS0drMEd2iRdDXn9zkbRrC+Ea/qlL9Gxs006vU3t4LS/ktBFgu534GBCo8x\r\nK9rEN5kx7iPDZw7UHHNgEpw9U93Nkp0VE50T4rZb0rLtxxWwJN648yGfZFHu\r\nu2sw/tgk9OLCJbHGE/sg59V7S/3OreNOgSEnGR0kxM0tNLN2CWbtXb9DMYJG\r\njuiTSSSNSdQRTeL2VPF8MYLKmnaGnYlfngLKByAyro6ZCowfMA7SVF/MHMAX\r\n+rYy5M1ZKtjIkfVPT+vITzEx4O7pOL3UIE8=\r\n=TrEg\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"flippiescholtz","email":"flippie@civic.com"},"directories":{},"maintainers":[{"name":"diosakhilleus","email":"DiosAkhilleus@gmail.com"},{"name":"chriteixeira","email":"chriteixeira@gmail.com"},{"name":"rado0x54","email":"web@riedel-it.de"},{"name":"araptarchis","email":"alexis.raptarchis@googlemail.com"},{"name":"mitchcivic","email":"mitch@civic.com"},{"name":"identity.com-ci","email":"bruno@civic.com"},{"name":"dankelleher","email":"dankelleher@yahoo.com"},{"name":"flippiescholtz","email":"flippie@civic.com"},{"name":"kevinhcolgan","email":"kevin@civic.com"},{"name":"pbshoemaker","email":"phillip@identity.org"},{"name":"tyronemichael","email":"tyronemichael@gmail.com"},{"name":"lucmir","email":"luccmir@gmail.com"},{"name":"william-identity","email":"william@identity.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/prove-solana-wallet_0.2.6-beta2_1657102611067_0.1988968770381807"},"_hasShrinkwrap":false},"0.2.6-beta3":{"version":"0.2.6-beta3","license":"MIT","main":"dist/index.js","typings":"dist/index.d.ts","engines":{"node":">=12"},"scripts":{"start":"tsdx watch","build":"tsdx build","test":"tsdx test","lint":"tsdx lint","lint:fix":"yarn lint --fix","prepare":"tsdx build","size":"size-limit","analyze":"size-limit --why"},"peerDependencies":{},"husky":{"hooks":{"pre-commit":"tsdx lint"}},"jest":{"testTimeout":30000},"prettier":{"printWidth":80,"semi":true,"singleQuote":true,"trailingComma":"es5"},"name":"@identity.com/prove-solana-wallet","author":{"name":"Daniel Kelleher","email":"daniel@identity.com"},"description":"Prove ownership of a Solana wallet.","module":"dist/prove-solana-wallet.esm.js","size-limit":[{"path":"dist/prove-solana-wallet.cjs.production.min.js","limit":"200 KB"},{"path":"dist/prove-solana-wallet.esm.js","limit":"200 KB"}],"devDependencies":{"@size-limit/preset-small-lib":"^5.0.2","@types/bs58":"^4.0.1","husky":"^7.0.1","size-limit":"^5.0.2","ts-node":"^10.1.0","tsdx":"^0.14.1","tslib":"^2.3.0","typescript":"^4.3.5"},"dependencies":{"@solana/web3.js":"^1.44.0","bs58":"^4.0.1"},"readmeFilename":"README.md","readme":"# Prove-Solana-Wallet\n\nThis library proves ownership of a [Solana](https://solana.com) wallet to off-chain verifiers.\n\nIt is compatible with standard browser wallet adapters, such as \n[sol-wallet-adapter](https://github.com/project-serum/sol-wallet-adapter), \nand can be extended to others.\n\n## Install\n\n```sh\nnpm install @identity.com/prove-solana-wallet\n```\n\nor \n\n```sh\nyarn add @identity.com/prove-solana-wallet\n```\n\n## Usage\n\nProve ownership of a keypair\n\nProver side: \n```js\nconst {prove} = require('@identity.com/prove-solana-wallet');\nconst proof = await prove(myKeypair);\n```\n\nVerifier side:\n```js\nconst {verify} = require('@identity.com/prove-solana-wallet');\nawait verify(proof, expectedPublicKey);\n```\n\nProve ownership of an external wallet (e.g. sol-wallet-adapter).\nSee [here](https://github.com/project-serum/sol-wallet-adapter) for more details.\n\nProver side:\n```js\nconst {prove} = require('@identity.com/prove-solana-wallet');\nimport Wallet from \"@project-serum/sol-wallet-adapter\";\n\nconst providerUrl = 'https://www.sollet.io';\nconst wallet = new Wallet(providerUrl);\nwallet.on('connect', async (publicKey) => {\n  // once the wallet is connected, we can prove ownership\n  const signer = (transaction:Transaction) => wallet.signTransaction(transaction);\n\n  const proof = await prove(myKeypair);\n});\n```\n\nVerifier side:\n```js\nconst {verify} = require('@identity.com/prove-solana-wallet');\nawait verify(proof, expectedPublicKey);\n```\n\n## Details\n\nThe prove() function generates a zero-value transaction, and\nsigns it with the wallet private key. For the transaction to be verified\nby the verify() function, it must:\n\n- have ony one instruction: SystemProgram.transfer\n- be zero-value\n- be self-to-self (i.e the sender and recipient are the same)\n- have a recent blockhash on mainnet\n- but not be broadcast to mainnet\n\nThese measures increase the security by reducing the likelihood\nthat an attacker can either coerce the wallet owner to sign\na transaction or intercept a broadcast one.\n\n## Configuration\n\nThe prove and verify functions can be configured as follows:\n\n### `cluster`\n\nDefault: `mainnet-beta`\n\nThe cluster that should be used when generating and verifying proofs\n\n### `commitment`\n\nDefault: `confirmed`\n\nWhen checking that a proof transaction has not been transmitted, the commitment to be used, i.e. the degree to which the transaction is finalised by the network\n\n### `supportedClusterUrls`\n\nOptional\nDefault: empty\n\nIf the cluster is not a standard solana public cluster, this map provides\nthe cluster URL to connect to. Use this when the proof may contain a cluster that is\nnot recognised by solana's clusterApiUrl function.\n","licenseText":"MIT License\n\nCopyright (c) 2021 dankelleher\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.","_id":"@identity.com/prove-solana-wallet@0.2.6-beta3","dist":{"shasum":"635d06bb9f29db404c7d28c5b0aa8d6eebb2d57d","integrity":"sha512-+S5YVg3g6W9kc3rRBlAw8bH9dmpFRmUFpZTqpOz4Hb41FMMCOD2jRH4+fdgqaQtOFyAl0VBtnCaHS+kcD/8bXA==","tarball":"https://registry.npmjs.org/@identity.com/prove-solana-wallet/-/prove-solana-wallet-0.2.6-beta3.tgz","fileCount":17,"unpackedSize":265967,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD7MN09b7tSqS1GKzC3KLYR1jaV4UVu8WgK2hSoTjFzlAIgdcgdh/A8iJKPhW4xJGdrURXhqUwDr5yYAxGZiYhJugI="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixWFWACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr1bA//V8ilmfxCDr7umz1WxWBfQ1h2AN4zxVZZrAuXlEChOE/FmJXG\r\nQEYEGai7IAT514zX4i5ipFBduUBgvMDOdmGPRipRKpzatS+gfEzeqSoSttMA\r\nYU3Y+fm09xzQpGfUf9iXlqV+REcn6RkIrpyPmBJfVT79NWmpHBDKEUhQcl9X\r\nXNIk+lCdJ0E+T5xVExv0mbmrBesMw4Dg1Lq3aUNL/x+ui7mDEtD92v/yvWzm\r\nIEUUQXWyh9EYMuzl7dOHfV/vZZ6quWl7/EFGvVRQke33oyBOWebjIyfHEdjH\r\nl31I0C6yCWhCudGW8IPl7WhsWJ4F4wrLTHkunf4NliNO+jYvsxgsSMGyK2TZ\r\nAF6ypJUoOXNai1zZby4cZbVbUB5bSN5AM3ObRIdEvmE1b0ZYcG2QclZ/Dv2X\r\n8h1o4Pgdi3jn0HnZ8wFED7FIlturgL6I+t9bX1zx864w/yBsBaXYnT5tfDIy\r\na9y5wXtTVui2Uf20M/WR9HfbbnVKf4WjWZS+u9janNWFqB4Ew2zqMYfc8cfE\r\nuG6FA8N2vu+KYwmIxZaJtES/pnBig+Nt1VMCMwKTgds9izEX2joWmn8XNfkv\r\nOiXYJALR3FGFuehghHNtlMp4xZNhTlNLU7m2UsW/Zr5v0QbDXwxnLqLTqU6G\r\nz92JaJICPhw7TW6+f0SEJkpcgx7Zc8xv4O4=\r\n=/sQX\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"flippiescholtz","email":"flippie@civic.com"},"directories":{},"maintainers":[{"name":"diosakhilleus","email":"DiosAkhilleus@gmail.com"},{"name":"chriteixeira","email":"chriteixeira@gmail.com"},{"name":"rado0x54","email":"web@riedel-it.de"},{"name":"araptarchis","email":"alexis.raptarchis@googlemail.com"},{"name":"mitchcivic","email":"mitch@civic.com"},{"name":"identity.com-ci","email":"bruno@civic.com"},{"name":"dankelleher","email":"dankelleher@yahoo.com"},{"name":"flippiescholtz","email":"flippie@civic.com"},{"name":"kevinhcolgan","email":"kevin@civic.com"},{"name":"pbshoemaker","email":"phillip@identity.org"},{"name":"tyronemichael","email":"tyronemichael@gmail.com"},{"name":"lucmir","email":"luccmir@gmail.com"},{"name":"william-identity","email":"william@identity.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/prove-solana-wallet_0.2.6-beta3_1657102678099_0.0330832122432243"},"_hasShrinkwrap":false},"0.2.6-beta4":{"version":"0.2.6-beta4","license":"MIT","main":"dist/index.js","typings":"dist/index.d.ts","engines":{"node":">=12"},"scripts":{"start":"tsdx watch","build":"tsdx build","test":"tsdx test","lint":"tsdx lint","lint:fix":"yarn lint --fix","prepare":"tsdx build","size":"size-limit","analyze":"size-limit --why"},"peerDependencies":{},"husky":{"hooks":{"pre-commit":"tsdx lint"}},"jest":{"testTimeout":30000},"prettier":{"printWidth":80,"semi":true,"singleQuote":true,"trailingComma":"es5"},"name":"@identity.com/prove-solana-wallet","author":{"name":"Daniel Kelleher","email":"daniel@identity.com"},"description":"Prove ownership of a Solana wallet.","module":"dist/prove-solana-wallet.esm.js","size-limit":[{"path":"dist/prove-solana-wallet.cjs.production.min.js","limit":"200 KB"},{"path":"dist/prove-solana-wallet.esm.js","limit":"200 KB"}],"devDependencies":{"@size-limit/preset-small-lib":"^5.0.2","@types/bs58":"^4.0.1","husky":"^7.0.1","size-limit":"^5.0.2","ts-node":"^10.1.0","tsdx":"^0.14.1","tslib":"^2.3.0","typescript":"^4.3.5"},"dependencies":{"@solana/web3.js":"^1.44.0","bs58":"^4.0.1"},"readmeFilename":"README.md","readme":"# Prove-Solana-Wallet\n\nThis library proves ownership of a [Solana](https://solana.com) wallet to off-chain verifiers.\n\nIt is compatible with standard browser wallet adapters, such as \n[sol-wallet-adapter](https://github.com/project-serum/sol-wallet-adapter), \nand can be extended to others.\n\n## Install\n\n```sh\nnpm install @identity.com/prove-solana-wallet\n```\n\nor \n\n```sh\nyarn add @identity.com/prove-solana-wallet\n```\n\n## Usage\n\nProve ownership of a keypair\n\nProver side: \n```js\nconst {prove} = require('@identity.com/prove-solana-wallet');\nconst proof = await prove(myKeypair);\n```\n\nVerifier side:\n```js\nconst {verify} = require('@identity.com/prove-solana-wallet');\nawait verify(proof, expectedPublicKey);\n```\n\nProve ownership of an external wallet (e.g. sol-wallet-adapter).\nSee [here](https://github.com/project-serum/sol-wallet-adapter) for more details.\n\nProver side:\n```js\nconst {prove} = require('@identity.com/prove-solana-wallet');\nimport Wallet from \"@project-serum/sol-wallet-adapter\";\n\nconst providerUrl = 'https://www.sollet.io';\nconst wallet = new Wallet(providerUrl);\nwallet.on('connect', async (publicKey) => {\n  // once the wallet is connected, we can prove ownership\n  const signer = (transaction:Transaction) => wallet.signTransaction(transaction);\n\n  const proof = await prove(myKeypair);\n});\n```\n\nVerifier side:\n```js\nconst {verify} = require('@identity.com/prove-solana-wallet');\nawait verify(proof, expectedPublicKey);\n```\n\n## Details\n\nThe prove() function generates a zero-value transaction, and\nsigns it with the wallet private key. For the transaction to be verified\nby the verify() function, it must:\n\n- have ony one instruction: SystemProgram.transfer\n- be zero-value\n- be self-to-self (i.e the sender and recipient are the same)\n- have a recent blockhash on mainnet\n- but not be broadcast to mainnet\n\nThese measures increase the security by reducing the likelihood\nthat an attacker can either coerce the wallet owner to sign\na transaction or intercept a broadcast one.\n\n## Configuration\n\nThe prove and verify functions can be configured as follows:\n\n### `cluster`\n\nDefault: `mainnet-beta`\n\nThe cluster that should be used when generating and verifying proofs\n\n### `commitment`\n\nDefault: `confirmed`\n\nWhen checking that a proof transaction has not been transmitted, the commitment to be used, i.e. the degree to which the transaction is finalised by the network\n\n### `supportedClusterUrls`\n\nOptional\nDefault: empty\n\nIf the cluster is not a standard solana public cluster, this map provides\nthe cluster URL to connect to. Use this when the proof may contain a cluster that is\nnot recognised by solana's clusterApiUrl function.\n","licenseText":"MIT License\n\nCopyright (c) 2021 dankelleher\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.","_id":"@identity.com/prove-solana-wallet@0.2.6-beta4","dist":{"shasum":"e09a8ed842b57c70cd81f8070f1aff801a0bd74d","integrity":"sha512-r7wHTNaAiTcQqcp43XhXoEnBKA3wEF6R4YtW0bf4U2iyRUn5HqrwVherI7jY8upZpnetQtJunRogkPEV1njugQ==","tarball":"https://registry.npmjs.org/@identity.com/prove-solana-wallet/-/prove-solana-wallet-0.2.6-beta4.tgz","fileCount":17,"unpackedSize":266564,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDy1YjvGNv63W21gbzNTSnF8+YvmJcIlAFsXqpxgL3sFAIgQ1LO76ph+UgWx5DwFIQM22QBlV//SeQaPeqXB4R6FPE="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixXIpACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmraDw/+JWfCLNBAcLuaqHij+mN2cCMyX++12lGt0K9Saus6UxJoEMs2\r\nV69ySUatvI1yz85MV4juuvHsUWyKFve0+RSNTdG/k3MRHrKa2V2wiaQlFNeO\r\n2vAYs1sZ0Vc3LsRGGNUXuXcPDEI/idlH9RXEllVAVf11CH2XTIrtHN3xN2bc\r\nGfYDLQg1SUQWx0D0BEY/OZYgDGggNl5PcxQW1XIQ2Gm3c8AlGUWsiqH5cmTg\r\nhq/3DdAEa3wb937zYu0LK2BjzCGNsMi8ORYvomm5htF3MIW1Lwe2Ick14rpe\r\nEbwXjVxuhe/q3/9JVSyC7dC/emxDuZDXN4IfZxWuZXGcpnRAY15mwqToUwAy\r\n7Wyn8Q2nhY2pPfhRm5W/fyF1kKbNjgC17i98C4DmzkkP2mOwcrh2DJisNu4w\r\nsy/GSdCGYvAXkCtJwbIYPIo6lBkdl8hD4RoSg10KTfvkrYmd+OW1xQTFrxzC\r\nH/TJodeKq6IfMV8nE/oJIjv74yPTivBwbjPhvN3MiQvjNLq3yLAY0yDdrE9a\r\nf6cd9oQnv+2cNGQEThoyNwGq5C4JbMbOAEf8NXAU0X9URIZB78YMOnTJlh9i\r\n4SCs8UVAMNcIVvDWJwCJnK+WChoOQE+ZEl7voh/XVUZWPisnF7oyH/zyLmI7\r\nKFxUfv7/5SoAFywkvYh4PJSbLDazoTGLuN8=\r\n=+z23\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"flippiescholtz","email":"flippie@civic.com"},"directories":{},"maintainers":[{"name":"diosakhilleus","email":"DiosAkhilleus@gmail.com"},{"name":"chriteixeira","email":"chriteixeira@gmail.com"},{"name":"rado0x54","email":"web@riedel-it.de"},{"name":"araptarchis","email":"alexis.raptarchis@googlemail.com"},{"name":"mitchcivic","email":"mitch@civic.com"},{"name":"identity.com-ci","email":"bruno@civic.com"},{"name":"dankelleher","email":"dankelleher@yahoo.com"},{"name":"flippiescholtz","email":"flippie@civic.com"},{"name":"kevinhcolgan","email":"kevin@civic.com"},{"name":"pbshoemaker","email":"phillip@identity.org"},{"name":"tyronemichael","email":"tyronemichael@gmail.com"},{"name":"lucmir","email":"luccmir@gmail.com"},{"name":"william-identity","email":"william@identity.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/prove-solana-wallet_0.2.6-beta4_1657106985102_0.8789530769824017"},"_hasShrinkwrap":false},"0.2.6":{"version":"0.2.6","license":"MIT","main":"dist/index.js","typings":"dist/index.d.ts","engines":{"node":">=12"},"scripts":{"start":"tsdx watch","build":"tsdx build","test":"tsdx test","lint":"tsdx lint","lint:fix":"yarn lint --fix","prepare":"tsdx build","size":"size-limit","analyze":"size-limit --why"},"peerDependencies":{},"husky":{"hooks":{"pre-commit":"tsdx lint"}},"jest":{"testTimeout":30000},"prettier":{"printWidth":80,"semi":true,"singleQuote":true,"trailingComma":"es5"},"name":"@identity.com/prove-solana-wallet","author":{"name":"Daniel Kelleher","email":"daniel@identity.com"},"description":"Prove ownership of a Solana wallet.","module":"dist/prove-solana-wallet.esm.js","size-limit":[{"path":"dist/prove-solana-wallet.cjs.production.min.js","limit":"200 KB"},{"path":"dist/prove-solana-wallet.esm.js","limit":"200 KB"}],"devDependencies":{"@size-limit/preset-small-lib":"^5.0.2","@types/bs58":"^4.0.1","husky":"^7.0.1","size-limit":"^5.0.2","ts-node":"^10.1.0","tsdx":"^0.14.1","tslib":"^2.3.0","typescript":"^4.3.5"},"dependencies":{"@solana/web3.js":"^1.44.0","bs58":"^4.0.1"},"licenseText":"MIT License\n\nCopyright (c) 2021 dankelleher\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.","_id":"@identity.com/prove-solana-wallet@0.2.6","dist":{"shasum":"549dede559bc732eeed5ca6e55d7be45516ac515","integrity":"sha512-mnquAGzPyBDEs38NDdHRQM0aDB1tF+dPmKZfjPnV0PBZWxCYZpvJKCBCLFlbgKw9BB/JNCnID9oEqABBWYjfHA==","tarball":"https://registry.npmjs.org/@identity.com/prove-solana-wallet/-/prove-solana-wallet-0.2.6.tgz","fileCount":17,"unpackedSize":266558,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC7rUdL8AW3y3e4XpJJmakMpty1GvXkRM8jEw8/mn+I4QIhAIZx8ShTC5bBwOfcnwYW1y7hgo2afdHUE4Shdy1RZx4B"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixXtzACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqU5g//WLW6I82B7xCdbBqL36l+OMwSYkBeiwiP7vVoS7gl8K5uh4Kj\r\nahp6ufXQwD5U3aG0/yerXvVpZ6StXhpt9x1WBtyWgvODtmYOFD04yTzFvpfo\r\nRsXXl5LdEFfxhFifP8JyYIre2A5RCdfKg57D0oxiHVeJhxX+13Pz3/bDhy1l\r\nT88zVRavoYeKWSQm1cFQmheymSp9F4BYQwVdUuEG1+kNOtRJPvjexMPR8D0c\r\no34uFNdw6XCEWYuhKKzXj0Lb8rUKXhQ9PC0tFW6oj2BD9TlwDSKJ9TNiORKp\r\n2xUZjNAWHUQIWMLR/DHjcmAlxHhFViZeQauHHRhZRPZObEz8dq5JsXto7PY/\r\nRzWbZgkcyeWJ2wsN88vFbLRzir5ebte5is+I+CG9dH7O/A9sL4Q2YNq8ni5Z\r\nDi17h7f/lABP+Kl5tC7D5FH3eoFikJwpDy5SUlJsoNsQbk8g2U0I9GltChLH\r\nYn3/3XepeI1Q1mm4SOO2S8Nlo70iM6WMGhLaJCvcPaH7b1/TsojvGZ5ioJXw\r\niGJLe2vYgkf/B9VB4KEEFIP237BqoGS7kGSRp3KrZeGeSpCDBETNhkdI46ga\r\nsbXN9QqVrN/HSiNUeChKlfL5BOdLvD8LVcs6gzw3uUvwLVRPyJd6A98kSsEg\r\neocdYgYHuxptOMP/0OST5C37i90cX0TwbXY=\r\n=Y27t\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"flippiescholtz","email":"flippie@civic.com"},"directories":{},"maintainers":[{"name":"diosakhilleus","email":"DiosAkhilleus@gmail.com"},{"name":"chriteixeira","email":"chriteixeira@gmail.com"},{"name":"rado0x54","email":"web@riedel-it.de"},{"name":"araptarchis","email":"alexis.raptarchis@googlemail.com"},{"name":"mitchcivic","email":"mitch@civic.com"},{"name":"identity.com-ci","email":"bruno@civic.com"},{"name":"dankelleher","email":"dankelleher@yahoo.com"},{"name":"flippiescholtz","email":"flippie@civic.com"},{"name":"kevinhcolgan","email":"kevin@civic.com"},{"name":"pbshoemaker","email":"phillip@identity.org"},{"name":"tyronemichael","email":"tyronemichael@gmail.com"},{"name":"lucmir","email":"luccmir@gmail.com"},{"name":"william-identity","email":"william@identity.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/prove-solana-wallet_0.2.6_1657109363274_0.915337541118556"},"_hasShrinkwrap":false},"0.2.7":{"version":"0.2.7","license":"MIT","main":"dist/index.js","typings":"dist/index.d.ts","engines":{"node":">=12"},"scripts":{"start":"tsdx watch","build":"tsdx build","test":"tsdx test","lint":"tsdx lint","lint:fix":"yarn lint --fix","prepare":"tsdx build","size":"size-limit","analyze":"size-limit --why"},"peerDependencies":{},"husky":{"hooks":{"pre-commit":"tsdx lint"}},"jest":{"testTimeout":30000},"prettier":{"printWidth":80,"semi":true,"singleQuote":true,"trailingComma":"es5"},"name":"@identity.com/prove-solana-wallet","author":{"name":"Daniel Kelleher","email":"daniel@identity.com"},"description":"Prove ownership of a Solana wallet.","module":"dist/prove-solana-wallet.esm.js","size-limit":[{"path":"dist/prove-solana-wallet.cjs.production.min.js","limit":"200 KB"},{"path":"dist/prove-solana-wallet.esm.js","limit":"200 KB"}],"devDependencies":{"@size-limit/preset-small-lib":"^5.0.2","@types/bs58":"^4.0.1","husky":"^7.0.1","size-limit":"^5.0.2","ts-node":"^10.1.0","tsdx":"^0.14.1","tslib":"^2.3.0","typescript":"^4.3.5"},"dependencies":{"@solana/web3.js":"^1.44.0","bs58":"^4.0.1"},"licenseText":"MIT License\n\nCopyright (c) 2021 dankelleher\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.","_id":"@identity.com/prove-solana-wallet@0.2.7","dist":{"shasum":"cb910c4c63be2da3edb07fa72ec4733012e6adb0","integrity":"sha512-IoV64JcyVwo1K8LBTAzvY/CqrvDjI4tTBMN1aephTvJKP5wysTYkiUpnSZdzxAhnTaCa+ZiJ3akg2H+WV5+NDA==","tarball":"https://registry.npmjs.org/@identity.com/prove-solana-wallet/-/prove-solana-wallet-0.2.7.tgz","fileCount":17,"unpackedSize":265961,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHmNwPfHVs5pKX+jnfctsou/8tz4lQMvoSqSg+ps5ujpAiEAu13aJxBfyvBSTxY+Xgm9r2DdSwQD3n9B5PVzUuDJv9o="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixtQVACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqH7A//U14nhxtUCGiCHOP0Qs+bRGnFNROHO2bzPSOjGpCywdwlcL5o\r\n1U3Bo547x6x36EEFSM7IJ/wimEAQMRtljxzXYOPLUUZ2AXAyBsbYrn0aP+tI\r\nVm7xmhl6tJuEYWhRVVYcNyt6vyC/ms8rGPDyr5eFyxc8ZxRQ9aio7ek70whA\r\neyTX1/DLtXYCnmTQxZKJk/QhSfVy/lQEFzaOC/1G0fttU3Nnq10ifQmWrZr7\r\n4xABZPSEPolp3itWG6PZZFXGlxwPYxeNy7RMkLugOuAqAvR52tHoz7gR1TfZ\r\ns/e/EoKJSKni1oJ1LVcm0ZUGIz0leKu8jGy4WLSxXYyl8hzfktATMvTezQnv\r\nIBlqQu+2deJj3UhehD6trSVZnsMIcdik2eMbpS5tQCjPWNlx6gbOU3PsuDDr\r\nQGrYezac0WixscSQermA0kem/jndXjDCnRulrnflmGGVS6ANCe0mVbBEJAbd\r\n3FmG51Xd7dxgARFlZ1d194QGQcFnfNe1u0hgU3+ZWXfRlackEKIisGdGKo4e\r\n52ouUkwzoAaxYLWwwavUwWzI4f3a3oruQa09HwL34pmAgsjW1T2aksJxyD0k\r\n/BLuwU+K5uM8032WSWffnSxYiYQRRXC2nx6CR4vBF2U/CRnc70lqX595edUJ\r\nryRyUW3MK8FJSIhkZOJTvePSsFD9kpWp+fM=\r\n=dkAS\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"flippiescholtz","email":"flippie@civic.com"},"directories":{},"maintainers":[{"name":"diosakhilleus","email":"DiosAkhilleus@gmail.com"},{"name":"chriteixeira","email":"chriteixeira@gmail.com"},{"name":"rado0x54","email":"web@riedel-it.de"},{"name":"araptarchis","email":"alexis.raptarchis@googlemail.com"},{"name":"mitchcivic","email":"mitch@civic.com"},{"name":"identity.com-ci","email":"bruno@civic.com"},{"name":"dankelleher","email":"dankelleher@yahoo.com"},{"name":"flippiescholtz","email":"flippie@civic.com"},{"name":"kevinhcolgan","email":"kevin@civic.com"},{"name":"pbshoemaker","email":"phillip@identity.org"},{"name":"tyronemichael","email":"tyronemichael@gmail.com"},{"name":"lucmir","email":"luccmir@gmail.com"},{"name":"william-identity","email":"william@identity.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/prove-solana-wallet_0.2.7_1657197589698_0.7480499421265558"},"_hasShrinkwrap":false},"0.2.8":{"version":"0.2.8","license":"MIT","main":"dist/index.js","typings":"dist/index.d.ts","engines":{"node":">=12"},"scripts":{"start":"tsdx watch","build":"tsdx build","test":"tsdx test","lint":"tsdx lint","lint:fix":"yarn lint --fix","prepare":"tsdx build","size":"size-limit","analyze":"size-limit --why"},"peerDependencies":{},"husky":{"hooks":{"pre-commit":"tsdx lint"}},"jest":{"testTimeout":30000},"prettier":{"printWidth":80,"semi":true,"singleQuote":true,"trailingComma":"es5"},"name":"@identity.com/prove-solana-wallet","author":{"name":"Daniel Kelleher","email":"daniel@identity.com"},"description":"Prove ownership of a Solana wallet.","module":"dist/prove-solana-wallet.esm.js","size-limit":[{"path":"dist/prove-solana-wallet.cjs.production.min.js","limit":"200 KB"},{"path":"dist/prove-solana-wallet.esm.js","limit":"200 KB"}],"devDependencies":{"@size-limit/preset-small-lib":"^5.0.2","@types/bs58":"^4.0.1","husky":"^7.0.1","size-limit":"^5.0.2","ts-node":"^10.1.0","tsdx":"^0.14.1","tslib":"^2.3.0","typescript":"^4.3.5"},"dependencies":{"@solana/web3.js":"^1.44.0","bs58":"^4.0.1"},"licenseText":"MIT License\n\nCopyright (c) 2021 dankelleher\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.","_id":"@identity.com/prove-solana-wallet@0.2.8","dist":{"shasum":"28fd8ff7e49b1c25ddf2debd073fb118937cd50d","integrity":"sha512-3Jvqx6Q8XeyU8k9kkNVh5UgJAbnvmVc6zj0F6A/I8Aatx70cmJ38b4bdqVPECwdbpjOEdqZRkYAXhMw1m6n9OA==","tarball":"https://registry.npmjs.org/@identity.com/prove-solana-wallet/-/prove-solana-wallet-0.2.8.tgz","fileCount":17,"unpackedSize":266558,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICFxijiSshib8ka7QuwEtcdUhYRbnEFk7pFW8TzK7QBLAiBlGRWVDKze63g7AI7EHUH7NhZjsR7VRBAamdmH7+gNQA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixt54ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqgqA/+KiqV+5mLKUsW4YmhRLQ3QHExvuCdwJ/RqCyI1kD7MkJdNfuD\r\nt9e57Rm6pu90rJXNO94JGX2rYMS+vkYzUOYn2ztUEuKMed9yttqtNaYnMeLW\r\nkQzQ8Jks0oVKPDwZ02C66ngVijIG8RGoZ4+emvUJOO7m1ZShSc4XEkfJCIVn\r\n9IwUTcQTrwygpeJayt28CrlImnbzOL0k44b+OzDqPjiH8P2worH8zUIZl2/d\r\nUt2VCHpm0WiACGt07xO6iGMJH3oCv5U2Un+ezbQlneQAn3Ero2PBdrwf9o8S\r\nDRnDfs3C/S7JNurYL1q9SaXyiFV/LvCAVLMLEpqgFWFtIfyMV8ojbtQhciv0\r\nThmuf2e2GgNL8GAHMW95tyUQp9Ib7865NkNnTRtkOzZEiJ5LjaT8UZEZc0TH\r\n4HnPNBmQu94ob9nATmsxRkUYlieTDHFA5ytFGVgrF0z/5a/CifEEaB+Nhc1p\r\n16tnd1In256RiDecMFotH+pseAPvMkRdxOb0Qyx3igbSBMsW2jkmk+xvpSfp\r\nsGAqAwATRRU+XzlxQjY11joxFX/SpceKi1h4GbppjT+bPV6zrBHgGIwR37Fm\r\naA3r+ct65ao1RXomuKOdG4p4j1PIhzUekmd/ze9cHJwpHq1jBTtCb0YDPT06\r\nvPZhDkoRimbk2aCM9+Yadt7hSJyqT4GWsCo=\r\n=UUKP\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"flippiescholtz","email":"flippie@civic.com"},"directories":{},"maintainers":[{"name":"diosakhilleus","email":"DiosAkhilleus@gmail.com"},{"name":"chriteixeira","email":"chriteixeira@gmail.com"},{"name":"rado0x54","email":"web@riedel-it.de"},{"name":"araptarchis","email":"alexis.raptarchis@googlemail.com"},{"name":"mitchcivic","email":"mitch@civic.com"},{"name":"identity.com-ci","email":"bruno@civic.com"},{"name":"dankelleher","email":"dankelleher@yahoo.com"},{"name":"flippiescholtz","email":"flippie@civic.com"},{"name":"kevinhcolgan","email":"kevin@civic.com"},{"name":"pbshoemaker","email":"phillip@identity.org"},{"name":"tyronemichael","email":"tyronemichael@gmail.com"},{"name":"lucmir","email":"luccmir@gmail.com"},{"name":"william-identity","email":"william@identity.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/prove-solana-wallet_0.2.8_1657200248123_0.5420447385919502"},"_hasShrinkwrap":false},"0.2.9":{"version":"0.2.9","license":"MIT","main":"dist/index.js","typings":"dist/index.d.ts","engines":{"node":">=12"},"scripts":{"start":"tsdx watch","build":"tsdx build","test":"tsdx test","lint":"tsdx lint","lint:fix":"yarn lint --fix","prepare":"tsdx build","size":"size-limit","analyze":"size-limit --why"},"peerDependencies":{},"husky":{"hooks":{"pre-commit":"tsdx lint"}},"jest":{"testTimeout":30000},"prettier":{"printWidth":80,"semi":true,"singleQuote":true,"trailingComma":"es5"},"name":"@identity.com/prove-solana-wallet","author":{"name":"Daniel Kelleher","email":"daniel@identity.com"},"description":"Prove ownership of a Solana wallet.","module":"dist/prove-solana-wallet.esm.js","size-limit":[{"path":"dist/prove-solana-wallet.cjs.production.min.js","limit":"200 KB"},{"path":"dist/prove-solana-wallet.esm.js","limit":"200 KB"}],"devDependencies":{"@size-limit/preset-small-lib":"^5.0.2","@types/bs58":"^4.0.1","husky":"^7.0.1","size-limit":"^5.0.2","ts-node":"^10.1.0","tsdx":"^0.14.1","tslib":"^2.3.0","typescript":"^4.3.5"},"dependencies":{"@solana/web3.js":"1.39.0","bs58":"^4.0.1"},"licenseText":"MIT License\n\nCopyright (c) 2021 dankelleher\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.","_id":"@identity.com/prove-solana-wallet@0.2.9","dist":{"shasum":"b75419a1a7baaed25ac489055c13188c295fcfd4","integrity":"sha512-BpDyNbMp1j+yGlGooTd/D8Qs+DtkblvPqBMRjK9pMI2dG6HcAYUaG5NFt+yB9mfl1sGu10LuTBGqL5KS4Ggu8Q==","tarball":"https://registry.npmjs.org/@identity.com/prove-solana-wallet/-/prove-solana-wallet-0.2.9.tgz","fileCount":17,"unpackedSize":265527,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCaQBOkr0is3VMOsvQxySJWFK2tOvmGZBk4QP6hhLD04gIgBO4t7pPmcjl/kVexCBVyMhPF2My/j/vTie3pIGnSPww="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJizV9jACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoN1Q/+NdT0U5udrRK+B4oXyx84wVFD4TvrHQ4r9VJ/OEbKv4CUSMO1\r\nY23mXY8zVoVlx4/sIPHgP65BJeGEKKmgoeOifC7Vb8RAChsF/OKgblWxqBRn\r\nx+foU7n0ge1LqVM7bkPXlrHNtoXZiPGp0WSvgbMr9GeQY4s+UyK6PL2VGOAk\r\nSoKATvzmAcFeLYfdq1mkfrW+9EY4XO3cK1htpbOyJ+zw6O9wo9Vl6CnhtrbG\r\noE2PJJtrMFSrv2m96ida6Cy4gVIfmHfMkDGcHUdVaN8FilcNyQsCemwIFFpR\r\n7S3yBKvoYuZu4GNRuYXHj3QY0Or7Yp9p/Ou/OqKaO0i/hkNYUuOOcamdgIJz\r\nWPxRQ6VWkyN9h1eYhWxZGNJUFDiJVSEoxm7IsVGxhl1O7iXPCZh64uOlQrvD\r\nM7vDYX10nJbfAvy9nIMxLHfvKmCTEoQ3XMxUl1fg6HtX7WA2wPu3N75skvSJ\r\nfRSls9seWm3GKORN7Ylw0eaBa3BorEO7U4h1tIFK2+7F1BP7+qvaZUFsi1at\r\npLP9Z8aduMuhtomGA+yD1bF5KDL+EPKCTXtaGiF/htuMrO2THvZ/1E9o2Ceq\r\ndHIaAOlBcZfxsBpl1EBuPcvvP+KNKum4VkrAICvsEDfzA1ZNcpeCaKtBNh4Y\r\nn5Jwu1B5wiG4PndQ9X4mvc7xQ57+wIwc3ec=\r\n=ft0W\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kevinhcolgan","email":"kevin@civic.com"},"directories":{},"maintainers":[{"name":"diosakhilleus","email":"DiosAkhilleus@gmail.com"},{"name":"chriteixeira","email":"chriteixeira@gmail.com"},{"name":"rado0x54","email":"web@riedel-it.de"},{"name":"araptarchis","email":"alexis.raptarchis@googlemail.com"},{"name":"mitchcivic","email":"mitch@civic.com"},{"name":"identity.com-ci","email":"bruno@civic.com"},{"name":"dankelleher","email":"dankelleher@yahoo.com"},{"name":"flippiescholtz","email":"flippie@civic.com"},{"name":"kevinhcolgan","email":"kevin@civic.com"},{"name":"pbshoemaker","email":"phillip@identity.org"},{"name":"tyronemichael","email":"tyronemichael@gmail.com"},{"name":"lucmir","email":"luccmir@gmail.com"},{"name":"william-identity","email":"william@identity.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/prove-solana-wallet_0.2.9_1657626467304_0.841595150761137"},"_hasShrinkwrap":false},"0.3.0-beta.1":{"version":"0.3.0-beta.1","license":"MIT","main":"dist/index.js","typings":"dist/index.d.ts","engines":{"node":">=12"},"scripts":{"start":"tsdx watch","build":"tsdx build","test":"tsdx test","lint":"tsdx lint","lint:fix":"yarn lint --fix","prepare":"tsdx build","size":"size-limit","analyze":"size-limit --why"},"peerDependencies":{},"husky":{"hooks":{"pre-commit":"tsdx lint"}},"jest":{"testTimeout":30000},"prettier":{"printWidth":80,"semi":true,"singleQuote":true,"trailingComma":"es5"},"name":"@identity.com/prove-solana-wallet","author":{"name":"Daniel Kelleher","email":"daniel@identity.com"},"description":"Prove ownership of a Solana wallet.","module":"dist/prove-solana-wallet.esm.js","size-limit":[{"path":"dist/prove-solana-wallet.cjs.production.min.js","limit":"200 KB"},{"path":"dist/prove-solana-wallet.esm.js","limit":"200 KB"}],"devDependencies":{"@size-limit/preset-small-lib":"^5.0.2","@types/bs58":"^4.0.1","husky":"^7.0.1","size-limit":"^5.0.2","ts-node":"^10.1.0","tsdx":"^0.14.1","tslib":"^2.3.0","typescript":"^4.3.5"},"dependencies":{"@solana/web3.js":"^1.50.1","bs58":"^4.0.1"},"readmeFilename":"README.md","readme":"# Prove-Solana-Wallet\n\nThis library proves ownership of a [Solana](https://solana.com) wallet to off-chain verifiers.\n\nIt is compatible with standard browser wallet adapters, such as \n[sol-wallet-adapter](https://github.com/project-serum/sol-wallet-adapter), \nand can be extended to others.\n\n## Install\n\n```sh\nnpm install @identity.com/prove-solana-wallet\n```\n\nor \n\n```sh\nyarn add @identity.com/prove-solana-wallet\n```\n\n## Usage\n\nProve ownership of a keypair\n\nProver side: \n```js\nconst {prove} = require('@identity.com/prove-solana-wallet');\nconst proof = await prove(myKeypair);\n```\n\nVerifier side:\n```js\nconst {verify} = require('@identity.com/prove-solana-wallet');\nawait verify(proof, expectedPublicKey);\n```\n\nProve ownership of an external wallet (e.g. sol-wallet-adapter).\nSee [here](https://github.com/project-serum/sol-wallet-adapter) for more details.\n\nProver side:\n```js\nconst {prove} = require('@identity.com/prove-solana-wallet');\nimport Wallet from \"@project-serum/sol-wallet-adapter\";\n\nconst providerUrl = 'https://www.sollet.io';\nconst wallet = new Wallet(providerUrl);\nwallet.on('connect', async (publicKey) => {\n  // once the wallet is connected, we can prove ownership\n  const signer = (transaction:Transaction) => wallet.signTransaction(transaction);\n\n  const proof = await prove(myKeypair);\n});\n```\n\nVerifier side:\n```js\nconst {verify} = require('@identity.com/prove-solana-wallet');\nawait verify(proof, expectedPublicKey);\n```\n\n## Details\n\nThe prove() function generates a zero-value transaction, and\nsigns it with the wallet private key. For the transaction to be verified\nby the verify() function, it must:\n\n- have ony one instruction: SystemProgram.transfer\n- be zero-value\n- be self-to-self (i.e the sender and recipient are the same)\n- have a recent blockhash on mainnet\n- but not be broadcast to mainnet\n\nThese measures increase the security by reducing the likelihood\nthat an attacker can either coerce the wallet owner to sign\na transaction or intercept a broadcast one.\n\n## Configuration\n\nThe prove and verify functions can be configured as follows:\n\n### `cluster`\n\nDefault: `mainnet-beta`\n\nThe cluster that should be used when generating and verifying proofs\n\n### `commitment`\n\nDefault: `confirmed`\n\nWhen checking that a proof transaction has not been transmitted, the commitment to be used, i.e. the degree to which the transaction is finalised by the network\n\n### `supportedClusterUrls`\n\nOptional\nDefault: empty\n\nIf the cluster is not a standard solana public cluster, this map provides\nthe cluster URL to connect to. Use this when the proof may contain a cluster that is\nnot recognised by solana's clusterApiUrl function.\n","licenseText":"MIT License\n\nCopyright (c) 2021 dankelleher\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.","_id":"@identity.com/prove-solana-wallet@0.3.0-beta.1","dist":{"shasum":"942e543378cb294031fcd4266e047aa9f835a135","integrity":"sha512-+UVoGAknszEcMFUty3aQa1ea2gvWmjnJLgiRvX80WVPXlQ3dFxACYdGzyPknn9l9UxF5zUL3dmhdPEkZY1Dqhw==","tarball":"https://registry.npmjs.org/@identity.com/prove-solana-wallet/-/prove-solana-wallet-0.3.0-beta.1.tgz","fileCount":17,"unpackedSize":266663,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG5xIzaoA0miHjDvy2oIUfqwIt2xyCawvn5oVvr5Lre1AiEA5LeC01ssa5QmAuLL+nqz5nxxeb+Pl3KvOHBOaiUngiQ="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi88VFACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp0JA/+Lqmmdfws6g+cfO6Dqi6hCM7DrjW2vVSUy7f+hGDqmuSrfoG2\r\nwhUzdMQGf9QurBu1jEPuQjSnQVAesmP46IxE4oBbjZ04Tp02q1P4GhuXneaP\r\nSI8DbqJht1o5XSO0mfzxJcMLemK0pI27GY8KEnQPIpSC0TeP7OqHoeMoIn7K\r\nhme49Aj/Np49wM9U8qpQgxmr5jGDYF1wBvKIHXcM1QZRNoDSAUkJfNTQcidA\r\nu/yMYeHV8gfgM0x4N8FZNDADzZhRZWLmR81SeCWDQS5wP84WiW5O+Xhc0EKf\r\n/RIJhQZ7DIrxqRg88V3CytZLEuz+xN5qSO6prYMlkcFbSb9BJhOO0tQkWu1R\r\nVPahoCUq93Vv2WM0nlwKSOphpqauwuj/Y3rC1wycsgKt+xHL3no1XABxujcy\r\n1YHfJmnhJngrknufeCqdGIErgPi3s33Tv8KCAF7pWV5tE1enOyHPaA7OaNpx\r\n7dzYDOZq5MbvgIR63pzQ9g1WuVGsOP+j0o4ov4yTC8NjL6VUV4fLNw6fNtGC\r\nZi7UA+ycDC9t2lDHcxKW/7ehGJ8Ncs692B4qn3FwIKNZcXZNHQN8Wv9Fjb2v\r\nGBE1uj+rDgc8rShldnLlMl6AGRdb2GHT4xoBjcXvg3XT5p32kvw/O0Vjayfm\r\nXdgXDyAz+fy1YO3V17UrN7VAGFnWy+FbFGc=\r\n=ULdH\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"flippiescholtz","email":"flippie@civic.com"},"directories":{},"maintainers":[{"name":"diosakhilleus","email":"DiosAkhilleus@gmail.com"},{"name":"chriteixeira","email":"chriteixeira@gmail.com"},{"name":"rado0x54","email":"web@riedel-it.de"},{"name":"araptarchis","email":"alexis.raptarchis@googlemail.com"},{"name":"mitchcivic","email":"mitch@civic.com"},{"name":"identity.com-ci","email":"bruno@civic.com"},{"name":"dankelleher","email":"dankelleher@yahoo.com"},{"name":"flippiescholtz","email":"flippie@civic.com"},{"name":"kevinhcolgan","email":"kevin@civic.com"},{"name":"pbshoemaker","email":"phillip@identity.org"},{"name":"tyronemichael","email":"tyronemichael@gmail.com"},{"name":"lucmir","email":"luccmir@gmail.com"},{"name":"william-identity","email":"william@identity.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/prove-solana-wallet_0.3.0-beta.1_1660142917567_0.7421913412946171"},"_hasShrinkwrap":false},"0.3.1":{"version":"0.3.1","license":"MIT","main":"dist/index.js","typings":"dist/index.d.ts","engines":{"node":">=12"},"scripts":{"start":"tsdx watch","build":"tsdx build","test":"tsdx test","lint":"tsdx lint","lint:fix":"yarn lint --fix","prepare":"tsdx build","size":"size-limit","analyze":"size-limit --why"},"peerDependencies":{},"husky":{"hooks":{"pre-commit":"tsdx lint"}},"jest":{"testTimeout":30000},"prettier":{"printWidth":80,"semi":true,"singleQuote":true,"trailingComma":"es5"},"name":"@identity.com/prove-solana-wallet","author":{"name":"Daniel Kelleher","email":"daniel@identity.com"},"description":"Prove ownership of a Solana wallet.","module":"dist/prove-solana-wallet.esm.js","size-limit":[{"path":"dist/prove-solana-wallet.cjs.production.min.js","limit":"200 KB"},{"path":"dist/prove-solana-wallet.esm.js","limit":"200 KB"}],"devDependencies":{"@size-limit/preset-small-lib":"^5.0.2","@types/bs58":"^4.0.1","husky":"^7.0.1","size-limit":"^5.0.2","ts-node":"^10.1.0","tsdx":"^0.14.1","tslib":"^2.3.0","typescript":"^4.3.5"},"dependencies":{"@solana/web3.js":"^1.63.1","bs58":"^4.0.1"},"licenseText":"MIT License\n\nCopyright (c) 2021 dankelleher\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.","_id":"@identity.com/prove-solana-wallet@0.3.1","dist":{"shasum":"759e65c8f966c3492c3edd96e5112b73d9557a3d","integrity":"sha512-OHep3nmXUYeDdDEejxyp5/GHk1yW2d9EG3tN/7j3BN+7V4YBgUQPNMhy3sfDrj/QCUmpxHs9B05RN5SD9bm23Q==","tarball":"https://registry.npmjs.org/@identity.com/prove-solana-wallet/-/prove-solana-wallet-0.3.1.tgz","fileCount":17,"unpackedSize":265528,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAdt9f8iE455irU4mcwlqtor2AuYven+9MTKLKCu7aEEAiEAkSo838R+aJM021RVu7+smFELZ8ccSPAekGNeslqsH7Y="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjNClLACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo+LA/+Iswv1rEp4tGAnHgHP/X2SYCmWvik9/bDRi98Yu2Fj61wGLEo\r\noRbRanUjDTsk3+3Za4CKoYvZrprgjoaKKX1GfVPuBbONr3ScM8dKPDzuwAOE\r\nV7xc3Ys9cUITEdFJ8PsWLMVK5qGOzXklXGvv/LBmB6QikU6NzX7TS8SI8ZDo\r\nQDHJ7jt4EiLlQHvAECP7N0yZcnyGdIKBZqJDIiurzu/9AYZqeeazV+BsV/zr\r\nIFNlX18py8W26FAbjm7F48/c3l/1LjcHDuIC8977TVxbxUVkFvIBFBTZAgqa\r\nV2M+JKIzWh2gpFU01Tg6cKSa/bzNIodXyuuboDYhBarzyo87oggA/DDuxLfQ\r\nvIbONWbjDEJJ4cKP3Fkg5a1joAc3Ji9oQZ9kl1XxPX+LhT5PHMs+wjIwkLY5\r\nrmKvsrIVH7FMgxXctUmpJ6O3svQaHcfxGmg0u2Pw/A43Hdw1PfAtONMBvwil\r\n7CgEdg1M3LU3/rpFEgjGPwIJAYdr0CR7Il8RGU3oiF9Z4ysQNwpdAQI0aqFl\r\ntgNXiFAlZAb8uKZPupsNTVIVZSyPDuvCSOAzypl7LpYPYUlniDC3MIfuMkKx\r\nDpzav5N/IL22vJRYrnJdCv/eyxv19GtWyF1qY/eYgIqHN2yb7/7CoqH06gpa\r\nGM0kPLu0OkXpM/k1TWLx4TtSf9uYFPX10uE=\r\n=O51s\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dankelleher","email":"dankelleher@yahoo.com"},"directories":{},"maintainers":[{"name":"leolangen","email":"leo@civic.com"},{"name":"diosakhilleus","email":"DiosAkhilleus@gmail.com"},{"name":"chriteixeira","email":"chriteixeira@gmail.com"},{"name":"rado0x54","email":"web@riedel-it.de"},{"name":"araptarchis","email":"alexis.raptarchis@googlemail.com"},{"name":"mitchcivic","email":"mitch@civic.com"},{"name":"identity.com-ci","email":"bruno@civic.com"},{"name":"dankelleher","email":"dankelleher@yahoo.com"},{"name":"flippiescholtz","email":"flippie@civic.com"},{"name":"kevinhcolgan","email":"kevin@civic.com"},{"name":"pbshoemaker","email":"phillip@identity.org"},{"name":"tyronemichael","email":"tyronemichael@gmail.com"},{"name":"lucmir","email":"luccmir@gmail.com"},{"name":"william-identity","email":"william@identity.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/prove-solana-wallet_0.3.1_1664362826993_0.7537720008333577"},"_hasShrinkwrap":false},"0.4.0-beta.1":{"version":"0.4.0-beta.1","license":"MIT","main":"dist/index.js","typings":"dist/index.d.ts","engines":{"node":">=12"},"scripts":{"start":"tsdx watch","build":"tsdx build","test":"tsdx test","lint":"tsdx lint","lint:fix":"yarn lint --fix","prepare":"tsdx build","size":"size-limit","analyze":"size-limit --why"},"peerDependencies":{},"husky":{"hooks":{"pre-commit":"tsdx lint"}},"jest":{"testTimeout":30000},"prettier":{"printWidth":80,"semi":true,"singleQuote":true,"trailingComma":"es5"},"name":"@identity.com/prove-solana-wallet","author":{"name":"Daniel Kelleher","email":"daniel@identity.com"},"description":"Prove ownership of a Solana wallet.","module":"dist/prove-solana-wallet.esm.js","size-limit":[{"path":"dist/prove-solana-wallet.cjs.production.min.js","limit":"200 KB"},{"path":"dist/prove-solana-wallet.esm.js","limit":"200 KB"}],"devDependencies":{"@size-limit/preset-small-lib":"^5.0.2","@types/bs58":"^4.0.1","husky":"^7.0.1","size-limit":"^5.0.2","ts-node":"^10.1.0","tsdx":"^0.14.1","tslib":"^2.3.0","typescript":"^4.3.5"},"dependencies":{"@solana/web3.js":"^1.63.1","bs58":"^4.0.1","tweetnacl":"^1.0.3"},"readmeFilename":"README.md","readme":"# prove-solana-wallet\n\nThis library proveTransactions ownership of a [Solana](https://solana.com) wallet to off-chain verifiers.\n\nIt is compatible with standard browser wallet adapters, such as \n[sol-wallet-adapter](https://github.com/project-serum/sol-wallet-adapter), \nand can be extended to others.\n\n## Install\n\n```sh\nnpm install @identity.com/prove-solana-wallet\n```\n\nor \n\n```sh\nyarn add @identity.com/prove-solana-wallet\n```\n\n## Usage\n\n### prove ownership of a keypair using a signed message\n\nprover side: \n```js\nconst {create} = require('@identity.com/prove-solana-wallet');\nconst nonce = new Date();\nconst proof = await create(myKeypair, nonce);\n```\n\nVerifier side:\n```js\nconst {verify} = require('@identity.com/prove-solana-wallet');\nawait verify(expectedPublicKey, proof);\n```\n\n### prove ownership of a keypair using a transaction\n\nprover side: \n```js\nconst {proveTransaction} = require('@identity.com/prove-solana-wallet');\nconst proof = await proveTransaction(myKeypair);\n```\n\nVerifier side:\n```js\nconst {verifyTransaction} = require('@identity.com/prove-solana-wallet');\nawait verifyTransaction(proof, expectedPublicKey);\n```\n\nprove ownership of an external wallet (e.g. sol-wallet-adapter).\nSee [here](https://github.com/project-serum/sol-wallet-adapter) for more details.\n\nprover side:\n```js\nconst {proveTransaction} = require('@identity.com/prove-solana-wallet');\nimport Wallet from \"@project-serum/sol-wallet-adapter\";\n\nconst providerUrl = 'https://www.sollet.io';\nconst wallet = new Wallet(providerUrl);\nwallet.on('connect', async (publicKey) => {\n  // once the wallet is connected, we can prove ownership\n  const signer = (transaction:Transaction) => wallet.signTransaction(transaction);\n\n  const proof = await proveTransaction(myKeypair);\n});\n```\n\nVerifier side:\n```js\nconst {verifyTransaction} = require('@identity.com/prove-solana-wallet');\nawait verifyTransaction(proof, expectedPublicKey);\n```\n\n## Details\n\n### Using a signed message\nThe create(signMessageFn, message) function signs a message with the provided signing function, then concatenates the message with the string, both in base64 encoded form, i.e. `${messageB64}.${signatureB64}`.\n\nThe verify(publicKey, proof) function decodes the message and signature from the proof, and uses nacl to verify that the given public key signed the proof.\n\n### Using a zero-value transaction\nThe proveTransaction() function generates a zero-value transaction, and\nsigns it with the wallet private key. For the transaction to be verified\nby the verifyTransaction() function, it must:\n\n- have ony one instruction: SystemProgram.transfer\n- be zero-value\n- be self-to-self (i.e the sender and recipient are the same)\n- have a recent blockhash on mainnet\n- but not be broadcast to mainnet\n\nThese measures increase the security by reducing the likelihood\nthat an attacker can either coerce the wallet owner to sign\na transaction or intercept a broadcast one.\n\n## Configuration\n\nThe proveTransaction and verifyTransaction functions can be configured as follows:\n\n### `cluster`\n\nDefault: `mainnet-beta`\n\nThe cluster that should be used when generating and verifyTransactioning proofs\n\n### `commitment`\n\nDefault: `confirmed`\n\nWhen checking that a proof transaction has not been transmitted, the commitment to be used, i.e. the degree to which the transaction is finalised by the network\n\n### `supportedClusterUrls`\n\nOptional\nDefault: empty\n\nIf the cluster is not a standard solana public cluster, this map provides\nthe cluster URL to connect to. Use this when the proof may contain a cluster that is\nnot recognised by solana's clusterApiUrl function.\n","licenseText":"MIT License\n\nCopyright (c) 2021 dankelleher\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.","_id":"@identity.com/prove-solana-wallet@0.4.0-beta.1","dist":{"shasum":"c1752a420e58ff5e1f10f70fdafb6ac6a2eeaefb","integrity":"sha512-761h+hG4TlHUG6Hc33Bpw2MI9DpXceEboWE1JjpdmpeXw0UozpjoY6LaPgwJJqDEIaXFvl9h2oZC/UdWABmQ/w==","tarball":"https://registry.npmjs.org/@identity.com/prove-solana-wallet/-/prove-solana-wallet-0.4.0-beta.1.tgz","fileCount":17,"unpackedSize":279762,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDVOBHVZDqfD1z7W+AmI12O+77RYWDI1cASOAq1vMY7mAiAXfkAIwEwCusDZfylOArb+Y9KjMfXA0v0W5P29yaYTdg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkSkr0ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoTUw/+J++hzu6Z3DCr89c2Zkhia559mP3thkTaoa8R8r3WCLDaIktP\r\n36HQlEPB+UivTx4W2kkRTPjnvY14j9vBder20u9syr8lgMjI/ZpXAnUvQ7iv\r\nQGeKPs9iN+xwQqEj0ymbNEPGc/6zIYWMLm4RLlekwEJnkZdwUm4ZqFqqSYUc\r\nWcJBwOAZdnO7XyUSCi/bYiTToCsIongBJSkx9WOBdfYTjjoXM8IsnZR7LuFJ\r\n2/V+IekZ8iZzJygP+rX9bBDh7nWZA7WZzfd6Z/efNjVTH/cAk7AOGcc8lCpx\r\ntdxTa/fFwDUmeMSXbD4drVJlMh4QnzPVN5woxtuxczN1LY15QOwmZ7XKZgET\r\nxdclwLdmZM+Srsaz/fPGRQP/CX4SIyMcoSgdLNogZXlHLPoi+nRElDqLcfOc\r\nrtbBUGfWBURw6JTG+Trg7Q5Z3XCFMBINtjPTsvK8cuGYf1+0Jp4PgOdBwVUp\r\nXkNA8MZTQVTknEnYJsc7uDpecxUOkmpRpXc6Ub1GLRGfqDWfdWoTDtx2sNGs\r\nloqAGua7EWAsL+l/efmZ2Q3sZRcBs8+H3KqakzRCHRywNJLuyHcItIIdfH+c\r\nio9d8a6PBAMg4Tr6gXm5lQ6CrDzBLBaAOuB2yr76V+yWUnSBX/B6TrXENqZ3\r\n9LLxc3kyQ6eiO9v8l+0887OAHytejp6iCMM=\r\n=mt9K\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kevinhcolgan","email":"kevin@civic.com"},"directories":{},"maintainers":[{"name":"tbarri","email":"tighe.barris@gmail.com"},{"name":"chriteixeira","email":"chriteixeira@gmail.com"},{"name":"rado0x54","email":"web@riedel-it.de"},{"name":"araptarchis","email":"alexis.raptarchis@googlemail.com"},{"name":"mitchcivic","email":"mitch@civic.com"},{"name":"dankelleher","email":"dankelleher@yahoo.com"},{"name":"flippiescholtz","email":"flippie@civic.com"},{"name":"kevinhcolgan","email":"kevin@civic.com"},{"name":"pbshoemaker","email":"phillip@identity.org"},{"name":"tyronemichael","email":"tyronemichael@gmail.com"},{"name":"lucmir","email":"luccmir@gmail.com"},{"name":"william-identity","email":"william@identity.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/prove-solana-wallet_0.4.0-beta.1_1682590452589_0.8494099742960892"},"_hasShrinkwrap":false},"0.4.0-beta.2":{"version":"0.4.0-beta.2","license":"MIT","main":"dist/index.js","typings":"dist/index.d.ts","engines":{"node":">=12"},"scripts":{"start":"tsdx watch","build":"tsdx build","test":"tsdx test","lint":"tsdx lint","lint:fix":"yarn lint --fix","prepare":"tsdx build","size":"size-limit","analyze":"size-limit --why"},"peerDependencies":{},"husky":{"hooks":{"pre-commit":"tsdx lint"}},"jest":{"testTimeout":30000},"prettier":{"printWidth":80,"semi":true,"singleQuote":true,"trailingComma":"es5"},"name":"@identity.com/prove-solana-wallet","author":{"name":"Daniel Kelleher","email":"daniel@identity.com"},"description":"Prove ownership of a Solana wallet.","module":"dist/prove-solana-wallet.esm.js","size-limit":[{"path":"dist/prove-solana-wallet.cjs.production.min.js","limit":"200 KB"},{"path":"dist/prove-solana-wallet.esm.js","limit":"200 KB"}],"devDependencies":{"@size-limit/preset-small-lib":"^5.0.2","@types/bs58":"^4.0.1","husky":"^7.0.1","size-limit":"^5.0.2","ts-node":"^10.1.0","tsdx":"^0.14.1","tslib":"^2.3.0","typescript":"^4.3.5"},"dependencies":{"@solana/web3.js":"^1.63.1","bs58":"^4.0.1","tweetnacl":"^1.0.3"},"readmeFilename":"README.md","readme":"# prove-solana-wallet\n\nThis library proveTransactions ownership of a [Solana](https://solana.com) wallet to off-chain verifiers.\n\nIt is compatible with standard browser wallet adapters, such as \n[sol-wallet-adapter](https://github.com/project-serum/sol-wallet-adapter), \nand can be extended to others.\n\n## Install\n\n```sh\nnpm install @identity.com/prove-solana-wallet\n```\n\nor \n\n```sh\nyarn add @identity.com/prove-solana-wallet\n```\n\n## Usage\n\n### prove ownership of a keypair using a signed message\n\nprover side: \n```js\nconst {create} = require('@identity.com/prove-solana-wallet');\nconst nonce = `${new Date().getTime()}`;\nconst proof = await create(myKeypair, nonce);\n```\n\nVerifier side:\n```js\nconst {verify} = require('@identity.com/prove-solana-wallet');\nconst message = timestamp;\nawait verify(expectedPublicKey, proof, message);\n```\n\n### prove ownership of a keypair using a transaction\n\nprover side: \n```js\nconst {proveTransaction} = require('@identity.com/prove-solana-wallet');\nconst proof = await proveTransaction(myKeypair);\n```\n\nVerifier side:\n```js\nconst {verifyTransaction} = require('@identity.com/prove-solana-wallet');\nawait verifyTransaction(proof, expectedPublicKey);\n```\n\nprove ownership of an external wallet (e.g. sol-wallet-adapter).\nSee [here](https://github.com/project-serum/sol-wallet-adapter) for more details.\n\nprover side:\n```js\nconst {proveTransaction} = require('@identity.com/prove-solana-wallet');\nimport Wallet from \"@project-serum/sol-wallet-adapter\";\n\nconst providerUrl = 'https://www.sollet.io';\nconst wallet = new Wallet(providerUrl);\nwallet.on('connect', async (publicKey) => {\n  // once the wallet is connected, we can prove ownership\n  const signer = (transaction:Transaction) => wallet.signTransaction(transaction);\n\n  const proof = await proveTransaction(myKeypair);\n});\n```\n\nVerifier side:\n```js\nconst {verifyTransaction} = require('@identity.com/prove-solana-wallet');\nawait verifyTransaction(proof, expectedPublicKey);\n```\n\n## Details\n\n### Using a signed message\nThe create(signMessageFn, message) function signs a message with the provided signing function, then concatenates the message with the string, both in base64 encoded form, i.e. `${messageB64}.${signatureB64}`.\n\nThe verify(publicKey, proof) function decodes the message and signature from the proof, and uses nacl to verify that the given public key signed the proof.\n\n### Using a zero-value transaction\nThe proveTransaction() function generates a zero-value transaction, and\nsigns it with the wallet private key. For the transaction to be verified\nby the verifyTransaction() function, it must:\n\n- have ony one instruction: SystemProgram.transfer\n- be zero-value\n- be self-to-self (i.e the sender and recipient are the same)\n- have a recent blockhash on mainnet\n- but not be broadcast to mainnet\n\nThese measures increase the security by reducing the likelihood\nthat an attacker can either coerce the wallet owner to sign\na transaction or intercept a broadcast one.\n\n## Configuration\n\nThe proveTransaction and verifyTransaction functions can be configured as follows:\n\n### `cluster`\n\nDefault: `mainnet-beta`\n\nThe cluster that should be used when generating and verifyTransactioning proofs\n\n### `commitment`\n\nDefault: `confirmed`\n\nWhen checking that a proof transaction has not been transmitted, the commitment to be used, i.e. the degree to which the transaction is finalised by the network\n\n### `supportedClusterUrls`\n\nOptional\nDefault: empty\n\nIf the cluster is not a standard solana public cluster, this map provides\nthe cluster URL to connect to. Use this when the proof may contain a cluster that is\nnot recognised by solana's clusterApiUrl function.\n","licenseText":"MIT License\n\nCopyright (c) 2021 dankelleher\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.","_id":"@identity.com/prove-solana-wallet@0.4.0-beta.2","dist":{"shasum":"c6f9c10bb6a247cc531d7d0a02f816b4c3ddd417","integrity":"sha512-ASutqszpnK41/vOHu2W2q95wOnvMHoLYQEjXZOCcK6p0aK1K795k6ykR8WFO6nw7aXieQSGHMg5K+kUxuxMO7w==","tarball":"https://registry.npmjs.org/@identity.com/prove-solana-wallet/-/prove-solana-wallet-0.4.0-beta.2.tgz","fileCount":17,"unpackedSize":278451,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCMVoHrte0IJiGvZKwZ1LqTEt/KJpwCV33S1I5LkJJh/gIhAJaMqXjMLhmnjp1PHNOj2A7AqullwOtThJBQkycAWfGi"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkSm6FACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqhdQ/+PLWRm0rsI2C2aAVa/0wTWgZWt7pG4hMU1w12WViDMM9NxJAC\r\nRFjjTRhHF+vSeWySanOq5fgy+vfthAkftBhLiJ1HYdD3b+3/78jrWCckmhY9\r\nxyv6wgN68CJhBMfc3Zg7U7IK13sH8tonA/y3yufIMrAowqFSfzIGEM4X15yV\r\nvKX/2SVUm3A4hgkZibh0A/9uTuAgYNjana070hO5xdmnIdym5Vc3i9rZ5/Cz\r\nb8kHOh9SjX5Reti1Wv18XL/CozajKvdKrTcRZ38HKI9xXtY9PWvjKY3wv2ha\r\nvIr5fuV348nr/czFST1Ivl460fGMf248wIQUhztPGKY04YNPynxebMTM3cy8\r\nwNdrf26ScV30iwbpIoTmGzOPi12SYYI1hnmFgjSfLvKIaTVpHDkzcGg1qh6u\r\nKO4LphVk0Ntxxvf95EIIoVT1vjZh8/c/HeZ2YWFpUVWVcWggzTUJwPfx/Sbg\r\nRyH5lP5UhWMozsad1PiXaY+ysxQhcZurL/2upvTdYZWyh3gHwlzgvgRK5V1r\r\n9CjvSA8w/j4Y47mnBVgnCN46N1HCmTZeHqtQ4kLYttib9npWkuOF+yJAHK2t\r\nBda+iBSSKa8LNUhEbtPlBE5bhRuT8ybxVS2SyFmeecCxLUEQh0b4lM0ReZno\r\naG9GBr5dBmzbFI8KwObdHT1sGXjIah3ziJc=\r\n=TiWL\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kevinhcolgan","email":"kevin@civic.com"},"directories":{},"maintainers":[{"name":"tbarri","email":"tighe.barris@gmail.com"},{"name":"chriteixeira","email":"chriteixeira@gmail.com"},{"name":"rado0x54","email":"web@riedel-it.de"},{"name":"araptarchis","email":"alexis.raptarchis@googlemail.com"},{"name":"mitchcivic","email":"mitch@civic.com"},{"name":"dankelleher","email":"dankelleher@yahoo.com"},{"name":"flippiescholtz","email":"flippie@civic.com"},{"name":"kevinhcolgan","email":"kevin@civic.com"},{"name":"pbshoemaker","email":"phillip@identity.org"},{"name":"tyronemichael","email":"tyronemichael@gmail.com"},{"name":"lucmir","email":"luccmir@gmail.com"},{"name":"william-identity","email":"william@identity.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/prove-solana-wallet_0.4.0-beta.2_1682599557065_0.5612760870619702"},"_hasShrinkwrap":false},"0.4.0-beta.3":{"version":"0.4.0-beta.3","license":"MIT","main":"dist/index.js","typings":"dist/index.d.ts","engines":{"node":">=12"},"scripts":{"start":"tsdx watch","build":"tsdx build","test":"tsdx test","lint":"tsdx lint","lint:fix":"yarn lint --fix","prepare":"tsdx build","size":"size-limit","analyze":"size-limit --why"},"peerDependencies":{},"husky":{"hooks":{"pre-commit":"tsdx lint"}},"jest":{"testTimeout":30000},"prettier":{"printWidth":80,"semi":true,"singleQuote":true,"trailingComma":"es5"},"name":"@identity.com/prove-solana-wallet","author":{"name":"Daniel Kelleher","email":"daniel@identity.com"},"description":"Prove ownership of a Solana wallet.","module":"dist/prove-solana-wallet.esm.js","size-limit":[{"path":"dist/prove-solana-wallet.cjs.production.min.js","limit":"200 KB"},{"path":"dist/prove-solana-wallet.esm.js","limit":"200 KB"}],"devDependencies":{"@size-limit/preset-small-lib":"^5.0.2","@types/bs58":"^4.0.1","husky":"^7.0.1","size-limit":"^5.0.2","ts-node":"^10.1.0","tsdx":"^0.14.1","tslib":"^2.3.0","typescript":"^4.3.5"},"dependencies":{"@solana/web3.js":"^1.63.1","bs58":"^4.0.1","tweetnacl":"^1.0.3"},"readmeFilename":"README.md","readme":"# prove-solana-wallet\n\nThis library proveTransactions ownership of a [Solana](https://solana.com) wallet to off-chain verifiers.\n\nIt is compatible with standard browser wallet adapters, such as \n[sol-wallet-adapter](https://github.com/project-serum/sol-wallet-adapter), \nand can be extended to others.\n\n## Install\n\n```sh\nnpm install @identity.com/prove-solana-wallet\n```\n\nor \n\n```sh\nyarn add @identity.com/prove-solana-wallet\n```\n\n## Usage\n\n### prove ownership of a keypair using a signed message\n\nprover side: \n```js\nconst {create} = require('@identity.com/prove-solana-wallet');\nconst nonce = `${new Date().getTime()}`;\nconst proof = await create(myKeypair, nonce);\n```\n\nVerifier side:\n```js\nconst {verify} = require('@identity.com/prove-solana-wallet');\nconst message = timestamp;\nverify(expectedPublicKey, proof, message);\n```\n\n### prove ownership of a keypair using a transaction\n\nprover side: \n```js\nconst {proveTransaction} = require('@identity.com/prove-solana-wallet');\nconst proof = await proveTransaction(myKeypair);\n```\n\nVerifier side:\n```js\nconst {verifyTransaction} = require('@identity.com/prove-solana-wallet');\nawait verifyTransaction(proof, expectedPublicKey);\n```\n\nprove ownership of an external wallet (e.g. sol-wallet-adapter).\nSee [here](https://github.com/project-serum/sol-wallet-adapter) for more details.\n\nprover side:\n```js\nconst {proveTransaction} = require('@identity.com/prove-solana-wallet');\nimport Wallet from \"@project-serum/sol-wallet-adapter\";\n\nconst providerUrl = 'https://www.sollet.io';\nconst wallet = new Wallet(providerUrl);\nwallet.on('connect', async (publicKey) => {\n  // once the wallet is connected, we can prove ownership\n  const signer = (transaction:Transaction) => wallet.signTransaction(transaction);\n\n  const proof = await proveTransaction(myKeypair);\n});\n```\n\nVerifier side:\n```js\nconst {verifyTransaction} = require('@identity.com/prove-solana-wallet');\nawait verifyTransaction(proof, expectedPublicKey);\n```\n\n## Details\n\n### Using a signed message\nThe create(signMessageFn, message) function signs a message with the provided signing function, then concatenates the message with the string, both in base64 encoded form, i.e. `${messageB64}.${signatureB64}`.\n\nThe verify(publicKey, proof) function decodes the message and signature from the proof, and uses nacl to verify that the given public key signed the proof.\n\n### Using a zero-value transaction\nThe proveTransaction() function generates a zero-value transaction, and\nsigns it with the wallet private key. For the transaction to be verified\nby the verifyTransaction() function, it must:\n\n- have ony one instruction: SystemProgram.transfer\n- be zero-value\n- be self-to-self (i.e the sender and recipient are the same)\n- have a recent blockhash on mainnet\n- but not be broadcast to mainnet\n\nThese measures increase the security by reducing the likelihood\nthat an attacker can either coerce the wallet owner to sign\na transaction or intercept a broadcast one.\n\n## Configuration\n\nThe proveTransaction and verifyTransaction functions can be configured as follows:\n\n### `cluster`\n\nDefault: `mainnet-beta`\n\nThe cluster that should be used when generating and verifyTransactioning proofs\n\n### `commitment`\n\nDefault: `confirmed`\n\nWhen checking that a proof transaction has not been transmitted, the commitment to be used, i.e. the degree to which the transaction is finalised by the network\n\n### `supportedClusterUrls`\n\nOptional\nDefault: empty\n\nIf the cluster is not a standard solana public cluster, this map provides\nthe cluster URL to connect to. Use this when the proof may contain a cluster that is\nnot recognised by solana's clusterApiUrl function.\n","licenseText":"MIT License\n\nCopyright (c) 2021 dankelleher\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.","_id":"@identity.com/prove-solana-wallet@0.4.0-beta.3","dist":{"shasum":"6a37e2f7c72d14cf557225b612249e114b176e53","integrity":"sha512-CNWoQXXE1Icx5f1d5X2gVJWyqss841hWW8gEjdn59FSxKCoulDVHWV4Bdpos8M7KL8E6dnnDAPUu0nxoZZYClQ==","tarball":"https://registry.npmjs.org/@identity.com/prove-solana-wallet/-/prove-solana-wallet-0.4.0-beta.3.tgz","fileCount":17,"unpackedSize":276595,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD8K80uAYgwJ9+L3UURIZRUSC7m1zEtnLjFvCF6xMGBcgIhAMW+Mb4pr4LPy79GxTh8sfU/7T5A1jFs0WP1S653KV2n"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkSnGlACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrHGhAAiQ5QBEsl+Mwebbd+k5pkGvi5WMQj09CP8q8PGIMpTvJzrx96\r\npEY2dC9D4CC8q5n2c9ConGeiYkDJ095kKP+YCIgQCEMI9PYlcw99Zz+RhzE/\r\nvE4SYVlS9HjZOkk0JUde49HQOmxha7qtzfgzLnhbHQ+HbhZtrfzdVGfMpLrq\r\nJkWLZDdrXWLEYb3z7R0ImYCDQ8t3D1WXveRiCmzmi/Z4jDZQmpOtE3Zrvewj\r\n07Jwh+yLLyaiVRC8uDQPMhoF5KteRJAnN/WcG9sSpgTfnyHQaJockLaCls3N\r\n/FiDiBpwfy2btzc5vIKfuqccX800xKE2U+6iKtn1UI1EFaCr9eBOXqNfERh2\r\nAk2YaPDctRDtIL1KNc3HUynMGVPpACO0XHmHuqrF3my6PhdkHk7ATLKQ5nGQ\r\nba+1PzpIcOcJ2LdEyTk4ZPRB6nRgCSzjGGYDsY9c6kBAysRamnOlc1QcbHTV\r\n4NJdkVu/+C5eqWAh2T1X6ppi3bxXAM7bx0sGv1poCEmr+OExzGg+7byYJQOk\r\nQCAsWtbQw+uSonO8emEi1qCFWkU3ByniaQZF0VZlxqlB9pAB5LNwZju9odsd\r\nwZSuyi7+fwY5nNNPUr0rGl9uIQ9ipVes6lxxZm8joYbnF6ja7X01D0dYj8KV\r\nBLOv8BBio2OZ24f724baOrcouhJv4aqnxSQ=\r\n=fN65\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kevinhcolgan","email":"kevin@civic.com"},"directories":{},"maintainers":[{"name":"tbarri","email":"tighe.barris@gmail.com"},{"name":"chriteixeira","email":"chriteixeira@gmail.com"},{"name":"rado0x54","email":"web@riedel-it.de"},{"name":"araptarchis","email":"alexis.raptarchis@googlemail.com"},{"name":"mitchcivic","email":"mitch@civic.com"},{"name":"dankelleher","email":"dankelleher@yahoo.com"},{"name":"flippiescholtz","email":"flippie@civic.com"},{"name":"kevinhcolgan","email":"kevin@civic.com"},{"name":"pbshoemaker","email":"phillip@identity.org"},{"name":"tyronemichael","email":"tyronemichael@gmail.com"},{"name":"lucmir","email":"luccmir@gmail.com"},{"name":"william-identity","email":"william@identity.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/prove-solana-wallet_0.4.0-beta.3_1682600357033_0.9274659653099997"},"_hasShrinkwrap":false},"0.4.0":{"version":"0.4.0","license":"MIT","main":"dist/index.js","typings":"dist/index.d.ts","engines":{"node":">=12"},"scripts":{"start":"tsdx watch","build":"tsdx build","test":"tsdx test","lint":"tsdx lint","lint:fix":"yarn lint --fix","prepare":"tsdx build","size":"size-limit","analyze":"size-limit --why"},"peerDependencies":{},"husky":{"hooks":{"pre-commit":"tsdx lint"}},"jest":{"testTimeout":30000},"prettier":{"printWidth":80,"semi":true,"singleQuote":true,"trailingComma":"es5"},"name":"@identity.com/prove-solana-wallet","author":{"name":"Daniel Kelleher","email":"daniel@identity.com"},"description":"Prove ownership of a Solana wallet.","module":"dist/prove-solana-wallet.esm.js","size-limit":[{"path":"dist/prove-solana-wallet.cjs.production.min.js","limit":"200 KB"},{"path":"dist/prove-solana-wallet.esm.js","limit":"200 KB"}],"devDependencies":{"@size-limit/preset-small-lib":"^5.0.2","@types/bs58":"^4.0.1","husky":"^7.0.1","size-limit":"^5.0.2","ts-node":"^10.1.0","tsdx":"^0.14.1","tslib":"^2.3.0","typescript":"^4.3.5"},"dependencies":{"@solana/web3.js":"^1.63.1","bs58":"^4.0.1","tweetnacl":"^1.0.3"},"licenseText":"MIT License\n\nCopyright (c) 2021 dankelleher\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.","_id":"@identity.com/prove-solana-wallet@0.4.0","dist":{"shasum":"2ebf7beaad845bdfbc37130b0bdab806cdd4925e","integrity":"sha512-yaNsmH9Hg2rKAtzbnhBGAlPZZuJDS/XwMAstsoK97PdltxIxSQNuAL091eLGvRul4B3c2tRA7hZecV+3O6VS4Q==","tarball":"https://registry.npmjs.org/@identity.com/prove-solana-wallet/-/prove-solana-wallet-0.4.0.tgz","fileCount":17,"unpackedSize":276588,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICeC7ZKoNq06li/UAtouZnFvHorRJg8X789F5mZveZM+AiBraIeBiur3bIfLNWUZn6IV0H1q6stJMF4cj4MwpQV0XA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkUPUlACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpQkw//Z0c6NJymrXg/9KT1Dp/movYjr7nCuGDQLYUFWSfqWoSIierh\r\nXKQBcd7zZENhRdyUloTvKvxLV5cqQO8ALgi7hPveHzkybo480RTPglNYBZC+\r\nknvfkKAUPy3KGK7yQTLaQeNso6XWVaIZEpXv/a5A53ExHuN8F54hbZgojsDH\r\nHvSre0AzZlo1RMEkd46cRIvg9Q55eIsu7pH8fDJiObhCBIk5Q2EWGgD7ElYS\r\naNqIqPqTCpT8JpChw1spde8yU5cjG4hPxl8L6NYGVGc7rCyrwxKB9Getn6Wc\r\nPEHzxQnF0fxdfr1L82JzLQoU9PJJo4//J/xX1HLnJXlFgK7tQls1QxVfr21b\r\nuJwejS6j/QiM3gwQFuYkoiZxQlOxCjXKJNBra8/ocayVOqIWeDT4Th403m+Z\r\nLtivVzEgohBvWqIra9xpY6425IY8MLO+jTukYfM6nkOFZy/ja2Ec199eNRiy\r\no/oPOKOnrnE9fldmaCCoy1GvZ3MmEF3llxUY7d12UVp38dro+EsY8B5p6C1E\r\npQlrB1ELaf92Sa8dWHa+1+MHY+LbOT5MZ4VjcsjLU3khogCDAIqhj71cBku0\r\nrpnxaip1gMS2MW9FONm7Vuia+QJVt7e1MgIKZjP3lSvnRYTKuC7fxQRrT5PP\r\nOLCdsJt/J8ZAxvV96p689u8V11MgCBjK9sA=\r\n=eKlE\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kevinhcolgan","email":"kevin@civic.com"},"directories":{},"maintainers":[{"name":"tbarri","email":"tighe.barris@gmail.com"},{"name":"chriteixeira","email":"chriteixeira@gmail.com"},{"name":"rado0x54","email":"web@riedel-it.de"},{"name":"araptarchis","email":"alexis.raptarchis@googlemail.com"},{"name":"mitchcivic","email":"mitch@civic.com"},{"name":"dankelleher","email":"dankelleher@yahoo.com"},{"name":"flippiescholtz","email":"flippie@civic.com"},{"name":"kevinhcolgan","email":"kevin@civic.com"},{"name":"pbshoemaker","email":"phillip@identity.org"},{"name":"tyronemichael","email":"tyronemichael@gmail.com"},{"name":"lucmir","email":"luccmir@gmail.com"},{"name":"william-identity","email":"william@identity.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/prove-solana-wallet_0.4.0_1683027237266_0.8888753704443055"},"_hasShrinkwrap":false},"0.4.0-beta.4":{"version":"0.4.0-beta.4","license":"MIT","main":"dist/index.js","typings":"dist/index.d.ts","engines":{"node":">=12"},"scripts":{"start":"tsdx watch","build":"tsdx build","test":"tsdx test","lint":"tsdx lint","lint:fix":"yarn lint --fix","prepare":"tsdx build","size":"size-limit","analyze":"size-limit --why"},"peerDependencies":{},"husky":{"hooks":{"pre-commit":"tsdx lint"}},"jest":{"testTimeout":30000},"prettier":{"printWidth":80,"semi":true,"singleQuote":true,"trailingComma":"es5"},"name":"@identity.com/prove-solana-wallet","author":{"name":"Daniel Kelleher","email":"daniel@identity.com"},"description":"Prove ownership of a Solana wallet.","module":"dist/prove-solana-wallet.esm.js","size-limit":[{"path":"dist/prove-solana-wallet.cjs.production.min.js","limit":"200 KB"},{"path":"dist/prove-solana-wallet.esm.js","limit":"200 KB"}],"devDependencies":{"@size-limit/preset-small-lib":"^5.0.2","@types/bs58":"^4.0.1","husky":"^7.0.1","size-limit":"^5.0.2","ts-node":"^10.1.0","tsdx":"^0.14.1","tslib":"^2.3.0","typescript":"^4.3.5"},"dependencies":{"@solana/web3.js":"^1.63.1","bs58":"^4.0.1","tweetnacl":"^1.0.3"},"readmeFilename":"README.md","readme":"# prove-solana-wallet\n\nThis library proveTransactions ownership of a [Solana](https://solana.com) wallet to off-chain verifiers.\n\nIt is compatible with standard browser wallet adapters, such as \n[sol-wallet-adapter](https://github.com/project-serum/sol-wallet-adapter), \nand can be extended to others.\n\n## Install\n\n```sh\nnpm install @identity.com/prove-solana-wallet\n```\n\nor \n\n```sh\nyarn add @identity.com/prove-solana-wallet\n```\n\n## Usage\n\n### prove ownership of a keypair using a signed message\n\nprover side: \n```js\nconst {create} = require('@identity.com/prove-solana-wallet');\nconst nonce = `${new Date().getTime()}`;\nconst proof = await create(myKeypair, nonce);\n```\n\nVerifier side:\n```js\nconst {verify} = require('@identity.com/prove-solana-wallet');\nconst message = timestamp;\nverify(expectedPublicKey, proof, message);\n```\n\n### prove ownership of a keypair using a transaction\n\nprover side: \n```js\nconst {proveTransaction} = require('@identity.com/prove-solana-wallet');\nconst proof = await proveTransaction(myKeypair);\n```\n\nVerifier side:\n```js\nconst {verifyTransaction} = require('@identity.com/prove-solana-wallet');\nawait verifyTransaction(proof, expectedPublicKey);\n```\n\nprove ownership of an external wallet (e.g. sol-wallet-adapter).\nSee [here](https://github.com/project-serum/sol-wallet-adapter) for more details.\n\nprover side:\n```js\nconst {proveTransaction} = require('@identity.com/prove-solana-wallet');\nimport Wallet from \"@project-serum/sol-wallet-adapter\";\n\nconst providerUrl = 'https://www.sollet.io';\nconst wallet = new Wallet(providerUrl);\nwallet.on('connect', async (publicKey) => {\n  // once the wallet is connected, we can prove ownership\n  const signer = (transaction:Transaction) => wallet.signTransaction(transaction);\n\n  const proof = await proveTransaction(myKeypair);\n});\n```\n\nVerifier side:\n```js\nconst {verifyTransaction} = require('@identity.com/prove-solana-wallet');\nawait verifyTransaction(proof, expectedPublicKey);\n```\n\n## Details\n\n### Using a signed message\nThe create(signMessageFn, message) function signs a message with the provided signing function, then concatenates the message with the string, both in base64 encoded form, i.e. `${messageB64}.${signatureB64}`.\n\nThe verify(publicKey, proof) function decodes the message and signature from the proof, and uses nacl to verify that the given public key signed the proof.\n\n### Using a zero-value transaction\nThe proveTransaction() function generates a zero-value transaction, and\nsigns it with the wallet private key. For the transaction to be verified\nby the verifyTransaction() function, it must:\n\n- have ony one instruction: SystemProgram.transfer\n- be zero-value\n- be self-to-self (i.e the sender and recipient are the same)\n- have a recent blockhash on mainnet\n- but not be broadcast to mainnet\n\nThese measures increase the security by reducing the likelihood\nthat an attacker can either coerce the wallet owner to sign\na transaction or intercept a broadcast one.\n\n## Configuration\n\nThe proveTransaction and verifyTransaction functions can be configured as follows:\n\n### `cluster`\n\nDefault: `mainnet-beta`\n\nThe cluster that should be used when generating and verifyTransactioning proofs\n\n### `commitment`\n\nDefault: `confirmed`\n\nWhen checking that a proof transaction has not been transmitted, the commitment to be used, i.e. the degree to which the transaction is finalised by the network\n\n### `supportedClusterUrls`\n\nOptional\nDefault: empty\n\nIf the cluster is not a standard solana public cluster, this map provides\nthe cluster URL to connect to. Use this when the proof may contain a cluster that is\nnot recognised by solana's clusterApiUrl function.\n","licenseText":"MIT License\n\nCopyright (c) 2021 dankelleher\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.","_id":"@identity.com/prove-solana-wallet@0.4.0-beta.4","dist":{"shasum":"b875a30dc3e0c830fc2aadc129799859098ddb5d","integrity":"sha512-F2ENne1qSfveKA9m8MH+Nktjt8ivHNphH7/KwACbmrOhJs4wwX/CnZD0GuJN4ImdI34cCSE9gKxCbhRWq4tgrQ==","tarball":"https://registry.npmjs.org/@identity.com/prove-solana-wallet/-/prove-solana-wallet-0.4.0-beta.4.tgz","fileCount":17,"unpackedSize":281266,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB0Hwe2tzZDB5L0Cxpquq9tl5iFbtM2rEn6jUaMkU6NhAiBeM+uKnsQncQ7UKSV8+X6xMd8jrNnxa/50hXY4TdPDjQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkUh++ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpflQ/6AnBH+1X2uVzgfdsVj00n4GW1WkC3ZFRsNryNShDejfMZAzLt\r\nRrFMWBxIZXrJRiki9lqyZDRGVfmdB3E9Lj4kJMnFIPnkGtv7Z9VcebSs4ARN\r\ndCN9upDVGNJMbDyB41sBzgLOTri4D80KajH4jcxK6IiIOZqROwn13LSmKSZC\r\nvBka74OzK9F6sdnP9K7SosaNEac0DLayFM56ojHnL4+U75as0Z41eAJo0Y8U\r\nMCqFElSRTE+4iB6SKweTbuKrMAtq8roSoW3EiVXnqBg5YFbIKkA2AkQn7IOh\r\nTdCTqUds6mSO816Yyv+Kl+tkDrWIeKrOhqDlzlouvLNFI2witPIfxUTdBibz\r\nfAiYY8U3BavYoHNJ8Z0X4nUQX7Ov/Xn3RYYBWAbWLNis2JE8sJ4Ew5MZf/g8\r\nEs22ylacFNPSQungLljRsvV6fjvK1Rh5Y3LNtPkPWLy2QidUykHgHg3SiI0X\r\nLt410el6Vg3h4C6TyGUslIr6tFts6WuQlLP9mHuEutNel0SGijY/PxrQPqRE\r\nXKB3d+Mnxp/zmUv4NpbxbzW2X7AnViVXwCSU//kSIxh9h5hei+K4oIYELMvt\r\nSZ23tYcYVC3FBGhb1r8Um/3Ldhs7aVpFZrespU2tkQ2vdEBfAH/3iJUyADXV\r\ndWuoGCQX6JGGUSwlIg9G6Jf+nxFcL7bu1bM=\r\n=HODT\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kevinhcolgan","email":"kevin@civic.com"},"directories":{},"maintainers":[{"name":"tbarri","email":"tighe.barris@gmail.com"},{"name":"chriteixeira","email":"chriteixeira@gmail.com"},{"name":"rado0x54","email":"web@riedel-it.de"},{"name":"araptarchis","email":"alexis.raptarchis@googlemail.com"},{"name":"mitchcivic","email":"mitch@civic.com"},{"name":"dankelleher","email":"dankelleher@yahoo.com"},{"name":"flippiescholtz","email":"flippie@civic.com"},{"name":"kevinhcolgan","email":"kevin@civic.com"},{"name":"pbshoemaker","email":"phillip@identity.org"},{"name":"tyronemichael","email":"tyronemichael@gmail.com"},{"name":"lucmir","email":"luccmir@gmail.com"},{"name":"william-identity","email":"william@identity.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/prove-solana-wallet_0.4.0-beta.4_1683103678208_0.37750344844210804"},"_hasShrinkwrap":false},"0.4.1-beta.1":{"version":"0.4.1-beta.1","license":"MIT","main":"dist/index.js","typings":"dist/index.d.ts","engines":{"node":">=12"},"scripts":{"start":"tsdx watch","build":"tsdx build","test":"tsdx test","lint":"tsdx lint","lint:fix":"yarn lint --fix","prepare":"tsdx build","size":"size-limit","analyze":"size-limit --why"},"peerDependencies":{},"husky":{"hooks":{"pre-commit":"tsdx lint"}},"jest":{"testTimeout":30000},"prettier":{"printWidth":80,"semi":true,"singleQuote":true,"trailingComma":"es5"},"name":"@identity.com/prove-solana-wallet","author":{"name":"Daniel Kelleher","email":"daniel@identity.com"},"description":"Prove ownership of a Solana wallet.","module":"dist/prove-solana-wallet.esm.js","size-limit":[{"path":"dist/prove-solana-wallet.cjs.production.min.js","limit":"200 KB"},{"path":"dist/prove-solana-wallet.esm.js","limit":"200 KB"}],"devDependencies":{"@size-limit/preset-small-lib":"^5.0.2","@types/bs58":"^4.0.1","husky":"^7.0.1","size-limit":"^5.0.2","ts-node":"^10.1.0","tsdx":"^0.14.1","tslib":"^2.3.0","typescript":"^4.3.5"},"dependencies":{"@solana/web3.js":"^1.63.1","bs58":"^4.0.1","tweetnacl":"^1.0.3"},"readmeFilename":"README.md","readme":"# prove-solana-wallet\n\nThis library proveTransactions ownership of a [Solana](https://solana.com) wallet to off-chain verifiers.\n\nIt is compatible with standard browser wallet adapters, such as \n[sol-wallet-adapter](https://github.com/project-serum/sol-wallet-adapter), \nand can be extended to others.\n\n## Install\n\n```sh\nnpm install @identity.com/prove-solana-wallet\n```\n\nor \n\n```sh\nyarn add @identity.com/prove-solana-wallet\n```\n\n## Usage\n\n### prove ownership of a keypair using a signed message\n\nprover side: \n```js\nconst {create} = require('@identity.com/prove-solana-wallet');\nconst nonce = `${new Date().getTime()}`;\nconst proof = await create(myKeypair, nonce);\n```\n\nVerifier side:\n```js\nconst {verify} = require('@identity.com/prove-solana-wallet');\nconst message = timestamp;\nverify(expectedPublicKey, proof, message);\n```\n\n### prove ownership of a keypair using a transaction\n\nprover side: \n```js\nconst {proveTransaction} = require('@identity.com/prove-solana-wallet');\nconst proof = await proveTransaction(myKeypair);\n```\n\nVerifier side:\n```js\nconst {verifyTransaction} = require('@identity.com/prove-solana-wallet');\nawait verifyTransaction(proof, expectedPublicKey);\n```\n\nprove ownership of an external wallet (e.g. sol-wallet-adapter).\nSee [here](https://github.com/project-serum/sol-wallet-adapter) for more details.\n\nprover side:\n```js\nconst {proveTransaction} = require('@identity.com/prove-solana-wallet');\nimport Wallet from \"@project-serum/sol-wallet-adapter\";\n\nconst providerUrl = 'https://www.sollet.io';\nconst wallet = new Wallet(providerUrl);\nwallet.on('connect', async (publicKey) => {\n  // once the wallet is connected, we can prove ownership\n  const signer = (transaction:Transaction) => wallet.signTransaction(transaction);\n\n  const proof = await proveTransaction(myKeypair);\n});\n```\n\nVerifier side:\n```js\nconst {verifyTransaction} = require('@identity.com/prove-solana-wallet');\nawait verifyTransaction(proof, expectedPublicKey);\n```\n\n## Details\n\n### Using a signed message\nThe create(signMessageFn, message) function signs a message with the provided signing function, then concatenates the message with the string, both in base64 encoded form, i.e. `${messageB64}.${signatureB64}`.\n\nThe verify(publicKey, proof) function decodes the message and signature from the proof, and uses nacl to verify that the given public key signed the proof.\n\n### Using a zero-value transaction\nThe proveTransaction() function generates a zero-value transaction, and\nsigns it with the wallet private key. For the transaction to be verified\nby the verifyTransaction() function, it must:\n\n- have ony one instruction: SystemProgram.transfer\n- be zero-value\n- be self-to-self (i.e the sender and recipient are the same)\n- have a recent blockhash on mainnet\n- but not be broadcast to mainnet\n\nThese measures increase the security by reducing the likelihood\nthat an attacker can either coerce the wallet owner to sign\na transaction or intercept a broadcast one.\n\n## Configuration\n\nThe proveTransaction and verifyTransaction functions can be configured as follows:\n\n### `cluster`\n\nDefault: `mainnet-beta`\n\nThe cluster that should be used when generating and verifyTransactioning proofs\n\n### `commitment`\n\nDefault: `confirmed`\n\nWhen checking that a proof transaction has not been transmitted, the commitment to be used, i.e. the degree to which the transaction is finalised by the network\n\n### `supportedClusterUrls`\n\nOptional\nDefault: empty\n\nIf the cluster is not a standard solana public cluster, this map provides\nthe cluster URL to connect to. Use this when the proof may contain a cluster that is\nnot recognised by solana's clusterApiUrl function.\n","licenseText":"MIT License\n\nCopyright (c) 2021 dankelleher\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.","_id":"@identity.com/prove-solana-wallet@0.4.1-beta.1","dist":{"shasum":"ba0cdeb090929e2033ee08cb585b661fecba6cda","integrity":"sha512-QwKhcJWQqXhPUgLZ/hxpETsv5bQvu017ceFRALK3T7ZLnqmxwBBwtbGcYQHlRmd5WRalHoW/9evylsotDOipyA==","tarball":"https://registry.npmjs.org/@identity.com/prove-solana-wallet/-/prove-solana-wallet-0.4.1-beta.1.tgz","fileCount":17,"unpackedSize":281266,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH+SOaghjjCi/AAMQS/tscWL/PA2yUokz7PO+O2UuASzAiEAzXQu9hYZ7xtm5/6EGE5vmqCQneMzwWSMtdYjMgjikCM="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkUjBxACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpLog//Slu6sI+1p0ust4wlqHhPKFcFowMWrx/7mGWfT2UM4czXhvd8\r\nC/N3Wfi2yuqaIe8sO74nh5KbG055Bt0j8NCS1yXoDQK7FDF+XrQ/Vt5O+kCr\r\nu//HJq1bO11lHOkGsFUFtgk1DOAtFa4jimn9/5lizxZJtG4HlH2KvOFLgt3w\r\nVYfSrR4BYHDA60ZMjIMeqgkDMTA1+JHAX7OsrygRaw5T4XEi0sagCR46q2KY\r\n6hjfRV4z835hYXBJQPRTLABtl6vXwpP/TZhx6R/D90k5mmwARauviTXHaybA\r\nhGyAlJy3KfTzRqZ5vZ35yNsdK6m7tapZ9wvWAOkPBknVb44Y1IhTMm15nI+p\r\n8ljvxLpbD+zMl+faFoOmixbFZ/TTOgLgxhFKU9BABkxL/T1fpebIiCbGAHAc\r\n1xosTQGXMPYJ0m9ABDlpXQEw22PUKmjnI4lbj3I3/U6uPI8l0a3lhpUx6qhL\r\n9+rei6+gr5zkZjxiv3tk6z11+udUAo3IzdAP9seJ5asdjqw3mXs32U2R9c+Y\r\nWAFGMarWQIOSXPNEu1pKJI211dMysaR86YATr7cCFnnNhZdfjnFSBk1cp4jK\r\nZfmKhc303bWjkmd3HqVW0Bds1eKucypoI+Og8iPoUemfLtLfZIYWXoKMHFMP\r\nCbJCzkBX0YPJ4ndM7kHR8jpv62CfFXSQc24=\r\n=6Noa\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kevinhcolgan","email":"kevin@civic.com"},"directories":{},"maintainers":[{"name":"tbarri","email":"tighe.barris@gmail.com"},{"name":"chriteixeira","email":"chriteixeira@gmail.com"},{"name":"rado0x54","email":"web@riedel-it.de"},{"name":"araptarchis","email":"alexis.raptarchis@googlemail.com"},{"name":"mitchcivic","email":"mitch@civic.com"},{"name":"dankelleher","email":"dankelleher@yahoo.com"},{"name":"flippiescholtz","email":"flippie@civic.com"},{"name":"kevinhcolgan","email":"kevin@civic.com"},{"name":"pbshoemaker","email":"phillip@identity.org"},{"name":"tyronemichael","email":"tyronemichael@gmail.com"},{"name":"lucmir","email":"luccmir@gmail.com"},{"name":"william-identity","email":"william@identity.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/prove-solana-wallet_0.4.1-beta.1_1683107953115_0.2564154828988918"},"_hasShrinkwrap":false},"0.4.1":{"version":"0.4.1","license":"MIT","main":"dist/index.js","typings":"dist/index.d.ts","engines":{"node":">=12"},"scripts":{"start":"tsdx watch","build":"tsdx build","test":"tsdx test","lint":"tsdx lint","lint:fix":"yarn lint --fix","prepare":"tsdx build","size":"size-limit","analyze":"size-limit --why"},"peerDependencies":{},"husky":{"hooks":{"pre-commit":"tsdx lint"}},"jest":{"testTimeout":30000},"prettier":{"printWidth":80,"semi":true,"singleQuote":true,"trailingComma":"es5"},"name":"@identity.com/prove-solana-wallet","author":{"name":"Daniel Kelleher","email":"daniel@identity.com"},"description":"Prove ownership of a Solana wallet.","module":"dist/prove-solana-wallet.esm.js","size-limit":[{"path":"dist/prove-solana-wallet.cjs.production.min.js","limit":"200 KB"},{"path":"dist/prove-solana-wallet.esm.js","limit":"200 KB"}],"devDependencies":{"@size-limit/preset-small-lib":"^5.0.2","@types/bs58":"^4.0.1","husky":"^7.0.1","size-limit":"^5.0.2","ts-node":"^10.1.0","tsdx":"^0.14.1","tslib":"^2.3.0","typescript":"^4.3.5"},"dependencies":{"@solana/web3.js":"^1.63.1","bs58":"^4.0.1","tweetnacl":"^1.0.3"},"licenseText":"MIT License\n\nCopyright (c) 2021 dankelleher\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.","_id":"@identity.com/prove-solana-wallet@0.4.1","dist":{"shasum":"0e9af818e76679375e5986b7d2aa7fa433d0c815","integrity":"sha512-DwRdM7oleEi8dPiW0N1WdU3w6N9HmFPzZlo71UNhExSZHwDhwC5jFi4zTAsD0uIhlSym1Qfo4CJqqt0wGn2itw==","tarball":"https://registry.npmjs.org/@identity.com/prove-solana-wallet/-/prove-solana-wallet-0.4.1.tgz","fileCount":17,"unpackedSize":281259,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCflqtq9AOzG+XnXg+vYpr+Wq5EeHN3F0qXMMfsUvlbHgIhAJWJd4btAZ8PVC6nCxuRYera2UHqKde/9QU3OWnj13XI"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkUknQACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpSExAAjFagCAUv+W6UAVax84t504FOWClvA42PFRqNWBvCkOHuWSJP\r\nl2SIRyjIBZ//PiJZcbO4uQmlCgoRokb7RsqRle0m565XYiFvAEZAxIVNghxi\r\naNzrIsOIWTSXj7G5iLmJNG9pG2JR2TmotR0oku0+upTUdm18ZK+OtI5vz7pg\r\nPTDtSOjlY1hIZktfyG0A8ZXWJ1lrmq4R+uK2wsHXzaQw5Ihj3aPJGE7JM9Zn\r\n/VvWZGqomyjAAZtnZ7WTn6rhwc+prELBJZOia400pZcLPg0bmhP0I3qFPaoF\r\nqj7Bx9tosnlywlMx6KXXfEoGgfb6YhPh7rSLiySfv5OAtkGijykd1u/FK5yl\r\nYP4Ysbpy1w1pQxS+/14cWf2Mr6qCIJ6RNPf7F0rgMV1LoagGcjhw6LLledEY\r\nto419jjpwkPHDsLEnSsbKxElKzlZoRZcKAavOklZ+lhAZDgDls3ZR/RpnRAP\r\n8QFL+l1w/h4LSbppSSKXuccCnDLde/SoroLWxxXh/9VlwezT8DH01Pl+dYwG\r\n2BYvRLYRFphoEa0YL03sauOp+8+vUzLWO1VffYXPeD0YGhrYaf3g+0YfgkK2\r\nxAMT0YWjWxZ00aHxgwWQlfMBv4XuhroxCyqD/Lnr8tz8Kb0PWJ53xizy5WPz\r\nkOhvcspow8UteMPObsy+pbbIGKSqCb8MBq0=\r\n=nLbP\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kevinhcolgan","email":"kevin@civic.com"},"directories":{},"maintainers":[{"name":"tbarri","email":"tighe.barris@gmail.com"},{"name":"chriteixeira","email":"chriteixeira@gmail.com"},{"name":"rado0x54","email":"web@riedel-it.de"},{"name":"araptarchis","email":"alexis.raptarchis@googlemail.com"},{"name":"mitchcivic","email":"mitch@civic.com"},{"name":"dankelleher","email":"dankelleher@yahoo.com"},{"name":"flippiescholtz","email":"flippie@civic.com"},{"name":"kevinhcolgan","email":"kevin@civic.com"},{"name":"pbshoemaker","email":"phillip@identity.org"},{"name":"tyronemichael","email":"tyronemichael@gmail.com"},{"name":"lucmir","email":"luccmir@gmail.com"},{"name":"william-identity","email":"william@identity.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/prove-solana-wallet_0.4.1_1683114447831_0.8280996020923135"},"_hasShrinkwrap":false},"0.4.2-beta.1":{"version":"0.4.2-beta.1","license":"MIT","main":"dist/index.js","typings":"dist/index.d.ts","engines":{"node":">=12"},"scripts":{"start":"tsdx watch","build":"tsdx build","test":"tsdx test","lint":"tsdx lint","lint:fix":"yarn lint --fix","prepare":"tsdx build","size":"size-limit","analyze":"size-limit --why"},"peerDependencies":{},"husky":{"hooks":{"pre-commit":"tsdx lint"}},"jest":{"testTimeout":30000},"prettier":{"printWidth":80,"semi":true,"singleQuote":true,"trailingComma":"es5"},"name":"@identity.com/prove-solana-wallet","author":{"name":"Daniel Kelleher","email":"daniel@identity.com"},"description":"Prove ownership of a Solana wallet.","module":"dist/prove-solana-wallet.esm.js","size-limit":[{"path":"dist/prove-solana-wallet.cjs.production.min.js","limit":"200 KB"},{"path":"dist/prove-solana-wallet.esm.js","limit":"200 KB"}],"devDependencies":{"@size-limit/preset-small-lib":"^5.0.2","@types/bs58":"^4.0.1","husky":"^7.0.1","size-limit":"^5.0.2","ts-node":"^10.1.0","tsdx":"^0.14.1","tslib":"^2.3.0","typescript":"^4.3.5"},"dependencies":{"@solana/web3.js":"^1.63.1","bs58":"^4.0.1","tweetnacl":"^1.0.3"},"readmeFilename":"README.md","readme":"# prove-solana-wallet\n\nThis library proveTransactions ownership of a [Solana](https://solana.com) wallet to off-chain verifiers.\n\nIt is compatible with standard browser wallet adapters, such as \n[sol-wallet-adapter](https://github.com/project-serum/sol-wallet-adapter), \nand can be extended to others.\n\n## Install\n\n```sh\nnpm install @identity.com/prove-solana-wallet\n```\n\nor \n\n```sh\nyarn add @identity.com/prove-solana-wallet\n```\n\n## Usage\n\n### prove ownership of a keypair using a signed message\n\nprover side: \n```js\nconst {create} = require('@identity.com/prove-solana-wallet');\nconst nonce = `${new Date().getTime()}`;\nconst proof = await create(myKeypair, nonce);\n```\n\nVerifier side:\n```js\nconst {verify} = require('@identity.com/prove-solana-wallet');\nconst message = timestamp;\nverify(expectedPublicKey, proof, message);\n```\n\n### prove ownership of a keypair using a transaction\n\nprover side: \n```js\nconst {proveTransaction} = require('@identity.com/prove-solana-wallet');\nconst proof = await proveTransaction(myKeypair);\n```\n\nVerifier side:\n```js\nconst {verifyTransaction} = require('@identity.com/prove-solana-wallet');\nawait verifyTransaction(proof, expectedPublicKey);\n```\n\nprove ownership of an external wallet (e.g. sol-wallet-adapter).\nSee [here](https://github.com/project-serum/sol-wallet-adapter) for more details.\n\nprover side:\n```js\nconst {proveTransaction} = require('@identity.com/prove-solana-wallet');\nimport Wallet from \"@project-serum/sol-wallet-adapter\";\n\nconst providerUrl = 'https://www.sollet.io';\nconst wallet = new Wallet(providerUrl);\nwallet.on('connect', async (publicKey) => {\n  // once the wallet is connected, we can prove ownership\n  const signer = (transaction:Transaction) => wallet.signTransaction(transaction);\n\n  const proof = await proveTransaction(myKeypair);\n});\n```\n\nVerifier side:\n```js\nconst {verifyTransaction} = require('@identity.com/prove-solana-wallet');\nawait verifyTransaction(proof, expectedPublicKey);\n```\n\n## Details\n\n### Using a signed message\nThe create(signMessageFn, message) function signs a message with the provided signing function, then concatenates the message with the string, both in base64 encoded form, i.e. `${messageB64}.${signatureB64}`.\n\nThe verify(publicKey, proof) function decodes the message and signature from the proof, and uses nacl to verify that the given public key signed the proof.\n\n### Using a zero-value transaction\nThe proveTransaction() function generates a zero-value transaction, and\nsigns it with the wallet private key. For the transaction to be verified\nby the verifyTransaction() function, it must:\n\n- have ony one instruction: SystemProgram.transfer\n- be zero-value\n- be self-to-self (i.e the sender and recipient are the same)\n- have a recent blockhash on mainnet\n- but not be broadcast to mainnet\n\nThese measures increase the security by reducing the likelihood\nthat an attacker can either coerce the wallet owner to sign\na transaction or intercept a broadcast one.\n\n## Configuration\n\nThe proveTransaction and verifyTransaction functions can be configured as follows:\n\n### `cluster`\n\nDefault: `mainnet-beta`\n\nThe cluster that should be used when generating and verifyTransactioning proofs\n\n### `commitment`\n\nDefault: `confirmed`\n\nWhen checking that a proof transaction has not been transmitted, the commitment to be used, i.e. the degree to which the transaction is finalised by the network\n\n### `supportedClusterUrls`\n\nOptional\nDefault: empty\n\nIf the cluster is not a standard solana public cluster, this map provides\nthe cluster URL to connect to. Use this when the proof may contain a cluster that is\nnot recognised by solana's clusterApiUrl function.\n","licenseText":"MIT License\n\nCopyright (c) 2021 dankelleher\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.","_id":"@identity.com/prove-solana-wallet@0.4.2-beta.1","dist":{"shasum":"a5b7e0b88417e591b6d27d09c12019c43c548392","integrity":"sha512-sHuKnFyNWGCBd2ndg/WzoUBZGQ+t20xz/VlSJ8QbxghT4qYZtUTg3cH78ZTBN5K6Q+0IVItXHdjGqR8E4kOK5w==","tarball":"https://registry.npmjs.org/@identity.com/prove-solana-wallet/-/prove-solana-wallet-0.4.2-beta.1.tgz","fileCount":17,"unpackedSize":281266,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCPjk88UImigyCQe1Gv183uBcOeB5FcIXWD7scB5jq/NgIgD8VIrEJ64vqlvWSucldKevmWgX4ZAH+/7tlsSlsE64s="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkU7nuACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoNcxAAnPWZvRRvc28rKUN8WJizAQRXeAI1wJ7mS2Slg6+1W59LW4NZ\r\n/RKHCeO5KptqLxjKMysuC0rqHncTkOE3P8bryd+yp3cbYmoOTp47oqRI10bY\r\neu+dN+kZt0uDrA+/f92YH/6wGNaII7TnImwAoF1kZZ6Udo/ehZGd4tJIQfmO\r\n0domP1cHTSusec7tN6jBEU12jb/WbzQ/wOktGFS9B+u5H9VKnuVhzVn8PhZj\r\nLnICKSQTAwc0KHercOb+EUGXEUcqW4QMt5RVzYlVMBYCVrwaQ+LsXWeHM/Cv\r\nsU/Rrlg61hC/54ppUZT8/qs5G6Kx6X5tSyeRU6lPHgi0siHV5mREcIX74kI3\r\n3oCr1NPedNFiC0W3ezmwckEnf1FW+o8KTBunvUxZBL76jJypoGtsjuumqC3I\r\nhpa9GqkYewKQPf3fswLl2uAB049c5hHwaxeysuDUMAHIqE73E4LMtWLoQxeO\r\ngv3YlTPTBflKvvvXvZKi7o3QCIUJyx1Qiojn/AuDWtzD+4Laem5h7TtC4z0L\r\nc/hmXSs7SN2UMvIG99f6vV2tRe7HUmYSGyeASErqAvDV2cEE+YP+670WArA7\r\nBjBPmpOIsiXrfg9RjkEMCwjEwxPdpr7+ejXBa+Bjgc45kBmX1yYI7JgN2NNm\r\neO9TNpRe7SbGOZm1Fye9I2tLr0xpp7j5Dm4=\r\n=V/Vx\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kevinhcolgan","email":"kevin@civic.com"},"directories":{},"maintainers":[{"name":"tbarri","email":"tighe.barris@gmail.com"},{"name":"chriteixeira","email":"chriteixeira@gmail.com"},{"name":"rado0x54","email":"web@riedel-it.de"},{"name":"araptarchis","email":"alexis.raptarchis@googlemail.com"},{"name":"mitchcivic","email":"mitch@civic.com"},{"name":"dankelleher","email":"dankelleher@yahoo.com"},{"name":"flippiescholtz","email":"flippie@civic.com"},{"name":"kevinhcolgan","email":"kevin@civic.com"},{"name":"pbshoemaker","email":"phillip@identity.org"},{"name":"tyronemichael","email":"tyronemichael@gmail.com"},{"name":"lucmir","email":"luccmir@gmail.com"},{"name":"william-identity","email":"william@identity.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/prove-solana-wallet_0.4.2-beta.1_1683208686287_0.06751477973183051"},"_hasShrinkwrap":false},"0.4.2":{"version":"0.4.2","license":"MIT","main":"dist/index.js","typings":"dist/index.d.ts","engines":{"node":">=12"},"scripts":{"start":"tsdx watch","build":"tsdx build","test":"tsdx test","lint":"tsdx lint","lint:fix":"yarn lint --fix","prepare":"tsdx build","size":"size-limit","analyze":"size-limit --why"},"peerDependencies":{},"husky":{"hooks":{"pre-commit":"tsdx lint"}},"jest":{"testTimeout":30000},"prettier":{"printWidth":80,"semi":true,"singleQuote":true,"trailingComma":"es5"},"name":"@identity.com/prove-solana-wallet","author":{"name":"Daniel Kelleher","email":"daniel@identity.com"},"description":"Prove ownership of a Solana wallet.","module":"dist/prove-solana-wallet.esm.js","size-limit":[{"path":"dist/prove-solana-wallet.cjs.production.min.js","limit":"200 KB"},{"path":"dist/prove-solana-wallet.esm.js","limit":"200 KB"}],"devDependencies":{"@size-limit/preset-small-lib":"^5.0.2","@types/bs58":"^4.0.1","husky":"^7.0.1","size-limit":"^5.0.2","ts-node":"^10.1.0","tsdx":"^0.14.1","tslib":"^2.3.0","typescript":"^4.3.5"},"dependencies":{"@solana/web3.js":"^1.63.1","bs58":"^4.0.1","tweetnacl":"^1.0.3"},"gitHead":"5162eeceec4a285831e388688b5de3bef41e7cb1","_id":"@identity.com/prove-solana-wallet@0.4.2","_nodeVersion":"16.20.0","_npmVersion":"8.19.4","dist":{"integrity":"sha512-pf80VWM+BdeO/H5AcXQ28PFh0YuHHVOjKTYPTvdYreci+F0KZTfMBYHjcA1BESzX8GfRTOb1v+dkSlGeeU39RQ==","shasum":"e4250dbf1e884cd890746c977061342618226bd4","tarball":"https://registry.npmjs.org/@identity.com/prove-solana-wallet/-/prove-solana-wallet-0.4.2.tgz","fileCount":14,"unpackedSize":281259,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCTR0+ZCJKZBacXGL0e1N3BpH3bR5cYEpjC6VKblQMOrgIhAKCSRJSd4OkFeM+sRUR9DT4Uzm4OiAhr6adD+s7t6EOF"}]},"_npmUser":{"name":"lucmir","email":"luccmir@gmail.com"},"directories":{},"maintainers":[{"name":"tbarri","email":"tighe.barris@gmail.com"},{"name":"chriteixeira","email":"chriteixeira@gmail.com"},{"name":"rado0x54","email":"web@riedel-it.de"},{"name":"araptarchis","email":"alexis.raptarchis@googlemail.com"},{"name":"mitchcivic","email":"mitch@civic.com"},{"name":"dankelleher","email":"dankelleher@yahoo.com"},{"name":"flippiescholtz","email":"flippie@civic.com"},{"name":"kevinhcolgan","email":"kevin@civic.com"},{"name":"pbshoemaker","email":"phillip@identity.org"},{"name":"tyronemichael","email":"tyronemichael@gmail.com"},{"name":"lucmir","email":"luccmir@gmail.com"},{"name":"william-identity","email":"william@identity.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/prove-solana-wallet_0.4.2_1683293671950_0.36709975612539236"},"_hasShrinkwrap":false}},"time":{"created":"2021-05-26T12:13:24.434Z","0.1.2":"2021-05-26T12:13:24.738Z","modified":"2024-03-08T01:55:13.976Z","0.1.3":"2021-05-26T13:47:55.540Z","0.1.4":"2021-05-27T09:37:45.879Z","0.2.0":"2021-07-30T10:53:03.775Z","0.2.1":"2021-07-30T11:03:43.670Z","0.2.2":"2021-08-18T09:00:51.138Z","0.2.3":"2021-09-07T11:21:16.268Z","0.2.4":"2021-10-15T10:36:39.787Z","0.2.5":"2022-01-26T17:38:36.304Z","0.2.6-beta1":"2022-07-06T10:13:37.067Z","0.2.6-beta2":"2022-07-06T10:16:51.293Z","0.2.6-beta3":"2022-07-06T10:17:58.265Z","0.2.6-beta4":"2022-07-06T11:29:45.267Z","0.2.6":"2022-07-06T12:09:23.529Z","0.2.7":"2022-07-07T12:39:49.885Z","0.2.8":"2022-07-07T13:24:08.384Z","0.2.9":"2022-07-12T11:47:47.527Z","0.3.0-beta.1":"2022-08-10T14:48:37.754Z","0.3.1":"2022-09-28T11:00:27.166Z","0.4.0-beta.1":"2023-04-27T10:14:12.861Z","0.4.0-beta.2":"2023-04-27T12:45:57.319Z","0.4.0-beta.3":"2023-04-27T12:59:17.194Z","0.4.0":"2023-05-02T11:33:57.511Z","0.4.0-beta.4":"2023-05-03T08:47:58.484Z","0.4.1-beta.1":"2023-05-03T09:59:13.281Z","0.4.1":"2023-05-03T11:47:27.973Z","0.4.2-beta.1":"2023-05-04T13:58:06.500Z","0.4.2":"2023-05-05T13:34:32.154Z"},"maintainers":[{"email":"robert.leonard@identity.org","name":"rleonard333"},{"email":"tighe.barris@gmail.com","name":"tbarri"},{"email":"chriteixeira@gmail.com","name":"chriteixeira"},{"email":"web@riedel-it.de","name":"rado0x54"},{"email":"mitch@civic.com","name":"mitchcivic"},{"email":"dankelleher@yahoo.com","name":"dankelleher"},{"email":"flippie@civic.com","name":"flippiescholtz"},{"email":"kevin@civic.com","name":"kevinhcolgan"},{"email":"phillip@identity.org","name":"pbshoemaker"},{"email":"tyronemichael@gmail.com","name":"tyronemichael"},{"email":"luccmir@gmail.com","name":"lucmir"}],"description":"Prove ownership of a Solana wallet.","author":{"name":"Daniel Kelleher","email":"daniel@identity.com"},"license":"MIT","readme":"# prove-solana-wallet\n\nThis library proveTransactions ownership of a [Solana](https://solana.com) wallet to off-chain verifiers.\n\nIt is compatible with standard browser wallet adapters, such as \n[sol-wallet-adapter](https://github.com/project-serum/sol-wallet-adapter), \nand can be extended to others.\n\n## Install\n\n```sh\nnpm install @identity.com/prove-solana-wallet\n```\n\nor \n\n```sh\nyarn add @identity.com/prove-solana-wallet\n```\n\n## Usage\n\n### prove ownership of a keypair using a signed message\n\nprover side: \n```js\nconst {create} = require('@identity.com/prove-solana-wallet');\nconst nonce = `${new Date().getTime()}`;\nconst proof = await create(myKeypair, nonce);\n```\n\nVerifier side:\n```js\nconst {verify} = require('@identity.com/prove-solana-wallet');\nconst message = timestamp;\nverify(expectedPublicKey, proof, message);\n```\n\n### prove ownership of a keypair using a transaction\n\nprover side: \n```js\nconst {proveTransaction} = require('@identity.com/prove-solana-wallet');\nconst proof = await proveTransaction(myKeypair);\n```\n\nVerifier side:\n```js\nconst {verifyTransaction} = require('@identity.com/prove-solana-wallet');\nawait verifyTransaction(proof, expectedPublicKey);\n```\n\nprove ownership of an external wallet (e.g. sol-wallet-adapter).\nSee [here](https://github.com/project-serum/sol-wallet-adapter) for more details.\n\nprover side:\n```js\nconst {proveTransaction} = require('@identity.com/prove-solana-wallet');\nimport Wallet from \"@project-serum/sol-wallet-adapter\";\n\nconst providerUrl = 'https://www.sollet.io';\nconst wallet = new Wallet(providerUrl);\nwallet.on('connect', async (publicKey) => {\n  // once the wallet is connected, we can prove ownership\n  const signer = (transaction:Transaction) => wallet.signTransaction(transaction);\n\n  const proof = await proveTransaction(myKeypair);\n});\n```\n\nVerifier side:\n```js\nconst {verifyTransaction} = require('@identity.com/prove-solana-wallet');\nawait verifyTransaction(proof, expectedPublicKey);\n```\n\n## Details\n\n### Using a signed message\nThe create(signMessageFn, message) function signs a message with the provided signing function, then concatenates the message with the string, both in base64 encoded form, i.e. `${messageB64}.${signatureB64}`.\n\nThe verify(publicKey, proof) function decodes the message and signature from the proof, and uses nacl to verify that the given public key signed the proof.\n\n### Using a zero-value transaction\nThe proveTransaction() function generates a zero-value transaction, and\nsigns it with the wallet private key. For the transaction to be verified\nby the verifyTransaction() function, it must:\n\n- have ony one instruction: SystemProgram.transfer\n- be zero-value\n- be self-to-self (i.e the sender and recipient are the same)\n- have a recent blockhash on mainnet\n- but not be broadcast to mainnet\n\nThese measures increase the security by reducing the likelihood\nthat an attacker can either coerce the wallet owner to sign\na transaction or intercept a broadcast one.\n\n## Configuration\n\nThe proveTransaction and verifyTransaction functions can be configured as follows:\n\n### `cluster`\n\nDefault: `mainnet-beta`\n\nThe cluster that should be used when generating and verifyTransactioning proofs\n\n### `commitment`\n\nDefault: `confirmed`\n\nWhen checking that a proof transaction has not been transmitted, the commitment to be used, i.e. the degree to which the transaction is finalised by the network\n\n### `supportedClusterUrls`\n\nOptional\nDefault: empty\n\nIf the cluster is not a standard solana public cluster, this map provides\nthe cluster URL to connect to. Use this when the proof may contain a cluster that is\nnot recognised by solana's clusterApiUrl function.\n","readmeFilename":"README.md"}