{"_id":"@alchemilla/solana-nft-tools","_rev":"3-5fcf2b132ea4d7eb5572b1b5aaf4bd58","name":"@alchemilla/solana-nft-tools","dist-tags":{"latest":"0.2.5"},"versions":{"0.2.2":{"name":"@alchemilla/solana-nft-tools","version":"0.2.2","description":"Collection of helper functions for interacting with Solana NFTs.","main":"lib/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://github.com/primenumsdev/solana-nft-tools.git"},"keywords":["solana","nft","blockchain"],"author":{"name":"alchemilla"},"license":"ISC","bugs":{"url":"https://github.com/alchemilla/solana-nft-tools/issues"},"homepage":"https://github.com/alchemilla/solana-nft-tools#readme","dependencies":{"@metaplex-foundation/js":"^0.15.0","@solana/web3.js":"^1.56.2","node-fetch":"^2.6.7"},"gitHead":"83fe062fa385844d577ef07b2f515528189e77a6","_id":"@alchemilla/solana-nft-tools@0.2.2","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-/ICR6DJ7vZGe8k9lUPNRKsSIzfx2g0znenF2u3Zas7fRUY77JNmzgSBU5uuTVuJk3ftdLOO+KPwfXZ554ZpQsA==","shasum":"67f280712e7b2b7d57fb4176b7a4b03fdec9e4d3","tarball":"https://registry.npmjs.org/@alchemilla/solana-nft-tools/-/solana-nft-tools-0.2.2.tgz","fileCount":9,"unpackedSize":19141,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEE+vXx7B4IBpzVj6NmacLxxaNu8k1e9xQeekVdowAngAiAcVNYwDJNMJUAgUu7VVxFYJKzBjPUVPQmOQS5beoS6Kg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjFFPTACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrWzA//dv2zZW8ilieN91IySOrnt+g+Tdp3elIU9ReJaqeipNfSCTqw\r\nhPplfpMwtrEstDuYszd9RDOPs4+vepEsnXXxQIhogqu/lj1Xi/AUFkRwVSda\r\neDUfdUnFzPhz8l+lZGGLzwMOJ0Ke2TbF67RkI7477cDy3nAUASh8F37euJz0\r\ny+cd4nqrUPdD7PV0PySD4SidCBJ6yxO3EMq2m2jlASL5Lims54HtuLbdQVR4\r\nct6qRXGMDWpdkm914cdIT31d691nDz6DwlM27Ik5sWjeodt65URiprIt102L\r\nQOS+sEXkzB8ptxnE4Hz7LcCgQyT9ztwa27P1jBPF2BzHe9ysfa8MO3Sp58DF\r\nQNmKNwhwZb3kCdDw3W2p5vkTxl957rrh1wI6INIuoOLT7yyEoMkDnolZvUJ8\r\nWmReTW7OMCp1hK+pZdgwYnAJzZjdPIBjE7TkViqQkoVvGvvcYiAVpoBqJVQ+\r\nIaDsgjVnKpXfFGfcF7g3mO1VsJ5rSGG4OP6oQ3karhWxdQd/jZGaxpw/V0xW\r\nMI0xKFCDbP4JdgxHgAtlPy/6BbNnE7RUtNkTZxUwbU1CiI+llxfYJV/d9dOh\r\n0OhQpV7hfAeZqQ/AOuelMDFQi0M8FM+ZTeaUUsRKEx0ziKnv3d6JcW218Qla\r\nGg98N3O1N4mnZUD/3CLNpyic/qzvdvMde98=\r\n=SkiL\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"alchemillahq","email":"hayzam@alchemilla.io"},"directories":{},"maintainers":[{"name":"alchemillahq","email":"hayzam@alchemilla.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/solana-nft-tools_0.2.2_1662276563154_0.7894074304103766"},"_hasShrinkwrap":false},"0.2.3":{"name":"@alchemilla/solana-nft-tools","version":"0.2.3","description":"Collection of helper functions for interacting with Solana NFTs.","main":"lib/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://github.com/primenumsdev/solana-nft-tools.git"},"keywords":["solana","nft","blockchain"],"author":{"name":"alchemilla"},"license":"ISC","bugs":{"url":"https://github.com/alchemilla/solana-nft-tools/issues"},"homepage":"https://github.com/alchemilla/solana-nft-tools#readme","dependencies":{"@metaplex-foundation/js":"^0.15.0","@solana/web3.js":"^1.56.2","node-fetch":"^2.6.7"},"gitHead":"326966829625eea7426da225aff3638ffbb095a8","_id":"@alchemilla/solana-nft-tools@0.2.3","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-9nT8P2b7Hspbh1MXEaSCdaChzZDNu6RQv/roTBBGZyE/ZUV/oLdUi8n3uSoI3GOO0CI8iNFFBrgFShywEQ39Cw==","shasum":"eba01200e41015e33bdc9d541cf7e19a7e77721f","tarball":"https://registry.npmjs.org/@alchemilla/solana-nft-tools/-/solana-nft-tools-0.2.3.tgz","fileCount":9,"unpackedSize":19351,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCtnJzzVTwbjQ0U9W6b6LL0626HBrbWVkH2Np/oz1A5PQIgdsQm8/Mk9dGpbKxY5vERZ6tuNFphccKGuPBlQ6MtE5c="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjFFRkACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq31A//XK9nNl5cu6A8AlRaWzS5leb+QoEWZWJbA41x5ZGHI0g4MGy9\r\n5sKmUAFdLT5sNVOKgFGjATbZVnmbk0juvRKAD956B7JXFkgOT/vZaVPtEGBg\r\nUZxIa4qPFbQLE5ZSS3+aZDHRHPWk2xBDuvhWiuEvBX1rFtxuqTZZiUbp0pyw\r\npOLLeyHaFqCMgntk7yjTkHudkXRDrUPsXCGPKTPfZNB2xsNX6t2Fe2izSKeQ\r\nNCbEXqSZr/7IVgKKRikTOFUsr9gKb0wNRSCPKkjlQs41Mju2333cIQr86AZ/\r\n2tWt2ChEnOGal8/BnHgAKuCv2vY4Onviws2JCbbdNlXecVv5ftxWb1aP4V3n\r\nLXLealg4hlgzBi1HvgQSSPDKT65vmAwv0JzY6s+GUP0J+hBbNIl1EysP6aRc\r\nxTnU0q5euHf4wpftIYMuDgc30vbmoymRp0KPzkREqDbNcBEwV1refyKugksc\r\n4EuIh28KH7hSKkQKcuqf/PH2JOsLRES9rdeN/DOdVEamSuYKv7b24bcdeFej\r\n9ZqN1TaaoZ+1gto/LyDVWm5SNKGkVsXcWwdZtFqC13gFBcKdiq7/0lT+yrPb\r\nG07ZLuPk2Wbd3rqQQnL1lL7z9w+mjjxF0oWEywrvwNwLyjYz2vS8/HVpRRAz\r\n2CKBd5YyzbEBnsvzQnuAu+bFsMY5HMDFwM0=\r\n=buFt\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"alchemillahq","email":"hayzam@alchemilla.io"},"directories":{},"maintainers":[{"name":"alchemillahq","email":"hayzam@alchemilla.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/solana-nft-tools_0.2.3_1662276708451_0.2020303086812334"},"_hasShrinkwrap":false},"0.2.4":{"name":"@alchemilla/solana-nft-tools","version":"0.2.4","description":"Collection of helper functions for interacting with Solana NFTs.","main":"lib/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://github.com/AlchemillaHQ/solana-nft-tools.git"},"keywords":["solana","nft","blockchain"],"author":{"name":"alchemilla"},"license":"ISC","bugs":{"url":"https://github.com/alchemilla/solana-nft-tools/issues"},"homepage":"https://github.com/alchemilla/solana-nft-tools#readme","dependencies":{"@metaplex-foundation/js":"^0.15.0","@solana/web3.js":"^1.56.2","node-fetch":"^2.6.7"},"gitHead":"67e450ede181d235081bb76832b7ecf7321649dd","_id":"@alchemilla/solana-nft-tools@0.2.4","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-stUbxtljzQU5X1TLmoS7zdL2jrVpmiuBgnIJUjCdW6eCaxhpTZYsQZHWJs80bsjpjUaQUfU99J87vkPybYmzLQ==","shasum":"9c407a1f655251ba4e385ea1607fc06a6658b5b6","tarball":"https://registry.npmjs.org/@alchemilla/solana-nft-tools/-/solana-nft-tools-0.2.4.tgz","fileCount":10,"unpackedSize":20114,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEnguLD1g1GUTK47rFgpdoEVZV56vfbzkqyX9VcivsyNAiBJ+iCuXdHOan4Jgthsfgt7ZFojKpy9Qqgg12aI/c83gQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjFFbVACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmphJQ/+PyA+32yK+U1xZWZXLa01VN4oGGHISuxj89K8xxnB8NeDhI/e\r\nEotLxy41wMdm3w40INakycDO9waHy/7KsbwLkHFbdIDs0+HF5p0PDl+96LKZ\r\nAo4oWBVbQQHrEynIFkphUgcU9utDzUdIFUv0xv1Y4EYn3sN28/9cXBdIcwhR\r\n3mHIoH1njjEjZ6Oonb2UZpiY7TWO529V/XO1+3XZRXoiSTEcbC/UejbkafNG\r\nkuZrICcvCtg9/+Xz9hEyHHyMtRkevumbakZr83xwuF7LshQDfwDmpsdqaL45\r\nAUAWyMk7l7nTMciF2rEhZKdZQ2C3o/OrRiAx/a3l48fkY9ipGelPOcBp+GdS\r\nMWOaExNCzkeN51y+DZvwz/90IhgNywKRE7y/FiBIS+/zUzWCsur4JP0VUhYv\r\n747sKTFEOOO6U94iGABUe5HAB829H1QI9GM1B9dI1E4pyqkXneSH4dMCZ6df\r\n3xL5GvXvmIpt8zOU4KcBX5btq+UuF0W/zoS7B5CIVeHmmWqsczPS7mxKEmXH\r\nsAeBXsw8tXeelB383ex69TgoD3XfYao/adwmnuBOcoJNxXJJaLVAZlcyTVoI\r\nu1hm9xMVAloYQCxEjLx0N+EHwzhCa0UV5L8qOzvi5XoHp7PGZacUCfaCkcN/\r\n3uFX6CcuJgSQiZ4I0ts3jMzOa/5m3qoGb0g=\r\n=UftO\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"alchemillahq","email":"hayzam@alchemilla.io"},"directories":{},"maintainers":[{"name":"alchemillahq","email":"hayzam@alchemilla.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/solana-nft-tools_0.2.4_1662277332910_0.5524080210517306"},"_hasShrinkwrap":false},"0.2.5":{"name":"@alchemilla/solana-nft-tools","version":"0.2.5","description":"Collection of helper functions for interacting with Solana NFTs.","main":"lib/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://github.com/AlchemillaHQ/solana-nft-tools.git"},"keywords":["solana","nft","blockchain"],"author":{"name":"alchemilla"},"license":"ISC","bugs":{"url":"https://github.com/alchemilla/solana-nft-tools/issues"},"homepage":"https://github.com/alchemilla/solana-nft-tools#readme","dependencies":{"@metaplex-foundation/js":"^0.15.0","@solana/web3.js":"^1.56.2","node-fetch":"^2.6.7"},"gitHead":"62e9206e1e397ad23d1663e95afbf9739846b94e","_id":"@alchemilla/solana-nft-tools@0.2.5","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-9lkwsafAKmB5D/Lc43dYIylRls6clgO+IaBef3UYLEpc+YnMFEOifqUP6b96CFuh0ybqghnfwkkPLQvuG7jWDg==","shasum":"46882365951df818b8d404d361222a81edd52a0e","tarball":"https://registry.npmjs.org/@alchemilla/solana-nft-tools/-/solana-nft-tools-0.2.5.tgz","fileCount":10,"unpackedSize":20498,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBvMK6CIrlMs7MRXViXSrnHwM4rNnNIp1P3n1IzykBVjAiAqHlEAqeWgp09t8SrsUsawwYmTfC4SF3M6ctzEGKUrpQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjH1mMACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqGqg//frFF8wRqimGeRF0dFQJIJgwjoRxb5kfMpblzf6sqZUjVVsnM\r\nBy4R1sRAJbKKAEyjEgAjc5YMGviO44Zy7cD07Vl1lu7ymnx05CovM1t0xFlO\r\n8IIBlJfhUwiDKaVpRXKJhMNe3PIWnVLzg6CulGkihYJz2iCWiVJP0P0OK4BA\r\n3bHzjk5i7svglgrPWxb0XoW1HsG0oT973kY10mw8sBe23mZEjquE8tTRY+mF\r\nLkIoI4l7cJQRC9RVnXqVXHYSATcKYN63W3k4LbwVFoqUIP1iLXTJWR78dcUQ\r\nL1b8bgSmF8snZfbGpPvh1F0EVxtguAgLhs66k+Eb8G7pzaUxNASzmSemZecy\r\nhl3obL55FGS7Lj9QvHET9/gDi3/XaL4ty+f0+BieJFCWMwtTvEFOKZgfdo6u\r\n9lZ9jmngLavwtnMkAI902IQcOAB6O3Xy4R/qZnJFqaA8HXC0cQDbyERxPbF1\r\nPgyZNRojVsZn0BUwIGQ+y27Y5KSdUNi1q9p+GYwP89hhoBL3ItApgH01RWpH\r\nHGA6Nk24n5MVJ9ecr+27xaFazoIGFQyQEeyjbjPYv7m+GRreEw9MuzF4IO1Z\r\nGUQh34N9J02VFmCp1kqTOqsVL0bCE6sz1k5EM8YRNZlnZv0nAAjf3RrP2jp3\r\n3U2TMxFwl2Wq1u/7hGpQfbMJqZ0nvg8ikO8=\r\n=8DdE\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"alchemillahq","email":"hayzam@alchemilla.io"},"directories":{},"maintainers":[{"name":"alchemillahq","email":"hayzam@alchemilla.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/solana-nft-tools_0.2.5_1662998923735_0.6897967741120632"},"_hasShrinkwrap":false}},"time":{"created":"2022-09-04T07:29:23.089Z","0.2.2":"2022-09-04T07:29:23.345Z","modified":"2022-09-12T16:08:44.105Z","0.2.3":"2022-09-04T07:31:48.652Z","0.2.4":"2022-09-04T07:42:13.100Z","0.2.5":"2022-09-12T16:08:43.984Z"},"maintainers":[{"name":"alchemillahq","email":"hayzam@alchemilla.io"}],"description":"Collection of helper functions for interacting with Solana NFTs.","homepage":"https://github.com/alchemilla/solana-nft-tools#readme","keywords":["solana","nft","blockchain"],"repository":{"type":"git","url":"git+https://github.com/AlchemillaHQ/solana-nft-tools.git"},"author":{"name":"alchemilla"},"bugs":{"url":"https://github.com/alchemilla/solana-nft-tools/issues"},"license":"ISC","readme":"# Solana NFT Tools\r\n\r\nCollection of helper functions for interacting with Solana NFTs.\r\n\r\n[![NPM](https://nodei.co/npm/@alchemilla/solana-nft-tools.png)](https://npmjs.org/package/@alchemilla/solana-nft-tools)\r\n\r\n![NPM Package version](https://img.shields.io/npm/v/@alchemilla/solana-nft-tools)\r\n![NPM Downloads](https://img.shields.io/npm/dw/@alchemilla/solana-nft-tools)\r\n\r\n\r\n# Install\r\n\r\n`npm i --save @alchemilla/solana-nft-tools`\r\n\r\n# Examples\r\n\r\nYou can find these examples [here](./examples/index.js).\r\n\r\n```JS\r\nconst NFTs = require('@alchemilla/solana-nft-tools');\r\nconst web3 = require(\"@solana/web3.js\");\r\n\r\n(async () => {\r\n  \r\n  // Create connection\r\n  const conn = new web3.Connection(\r\n    web3.clusterApiUrl('mainnet-beta'),\r\n    'confirmed'\r\n  );\r\n\r\n  // Get all mint tokens (NFTs) from your wallet\r\n  const walletAddr = 'Bv26RX9m6tt99uxFoacNi841Dj4J4udGjYMdLitVMofE';\r\n  let mints = await NFTs.getMintTokensByOwner(conn, walletAddr);\r\n  console.log('mints', mints);\r\n\r\n  // Now we can get some NFT information (metadata)\r\n  let myNFT = await NFTs.getNFTByMintAddress(conn, mints[0]);\r\n  console.log('myNFT', myNFT);\r\n\r\n  // If token is invalid or can't find parse NFT metadata, returns response with an error\r\n  myNFT = await NFTs.getNFTByMintAddress(conn, \"CkV4VDyvtwPudc8qJCUx5C6fDHTjPz261kWsEQ7aBef8\");\r\n  console.log('myNFT', myNFT);\r\n\r\n  // Additional function to get all NFTs from wallet address\r\n  let allMyNFTs = await NFTs.getNFTsByOwner(conn, walletAddr);\r\n  console.log('allMyNFTs', allMyNFTs);\r\n\r\n  // Be aware that some wallets may have too many NFTs, and Solana API may throw 429 Too many requests error.\r\n\r\n  // Solana cluster rate limits:\r\n  // https://docs.solana.com/cluster/rpc-endpoints#rate-limits-2\r\n\r\n  // To handle this, you can first query all mint tokens, and then sequentially get NFT data for each.\r\n  mints = await NFTs.getMintTokensByOwner(conn, walletAddr);\r\n  myNFT = await NFTs.getNFTByMintAddress(conn, mints[0]);\r\n  console.log('myNFT', myNFT);\r\n\r\n  // Or use this function with pagination and caching\r\n  let page = 1;\r\n  const perPage = 5;\r\n  const cacheTtlMins = 0.1; // Will keep the mint tokens cached for 6 seconds\r\n  let myNFTsPage1 = await NFTs.getNFTsByOwner(conn, walletAddr, page, perPage, cacheTtlMins);\r\n  console.log('myNFTsPage1', myNFTsPage1);\r\n\r\n  page++;\r\n  let myNFTsPage2 = await NFTs.getNFTsByOwner(conn, walletAddr, page, perPage, cacheTtlMins);\r\n  console.log('myNFTsPage2', myNFTsPage2);\r\n\r\n  let mintHashes;\r\n  mintHashes = await NFTs.getMintHashesFromCandyMachine(connection, \"DPsW9zSWh94J3865U712SzdzyYD1Xf2VZaaohRH1fToV\", 1);\r\n  console.log(mintHashes, mintHashes.length)\r\n})();\r\n```\r\n","readmeFilename":"README.md"}