{"_id":"@atomichub/atomicassets","_rev":"9-c8aeed04a2271b500e0d7d25972d18dc","name":"@atomichub/atomicassets","dist-tags":{"latest":"2.3.0"},"versions":{"2.0.0":{"name":"@atomichub/atomicassets","version":"2.0.0","keywords":["atomicassets","atomicmarket","atomichub","wax","antelope","eosio","nft","blockchain","sdk"],"author":{"name":"AtomicHub"},"license":"MIT","_id":"@atomichub/atomicassets@2.0.0","maintainers":[{"name":"robrigo","email":"rob@atomichub.io"}],"homepage":"https://github.com/atomicassets/atomicassets-sdk","bugs":{"url":"https://github.com/atomicassets/atomicassets-sdk/issues"},"dist":{"shasum":"aeccfafd69cbbca138a83b1d2fc20032721dad86","tarball":"https://registry.npmjs.org/@atomichub/atomicassets/-/atomicassets-2.0.0.tgz","fileCount":12,"integrity":"sha512-4H/BTZqHPXOZ09rtQiQ7Yda+W+e//1NF4BiVEkCNRJ/M4DSR4sbGB1WzMUmODDTy2Y+Mp4uYG7d+GQLqTbbvmw==","signatures":[{"sig":"MEUCICb+0nV7yHsdDqe8aklomei5/l7e+QtumbzUPt4Gq12dAiEAgLZJ/64XA6enVso+8Ff7ydiRrLwPt4du590fKNvYDSo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":788712},"main":"build/index.cjs","types":"build/index.d.ts","module":"build/index.mjs","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./build/index.d.mts","default":"./build/index.mjs"},"require":{"types":"./build/index.d.ts","default":"./build/index.cjs"}},"./package.json":"./package.json"},"gitHead":"4648fc644efd486bbc98f89899b99549eedccdd9","scripts":{"lint":"eslint .","test":"mocha -r ts-node/register/transpile-only test/**/*.test.ts","build":"tsup","prepack":"tsup","prepare":"tsup","pretest":"tsup","check-types":"tsc --noEmit && tsc --noEmit -p tsconfig.test.json"},"_npmUser":{"name":"robrigo","email":"rob@atomichub.io"},"repository":{"url":"git+https://github.com/atomicassets/atomicassets-sdk.git","type":"git"},"_npmVersion":"11.16.0","description":"JavaScript/TypeScript SDK for the AtomicAssets NFT standard on Antelope chains: read NFT data, serialize attribute data, and build v2 contract actions","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"chai":"^4.4.1","tsup":"^8.5.1","mocha":"^11.0.0","eslint":"^9.17.0","ts-node":"^10.9.2","typescript":"^6.0.0","@types/chai":"^4.3.11","@types/node":"^22.0.0","@types/mocha":"^10.0.6","typescript-eslint":"^8.59.0"},"_npmOperationalInternal":{"tmp":"tmp/atomicassets_2.0.0_1785006657466_0.21757016206398316","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@atomichub/atomicassets","version":"2.0.1","keywords":["atomicassets","atomicmarket","atomichub","wax","antelope","eosio","nft","blockchain","sdk"],"author":{"name":"AtomicHub"},"license":"MIT","_id":"@atomichub/atomicassets@2.0.1","maintainers":[{"name":"robrigo","email":"rob@atomichub.io"}],"homepage":"https://github.com/atomicassets/atomicassets-sdk","bugs":{"url":"https://github.com/atomicassets/atomicassets-sdk/issues"},"dist":{"shasum":"7160842e067b40f3b132e5ad779dd1751a68f1c3","tarball":"https://registry.npmjs.org/@atomichub/atomicassets/-/atomicassets-2.0.1.tgz","fileCount":12,"integrity":"sha512-UnN124+g3vdHEfhIodv5HhQdpmzuuTztzxseJEeu4nMaWN64c8Pa2m5uwwuu5evzkGCXUG9Ek/IIjGf+jAiolA==","signatures":[{"sig":"MEUCIAwB469WcUhovW+V5mR52Dt+bGM22TGeshGc3Dm5naVCAiEAypqml7JvEqxjNsxsdJxB1N6+GlsrcUNID84yTJBal4E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@atomichub%2fatomicassets@2.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":791751},"main":"build/index.cjs","types":"build/index.d.ts","module":"build/index.mjs","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./build/index.d.mts","default":"./build/index.mjs"},"require":{"types":"./build/index.d.ts","default":"./build/index.cjs"}},"./package.json":"./package.json"},"gitHead":"64d761428e026c6dc518bdb4a71314b4cedb3576","scripts":{"lint":"eslint .","test":"mocha -r ts-node/register/transpile-only test/**/*.test.ts","build":"tsup","prepack":"tsup","prepare":"tsup","pretest":"tsup","check-types":"tsc --noEmit && tsc --noEmit -p tsconfig.test.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0658e790-d556-47be-a65d-aa7aafd8a2bb"}},"repository":{"url":"git+https://github.com/atomicassets/atomicassets-sdk.git","type":"git"},"_npmVersion":"12.0.1","description":"JavaScript/TypeScript SDK for the AtomicAssets NFT standard on Antelope chains: read NFT data, serialize attribute data, and build v2 contract actions","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"devDependencies":{"chai":"^4.4.1","tsup":"^8.5.1","mocha":"^11.0.0","eslint":"^9.17.0","ts-node":"^10.9.2","typescript":"^6.0.0","@types/chai":"^4.3.11","@types/node":"^22.0.0","@types/mocha":"^10.0.6","typescript-eslint":"^8.59.0"},"_npmOperationalInternal":{"tmp":"tmp/atomicassets_2.0.1_1785009979743_0.9116080092205006","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"@atomichub/atomicassets","version":"2.0.2","keywords":["atomicassets","atomicmarket","atomichub","wax","antelope","eosio","nft","blockchain","sdk"],"author":{"name":"AtomicHub"},"license":"MIT","_id":"@atomichub/atomicassets@2.0.2","maintainers":[{"name":"robrigo","email":"rob@atomichub.io"}],"homepage":"https://github.com/atomicassets/atomicassets-sdk","bugs":{"url":"https://github.com/atomicassets/atomicassets-sdk/issues"},"dist":{"shasum":"6f7cd0ade300908eaf9d0da74752defbdb5bdce4","tarball":"https://registry.npmjs.org/@atomichub/atomicassets/-/atomicassets-2.0.2.tgz","fileCount":12,"integrity":"sha512-ae6L8+SDhQ9dtDozu/A8Qwkax06V80BCVrqkT180FWhG9gDkIWvkYREN4nE7OsWeil6Lf42vVlDdfRl1gzjuag==","signatures":[{"sig":"MEYCIQD+AnsU2gruz+miOiSsyrj+RlcyKwW2iqqXuqFJL19rMQIhAMQ9mUfWPH2CKQM1qHWWuvnboyBDGEaYpxpEozPDHBZW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@atomichub%2fatomicassets@2.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":791775},"main":"build/index.cjs","types":"build/index.d.ts","module":"build/index.mjs","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./build/index.d.mts","default":"./build/index.mjs"},"require":{"types":"./build/index.d.ts","default":"./build/index.cjs"}},"./package.json":"./package.json"},"gitHead":"4cf701f6c1e7480e967b4a305ec30e7e32e6511c","scripts":{"lint":"eslint .","test":"mocha -r ts-node/register/transpile-only test/**/*.test.ts","build":"tsup","prepack":"tsup","prepare":"tsup","pretest":"tsup","check-types":"tsc --noEmit && tsc --noEmit -p tsconfig.test.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0658e790-d556-47be-a65d-aa7aafd8a2bb"}},"repository":{"url":"git+https://github.com/atomicassets/atomicassets-sdk.git","type":"git"},"_npmVersion":"12.0.1","description":"JavaScript/TypeScript SDK for the AtomicAssets NFT standard on Antelope chains: read NFT data, serialize attribute data, and build v2 contract actions","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"devDependencies":{"chai":"^4.4.1","tsup":"^8.5.1","mocha":"^11.0.0","eslint":"^9.17.0","ts-node":"^10.9.2","typescript":"^6.0.0","@types/chai":"^4.3.11","@types/node":"^22.0.0","@types/mocha":"^10.0.6","typescript-eslint":"^8.59.0"},"_npmOperationalInternal":{"tmp":"tmp/atomicassets_2.0.2_1785024052089_0.9756375859137036","host":"s3://npm-registry-packages-npm-production"}},"2.0.3":{"name":"@atomichub/atomicassets","version":"2.0.3","keywords":["atomicassets","atomicmarket","atomichub","wax","antelope","eosio","nft","blockchain","sdk"],"author":{"name":"AtomicHub"},"license":"MIT","_id":"@atomichub/atomicassets@2.0.3","maintainers":[{"name":"robrigo","email":"rob@atomichub.io"}],"homepage":"https://github.com/atomicassets/atomicassets-sdk","bugs":{"url":"https://github.com/atomicassets/atomicassets-sdk/issues"},"dist":{"shasum":"c144fba9787a5b72df327396961963341183584d","tarball":"https://registry.npmjs.org/@atomichub/atomicassets/-/atomicassets-2.0.3.tgz","fileCount":12,"integrity":"sha512-xKBqkT4+7iZTmsWcm0iCIoHwug0Qcp00+FZh5VXNfUaJiADw5MlgsEQNusnd08lZ4Holl+evRaM8M5B4MlIAMg==","signatures":[{"sig":"MEUCIQDg6d1aNTPEvAedgp4jtfEdpqNt1rIDZZDBtpc+8qGwvAIgPu/Y/VW2Ul9SeIa//9Ynyt7mXhtA/gPW2lRoA3Vzqg0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@atomichub%2fatomicassets@2.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":801321},"main":"build/index.cjs","types":"build/index.d.ts","module":"build/index.mjs","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./build/index.d.mts","default":"./build/index.mjs"},"require":{"types":"./build/index.d.ts","default":"./build/index.cjs"}},"./package.json":"./package.json"},"gitHead":"b4f8cb8c9fbba42629c242e4344edba56c690ee5","scripts":{"lint":"eslint .","test":"mocha -r ts-node/register/transpile-only test/**/*.test.ts","build":"tsup","prepack":"tsup","prepare":"tsup","pretest":"tsup","check-types":"tsc --noEmit && tsc --noEmit -p tsconfig.test.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0658e790-d556-47be-a65d-aa7aafd8a2bb"}},"repository":{"url":"git+https://github.com/atomicassets/atomicassets-sdk.git","type":"git"},"_npmVersion":"12.0.2","description":"JavaScript/TypeScript SDK for the AtomicAssets NFT standard on Antelope chains: read NFT data, serialize attribute data, and build v2 contract actions","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"devDependencies":{"chai":"^4.4.1","tsup":"^8.5.1","mocha":"^11.0.0","eslint":"^9.17.0","ts-node":"^10.9.2","typescript":"^6.0.0","@types/chai":"^4.3.11","@types/node":"^22.0.0","@types/mocha":"^10.0.6","typescript-eslint":"^8.59.0"},"_npmOperationalInternal":{"tmp":"tmp/atomicassets_2.0.3_1785536043780_0.325022048205063","host":"s3://npm-registry-packages-npm-production"}},"2.0.4":{"name":"@atomichub/atomicassets","version":"2.0.4","keywords":["atomicassets","atomicmarket","atomichub","wax","antelope","eosio","nft","blockchain","sdk"],"author":{"name":"AtomicHub"},"license":"MIT","_id":"@atomichub/atomicassets@2.0.4","maintainers":[{"name":"robrigo","email":"rob@atomichub.io"}],"homepage":"https://github.com/atomicassets/atomicassets-sdk","bugs":{"url":"https://github.com/atomicassets/atomicassets-sdk/issues"},"dist":{"shasum":"157cb69be0c5f295da5ed3bac4aeea8d1f4b009b","tarball":"https://registry.npmjs.org/@atomichub/atomicassets/-/atomicassets-2.0.4.tgz","fileCount":12,"integrity":"sha512-0IYY39vfuezR4yIBrUiceSi8TcEsNIWZlAqgjnf8vX84TA0i81XaZSF33RYW2IvDSkgUyLngu+m89RCUDNUt9g==","signatures":[{"sig":"MEYCIQCAnu1CRrKScYyCrPlwftEfuaNPXQdeorBJvtcSS5ygtgIhAKagXAHV1+NuQhE8ZZWg+zEnafGnVdYI2efZTTiOJmHK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@atomichub%2fatomicassets@2.0.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":805569},"main":"build/index.cjs","types":"build/index.d.ts","module":"build/index.mjs","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./build/index.d.mts","default":"./build/index.mjs"},"require":{"types":"./build/index.d.ts","default":"./build/index.cjs"}},"./package.json":"./package.json"},"gitHead":"e64fe688300d28139d286ba672b6b66a6aa1fba2","scripts":{"lint":"eslint .","test":"mocha -r ts-node/register/transpile-only test/**/*.test.ts","build":"tsup","prepack":"tsup","prepare":"tsup","pretest":"tsup","check-types":"tsc --noEmit && tsc --noEmit -p tsconfig.test.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0658e790-d556-47be-a65d-aa7aafd8a2bb"}},"repository":{"url":"git+https://github.com/atomicassets/atomicassets-sdk.git","type":"git"},"_npmVersion":"12.0.2","description":"JavaScript/TypeScript SDK for the AtomicAssets NFT standard on Antelope chains: read NFT data, serialize attribute data, and build v2 contract actions","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"devDependencies":{"chai":"^4.4.1","tsup":"^8.5.1","mocha":"^11.0.0","eslint":"^9.17.0","ts-node":"^10.9.2","typescript":"^6.0.0","@types/chai":"^4.3.11","@types/node":"^22.0.0","@types/mocha":"^10.0.6","typescript-eslint":"^8.59.0"},"_npmOperationalInternal":{"tmp":"tmp/atomicassets_2.0.4_1785891997755_0.49433727875877853","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@atomichub/atomicassets","version":"2.1.0","keywords":["atomicassets","atomicmarket","atomichub","wax","antelope","eosio","nft","blockchain","sdk"],"author":{"name":"AtomicHub"},"license":"MIT","_id":"@atomichub/atomicassets@2.1.0","maintainers":[{"name":"robrigo","email":"rob@atomichub.io"}],"homepage":"https://github.com/atomicassets/atomicassets-sdk","bugs":{"url":"https://github.com/atomicassets/atomicassets-sdk/issues"},"dist":{"shasum":"2cb03ed5f89f8bda8c094285aab362e6a33aebef","tarball":"https://registry.npmjs.org/@atomichub/atomicassets/-/atomicassets-2.1.0.tgz","fileCount":12,"integrity":"sha512-4WIL5zM3dOLAkM21+SBXoCjTsRha0qVouXZ0FTIbrKmbPfoGu+LaS0jhlmWdvsJlCuuYka8Y48RsE6Zyd6rcRw==","signatures":[{"sig":"MEQCIGmuWj587gtLOofVdtdMXO1CW/uIAvSnBSu+qH7YXQBoAiBmsrNyywIwBiq5oc8lCGuzV8gV74rRmFWZ3J35wwZ/0A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@atomichub%2fatomicassets@2.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":910395},"main":"build/index.cjs","types":"build/index.d.ts","module":"build/index.mjs","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./build/index.d.mts","default":"./build/index.mjs"},"require":{"types":"./build/index.d.ts","default":"./build/index.cjs"}},"./package.json":"./package.json"},"gitHead":"0dbf061b26f7c6c2cf99d8080a8a0706e73dc1a5","scripts":{"lint":"eslint .","test":"mocha -r ts-node/register/transpile-only test/**/*.test.ts","build":"tsup","prepack":"tsup","prepare":"tsup","pretest":"tsup","check-types":"tsc --noEmit && tsc --noEmit -p tsconfig.test.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0658e790-d556-47be-a65d-aa7aafd8a2bb"}},"repository":{"url":"git+https://github.com/atomicassets/atomicassets-sdk.git","type":"git"},"_npmVersion":"12.0.2","description":"JavaScript/TypeScript SDK for the AtomicAssets NFT standard on Antelope chains: read NFT data, serialize attribute data, and build v2 contract actions","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"devDependencies":{"chai":"^4.4.1","tsup":"^8.5.1","mocha":"^11.0.0","eslint":"^9.17.0","ts-node":"^10.9.2","typescript":"^6.0.0","@types/chai":"^4.3.11","@types/node":"^22.0.0","@types/mocha":"^10.0.6","typescript-eslint":"^8.59.0"},"_npmOperationalInternal":{"tmp":"tmp/atomicassets_2.1.0_1786905368832_0.8217402763604027","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"name":"@atomichub/atomicassets","version":"2.1.1","keywords":["atomicassets","atomicmarket","atomichub","wax","antelope","eosio","nft","blockchain","sdk"],"author":{"url":"https://atomichub.io","name":"AtomicHub"},"license":"MIT","_id":"@atomichub/atomicassets@2.1.1","maintainers":[{"name":"robrigo","email":"rob@atomichub.io"}],"homepage":"https://github.com/atomicassets/atomicassets-sdk","bugs":{"url":"https://github.com/atomicassets/atomicassets-sdk/issues"},"dist":{"shasum":"a2ea5789a6b12ccc973a5dc0d98887ffe3f3d731","tarball":"https://registry.npmjs.org/@atomichub/atomicassets/-/atomicassets-2.1.1.tgz","fileCount":12,"integrity":"sha512-2H+6kNUP1aU6lkqmCln00bsRR+Ej9uPxWL6vEzA47coEI06tMnHuewQM345W+XXgud/igb+M/jxMkDnDbWV0kg==","signatures":[{"sig":"MEUCIAobXaPs628nHcIGsSWVgSvkIe2ok4fb8QSdRn38oURAAiEAwcbSnjboz3+fB+Nd6NmmiO2yJdqTyvjeLp2qzFyrlVA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@atomichub%2fatomicassets@2.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":921926},"main":"build/index.cjs","types":"build/index.d.ts","module":"build/index.mjs","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./build/index.d.mts","default":"./build/index.mjs"},"require":{"types":"./build/index.d.ts","default":"./build/index.cjs"}},"./package.json":"./package.json"},"gitHead":"5c70c62b3ca08a79cd76f68ee5ba4847337612ec","scripts":{"lint":"eslint .","test":"mocha -r ts-node/register/transpile-only test/**/*.test.ts","build":"tsup","prepack":"tsup","prepare":"tsup","pretest":"tsup","check-types":"tsc --noEmit && tsc --noEmit -p tsconfig.test.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0658e790-d556-47be-a65d-aa7aafd8a2bb"}},"repository":{"url":"git+https://github.com/atomicassets/atomicassets-sdk.git","type":"git"},"_npmVersion":"12.0.2","description":"JavaScript/TypeScript SDK for the AtomicAssets NFT standard on Antelope chains: read NFT data, serialize attribute data, and build v2 contract actions","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.4.1","tsup":"^8.5.1","mocha":"^11.0.0","eslint":"^9.17.0","ts-node":"^10.9.2","typescript":"^6.0.0","@types/chai":"^4.3.11","@types/node":"^22.0.0","@types/mocha":"^10.0.6","typescript-eslint":"^8.59.0"},"_npmOperationalInternal":{"tmp":"tmp/atomicassets_2.1.1_1787008375516_0.24673397328126767","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"@atomichub/atomicassets","version":"2.2.0","keywords":["atomicassets","atomicmarket","atomichub","wax","antelope","eosio","nft","blockchain","sdk"],"author":{"url":"https://atomichub.io","name":"AtomicHub"},"license":"MIT","_id":"@atomichub/atomicassets@2.2.0","maintainers":[{"name":"robrigo","email":"rob@atomichub.io"}],"homepage":"https://github.com/atomicassets/atomicassets-sdk","bugs":{"url":"https://github.com/atomicassets/atomicassets-sdk/issues"},"dist":{"shasum":"798078dd19174c764abc92193bcce911afdb4feb","tarball":"https://registry.npmjs.org/@atomichub/atomicassets/-/atomicassets-2.2.0.tgz","fileCount":12,"integrity":"sha512-v4PWwuyQhmSPjoJ8p6ObAXot9cvmmR81CvB1enaCvdv/8CkIjDqWfaUde8AZRdR15CUKrs0MmfyeGfnkpOD0Iw==","signatures":[{"sig":"MEYCIQCPRqHPX4H+YBcdcetdk6FZ+fHfyGuB9p5Hq5YtkgnslQIhAN42G4uathxj9NC7JaVlqZT7V/m5Wa8d8zuHssWoMRtI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIEAutyar8I5mkiEz/IHuO+KVyd+9WeSSt8+iK48mc5gkAiEA94BLs7zUPzkeKuitQ0IxjRo4L8b7sS1Ju9XMHHbSSPc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@atomichub%2fatomicassets@2.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":932944},"main":"build/index.cjs","_from":"file:atomichub-atomicassets-2.2.0.tgz","types":"build/index.d.ts","module":"build/index.mjs","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./build/index.d.mts","default":"./build/index.mjs"},"require":{"types":"./build/index.d.ts","default":"./build/index.cjs"}},"./package.json":"./package.json"},"scripts":{"lint":"eslint .","test":"mocha -r ts-node/register/transpile-only test/**/*.test.ts","build":"tsup","prepack":"tsup","prepare":"tsup","pretest":"tsup","check-types":"tsc --noEmit && tsc --noEmit -p tsconfig.test.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0658e790-d556-47be-a65d-aa7aafd8a2bb"}},"_resolved":"/home/runner/work/atomicassets-sdk/atomicassets-sdk/atomichub-atomicassets-2.2.0.tgz","_integrity":"sha512-v4PWwuyQhmSPjoJ8p6ObAXot9cvmmR81CvB1enaCvdv/8CkIjDqWfaUde8AZRdR15CUKrs0MmfyeGfnkpOD0Iw==","repository":{"url":"git+https://github.com/atomicassets/atomicassets-sdk.git","type":"git"},"_npmVersion":"12.0.2","description":"JavaScript/TypeScript SDK for the AtomicAssets NFT standard on Antelope chains: read NFT data, serialize attribute data, and build v2 contract actions","directories":{},"resolutions":{"serialize-javascript":"^7.0.5"},"sideEffects":false,"_nodeVersion":"22.23.2","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.4.1","tsup":"^8.5.1","mocha":"^11.0.0","eslint":"^9.17.0","ts-node":"^10.9.2","typescript":"^6.0.0","@types/chai":"^4.3.11","@types/node":"^22.0.0","@types/mocha":"^10.0.6","typescript-eslint":"^8.59.0"},"_npmOperationalInternal":{"tmp":"tmp/atomicassets_2.2.0_1787335791854_0.33691812334072613","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"_id":"@atomichub/atomicassets@2.3.0","bugs":{"url":"https://github.com/atomicassets/atomicassets-sdk/issues"},"dist":{"shasum":"b0c26738765b927d5df0e154955b324aa05c82d2","tarball":"https://registry.npmjs.org/@atomichub/atomicassets/-/atomicassets-2.3.0.tgz","fileCount":12,"integrity":"sha512-eHUkIkCKWvsIWumZXm0bv39RGSgTh0aMj1WV5Tpq91XuSeVkUyvoN3G3OeY9uqs1f6b2nBqEaKgQCSKszL69KQ==","signatures":[{"sig":"MEQCIDwht2RnoEzp243QbEqBQ9Sd65g8WRNgledyZl84QLsWAiA2oNZhau45YpeT+D6B48fnr0PEnkL6XFRrk8SDWAhR5w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCSenIZnIbOFalsDL0AZBU3CS9DKIrKCAKG2K38EROrzAIhAMuMFaziJd1iL68H7yvNuwVwU4lk7bFIvjVc9TsBfihF"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@atomichub%2fatomicassets@2.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":945023},"main":"build/index.cjs","name":"@atomichub/atomicassets","_from":"file:atomichub-atomicassets-2.3.0.tgz","types":"build/index.d.ts","author":{"url":"https://atomichub.io","name":"AtomicHub"},"module":"build/index.mjs","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./build/index.d.mts","default":"./build/index.mjs"},"require":{"types":"./build/index.d.ts","default":"./build/index.cjs"}},"./package.json":"./package.json"},"license":"MIT","scripts":{"lint":"eslint .","test":"mocha -r ts-node/register/transpile-only test/**/*.test.ts","build":"tsup","prepack":"tsup","prepare":"tsup","pretest":"tsup","check-types":"tsc --noEmit && tsc --noEmit -p tsconfig.test.json"},"version":"2.3.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0658e790-d556-47be-a65d-aa7aafd8a2bb"}},"homepage":"https://github.com/atomicassets/atomicassets-sdk","keywords":["atomicassets","atomicmarket","atomichub","wax","antelope","eosio","nft","blockchain","sdk"],"_resolved":"/home/runner/work/atomicassets-sdk/atomicassets-sdk/atomichub-atomicassets-2.3.0.tgz","_integrity":"sha512-eHUkIkCKWvsIWumZXm0bv39RGSgTh0aMj1WV5Tpq91XuSeVkUyvoN3G3OeY9uqs1f6b2nBqEaKgQCSKszL69KQ==","repository":{"url":"git+https://github.com/atomicassets/atomicassets-sdk.git","type":"git"},"_npmVersion":"12.0.2","description":"JavaScript/TypeScript SDK for the AtomicAssets NFT standard on Antelope chains: read NFT data, serialize attribute data, and build v2 contract actions","directories":{},"maintainers":[{"name":"robrigo","email":"rob@atomichub.io"}],"resolutions":{"serialize-javascript":"^7.0.5"},"sideEffects":false,"_nodeVersion":"22.23.2","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.4.1","tsup":"^8.5.1","mocha":"^11.0.0","eslint":"^9.17.0","ts-node":"^10.9.2","typescript":"^6.0.0","@types/chai":"^4.3.11","@types/node":"^22.0.0","@types/mocha":"^10.0.6","typescript-eslint":"^8.59.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/atomicassets_2.3.0_1788549567781_0.5925898718480422"}}},"time":{"created":"2026-07-25T19:10:57.256Z","modified":"2026-09-04T19:19:28.250Z","2.0.0":"2026-07-25T19:10:57.617Z","2.0.1":"2026-07-25T20:06:19.925Z","2.0.2":"2026-07-26T00:00:52.254Z","2.0.3":"2026-07-31T22:14:03.987Z","2.0.4":"2026-08-05T01:06:37.920Z","2.1.0":"2026-08-16T18:36:08.965Z","2.1.1":"2026-08-17T23:12:55.659Z","2.2.0":"2026-08-21T18:09:51.950Z","2.3.0":"2026-09-04T19:19:27.885Z"},"bugs":{"url":"https://github.com/atomicassets/atomicassets-sdk/issues"},"author":{"url":"https://atomichub.io","name":"AtomicHub"},"license":"MIT","homepage":"https://github.com/atomicassets/atomicassets-sdk","keywords":["atomicassets","atomicmarket","atomichub","wax","antelope","eosio","nft","blockchain","sdk"],"repository":{"url":"git+https://github.com/atomicassets/atomicassets-sdk.git","type":"git"},"description":"JavaScript/TypeScript SDK for the AtomicAssets NFT standard on Antelope chains: read NFT data, serialize attribute data, and build v2 contract actions","maintainers":[{"name":"robrigo","email":"rob@atomichub.io"}],"readme":"# @atomichub/atomicassets\n\n[![npm version](https://img.shields.io/npm/v/@atomichub/atomicassets.svg)](https://www.npmjs.com/package/@atomichub/atomicassets)\n[![CI](https://github.com/atomicassets/atomicassets-sdk/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/atomicassets/atomicassets-sdk/actions/workflows/ci.yml)\n[![license](https://img.shields.io/npm/l/@atomichub/atomicassets.svg)](https://github.com/atomicassets/atomicassets-sdk/blob/main/LICENSE)\n\nRead and write [AtomicAssets](https://github.com/atomicassets/atomicassets-contract) NFTs from JavaScript or TypeScript.\n\nAtomicAssets is the NFT standard used on WAX and other Antelope chains. Its on-chain data is not plain JSON: attributes are packed into a binary format against a per-collection schema, and ids exceed what a JavaScript number can hold safely. This SDK handles that for you, so fetching someone's NFTs is one call that returns typed objects with the attributes already decoded.\n\nIf you are building a wallet, a marketplace, a game inventory, or anything that shows or moves NFTs on these chains, this is the client library for it.\n\n## Install\n\n```sh\nnpm install @atomichub/atomicassets\n```\n\nOn Node.js the package requires version 20 or newer. Browsers and bundlers are supported through the ESM and IIFE builds. The package has zero runtime dependencies and ships CJS, ESM, and a browser IIFE bundle (`build/atomicassets.global.js`, global `atomicassets`).\n\n## Quickstart\n\nShow the NFTs an account owns:\n\n```ts\nimport { explorerApiForNetwork } from '@atomichub/atomicassets';\n\nconst api = explorerApiForNetwork('wax');\n\nconst assets = await api.getAssets({ owner: 'someaccount1' }, 1, 20);\n\nfor (const asset of assets) {\n    console.log(asset.name, asset.collection.collection_name, asset.data['img']);\n}\n```\n\nThere is nothing to configure first. `explorerApiForNetwork` points at AtomicHub's public endpoint for the network you name, and `asset.data` already holds the merged, decoded attributes.\n\nExamples below continue from this one and reuse `api`. They use top-level `await`, which needs an ES module; under CommonJS, wrap them in an `async` function.\n\nResponses are typed, so `asset.name` and `asset.collection` autocomplete and are checked at build time. `asset.data` is the exception: its keys come from whatever schema the collection defined, so it stays an open map you index by name.\n\n## Picking a client\n\nTwo ways to read the same data:\n\n| Client | Use it when | Backed by |\n| --- | --- | --- |\n| `ExplorerApi` | You want to filter, sort, paginate, or search. This is the usual choice. | A hosted [atomicassets-api](https://github.com/atomicassets/atomicassets-api) indexer |\n| `RpcApi` | You want to read contract tables directly, with no indexer in the path. | A plain nodeos node |\n\n`ExplorerApi` can answer questions the chain itself cannot, such as \"the 20 most recently minted assets in this collection\", because an indexer has already organized the data. `RpcApi` trades that away for reading straight from a node.\n\n## Reading NFT data\n\n```ts\nimport { AssetsSort, OrderParam } from '@atomichub/atomicassets';\n\n// One asset by id\nconst asset = await api.getAsset('1099511627786');\n\n// A collection's assets, newest mint first\nconst newest = await api.getAssets(\n    { collection_name: 'mycollection', sort: AssetsSort.Minted, order: OrderParam.Desc },\n    1,\n    50\n);\n\n// Templates, collections, and an account summary\nconst templates = await api.getTemplates({ collection_name: 'mycollection' });\nconst collection = await api.getCollection('mycollection');\nconst account = await api.getAccount('someaccount1');\n```\n\n`countAssets`, `countTemplates`, and the other `count*` methods return totals for the same filters, which is what you want for pagination. Transfers, offers, burns, and per-asset logs have their own methods on the same client.\n\n### Supported networks\n\n`wax`, `wax-testnet`, `vaulta`, `xpr`, `xpr-testnet`, `jungle4`.\n\nSelf-hosted or custom deployments use the constructors instead:\n\n```ts\nimport { ExplorerApi, RpcApi } from '@atomichub/atomicassets';\n\nconst api = new ExplorerApi('https://wax.api.atomicassets.io', 'atomicassets', {});\nconst rpc = new RpcApi('https://wax.greymass.com', 'atomicassets', {});\n```\n\n### Author swaps\n\nAn AtomicAssets v2 collection changes author in two steps. The chain writes the offer to the `authorswaps` table and keeps the row until the new author accepts it or either party rejects it. Expiry erases nothing, so an expired offer stays on chain until somebody rejects it. `RpcApi.getAuthorSwap` reads that row straight from the contract:\n\n```ts\nimport { AUTHOR_SWAP_TIME_DELTA } from '@atomichub/atomicassets';\n\nconst swap = await rpc.getAuthorSwap('mycollection');\nconst now = Math.floor(Date.now() / 1000);\n\nif (swap && now > swap.acceptance_date && now < swap.acceptance_date + AUTHOR_SWAP_TIME_DELTA) {\n    console.log(swap.new_author, 'can accept until', swap.acceptance_date + AUTHOR_SWAP_TIME_DELTA);\n}\n```\n\nA row is not a live offer. `getAuthorSwap` resolves `null` only when the table holds no row for the collection, and it applies no time check of its own, so the test above belongs to the caller. `acceptance_date` is the second from which the new author can accept, and `AUTHOR_SWAP_TIME_DELTA` is the seven-day window that follows it, in seconds.\n\nThe read is never cached. Accepting or rejecting erases the row, so a cached copy would report a resolved swap as still present. `ExplorerApi` carries the same row on a collection as `new_author_name` and `new_author_date`, both `null` when no row exists and both filled in for an expired offer.\n\n## Sending transactions\n\nReading needs no signing. When you want to mint, transfer, or burn, this SDK builds the action objects and hands them to whatever signing library you already use. It does not sign or broadcast anything itself.\n\n```ts\nimport { ActionBuilder } from '@atomichub/atomicassets';\n\nconst builder = new ActionBuilder('atomicassets');\n\nconst send = builder.transfer(\n    'someaccount1',        // from\n    'otheraccount',        // to\n    ['1099511627786'],     // asset_ids\n    'gg'                   // memo\n);\n```\n\nThat plugs straight into a signing library such as [WharfKit](https://wharfkit.com/):\n\n```ts\nawait session.transact({\n    actions: [{\n        ...send,\n        authorization: [{ actor: 'someaccount1', permission: 'active' }]\n    }]\n});\n```\n\n`ActionBuilder` is synchronous and returns authorization-free `{account, name, data}` objects, one method per contract action. If you would rather have authorization attached for you, `ActionGenerator` wraps the same builders and returns fully-authorized `EosioActionObject` arrays.\n\n### Contract versions\n\nThis package targets AtomicAssets v2, and the chains are migrating to it. v2 is a superset of v1, so every action v1 already had is spelled identically and works either way. The difference shows up only at the edges of the surface, where a chain that has not migrated yet will not accept all of it.\n\nRead the version from the contract's own `tokenconfigs` table to know where a chain stands. The wax and jungle4 testnets serve v2 and its 47 actions, while the mainnets are still on v1's 35: wax and eos report 1.2.3, xpr reports 1.3.1. Of the networks listed above, that puts `wax-testnet` and `jungle4` on v2, and `wax`, `vaulta`, `xpr` and `xpr-testnet` on v1 until they migrate.\n\nTen builders target actions v2 introduced: `acceptauswap`, `createauswap`, `rejectauswap`, `createtempl2`, `deltemplate`, `redtemplmax`, `settempldata`, `setschematyp`, `setlastpayer` and `setrampayer`. A chain that has not migrated has no such action and rejects the transaction as unknown, so check the version before sending one of these at a mainnet endpoint.\n\nNative token backing runs the other way, as a removal rather than an addition. v2 disables it, so `backasset` is deprecated and aborts there, and `mintasset` aborts on a non-empty `tokens_to_back`. Both still execute on a chain that has not migrated, which means a call that works is a chain that has not arrived yet, not a supported path to build on.\n\n`init`, `admincoledit`, `setversion` and `addconftoken` are contract administration, each guarded by `require_auth(get_self())`. The builders emit them for a caller that holds that authority, but no ordinary account can execute them.\n\n### Editing data replaces it\n\n`setcoldata`, `setassetdata`, `settempldata` and `setschematyp` each take the map you pass as the complete new value. The contract serializes exactly what it is handed over the existing row, so any attribute you leave out is dropped rather than kept, and `settempldata` with an empty map erases the row. No contract check compares your map against what was stored, so a read-modify-write that forgets to merge destroys the omitted attributes and still reports success. Read the current data, merge your change into it, and send the whole map.\n\n### Minting\n\nMinting takes more arguments because the contract does, and attribute data has to be typed on the way in:\n\n```ts\nimport { ActionBuilder, createAttributeMap } from '@atomichub/atomicassets';\n\nconst builder = new ActionBuilder('atomicassets');\n\nconst immutableData = createAttributeMap(\n    { name: 'Dragon', level: 12 },\n    { name: 'string', level: 'uint16' }\n);\n\nconst mint = builder.mintasset(\n    'creatoracct1',   // authorized_minter\n    'mycollection',   // collection_name\n    'myschema',       // schema_name\n    -1,               // template_id (-1 for none)\n    'receiveracct',   // new_asset_owner\n    immutableData,    // immutable_data\n    [],               // mutable_data\n    []                // tokens_to_back\n);\n```\n\n`createAttributeMap` is what keeps you from hand-building the contract's attribute pairs and getting the types wrong.\n\n`tokens_to_back` is empty above deliberately. Native backing is deprecated, and v2 aborts a mint that supplies any; see [Contract versions](#contract-versions).\n\n### What the builders validate\n\nAlmost nothing, deliberately. A builder emits the action data you hand it, and the chain is what decides whether a name exists, an account is authorized, or a fee is allowed; its errors say which.\n\nThe exception is the numeric parameters, whose bad values are the only input that neither throws nor survives the trip. Action data reaches a signing library as JSON, and `NaN` and `Infinity` have no JSON form, so `max_supply: NaN` arrives as `\"max_supply\": null` with the mistake already erased. Each numeric parameter is therefore checked against the ABI type of the field it fills, and the error names that field: `template_id` must be an int32, which keeps `-1` available as the \"no template\" sentinel; `max_supply` and `new_max_supply` must be uint32, so a fractional or negative supply is refused here rather than on chain; `market_fee` is a float64, so only its finiteness is checkable.\n\nWhat the contract additionally requires of a value, such as the market fee a collection may charge, stays the chain's to enforce, and it returns a legible error for it. Bound anything else you read from a response before you trust it.\n\n## Working with attribute data directly\n\nMost code never needs this. The API clients decode attributes for you, and `asset.data` is the result. The codec is exported for the cases where you are handling raw contract data yourself:\n\n```ts\nimport { ObjectSchema, serialize, deserialize } from '@atomichub/atomicassets';\n\nconst schema = ObjectSchema([\n    { name: 'name', type: 'string' },\n    { name: 'level', type: 'uint16' },\n    { name: 'tags', type: 'string[]' }\n]);\n\nconst encoded = serialize({ name: 'Dragon', level: 12, tags: ['fire'] }, schema);\nconst decoded = deserialize(encoded, schema);\n// decoded deep-equals the input object\n```\n\n`convertAttributeMapToObject` handles the other raw shape, the attribute map that contract action data carries. It turns one, in either entry shape, into a plain key/value object, and it settles the JSON type of every value it copies over:\n\n| Attribute type | Value in the returned object |\n| --- | --- |\n| `float32`, `float64` (schema `float`, `double`) | A number. A value that arrives as a string is read back into a number, and a `float32` rounds to the nearest float32: the chain value when the string kept full precision, and for a float32 below 1 handed over as a seven-decimal string the nearest float32 of that string, which can differ from the chain value by a few float32 steps. |\n| `FLOAT_VEC`, `DOUBLE_VEC` (schema `float[]`, `double[]`) | An array of those numbers, element by element. |\n| `uint64`, `int64`, `UINT64_VEC`, `INT64_VEC` (schema `uint64`, `int64`, `fixed64` and their vector forms) | A decimal string, so a value too large for a JavaScript number keeps every digit. |\n| Every other type | What the codec decoded, unchanged. |\n\nA string that does not read as a finite number stays the string it is, under a float type too, and so does an empty or whitespace-only string, or a string outside the range its type represents, which is the range the Postgres `real` and `double precision` casts accept.\n\n## What's new in 2.3.0\n\nReads a collection's author swap straight from the contract.\n\n### Features\n\n- `RpcApi.getAuthorSwap` returns the collection's row in the contract's `authorswaps` table, or `null` when the table holds no row. It applies no time check, because only accepting or rejecting erases a row: an expired offer is still returned, and the caller tests the acceptance window itself. The read is never cached, because a cached copy would report an accepted or rejected swap as still present. (#24)\n- A collection object carries `new_author_name` and `new_author_date`, the author swap as the API reports it. Both are `null` when no row exists, and an expired offer fills both, so neither field on its own says the offer can still be accepted. Both are optional because a 1.x server sends neither. (#24)\n- `AUTHOR_SWAP_TIME_DELTA` exports the contract's seven-day author-swap window in seconds. It is both the delay `createauswap` adds to a non-owner swap and the length of the window that follows the acceptance date, so a consumer computes an expiry from a named value. (#24)\n\n## What's new in 2.2.0\n\nReturns float attribute values as numbers when a decoder hands them over as strings.\n\n### Bug fixes\n\n- `convertAttributeMapToObject` returns a number for a `float32` or `float64` value that arrives as a string, and for the elements of a `FLOAT_VEC` or `DOUBLE_VEC`. A map objectified by `@wharfkit/antelope` carries those values as strings, so a consumer that passed one through published a string where the schema says a number; a `float32` rounds to the nearest float32 first, which is the chain value when the string kept full precision and the nearest float32 of a seven-decimal string otherwise. A string that does not read as a finite number, an empty string, and a string outside the range its type represents pass through unchanged. (#23)\n\n### Other changes\n\n- The README states the JSON type the helper returns for each attribute type: a number for `float` and `double` and their vectors, a decimal string for the 64-bit integers and their vectors, and the decoded value for everything else. (#23)\n\n## What's new in 2.1.1\n\nRejects a path segment that would send a read to the wrong route.\n\n### Bug fixes\n\n- An empty id, `.`, or `..` passed to an Explorer path method throws before the request goes out. Percent-encoding leaves a dot segment intact, so the URL parser collapsed it and pointed the read at a different route on the same origin, and an empty id turned a single-item lookup into the list route above it. The guard covers the sixteen methods that take an asset id, collection, schema, template, offer, or account name in the path, and none of the three values is ever a valid one. (#20)\n\n## What's new in 2.1.0\n\nValidates the builders' numeric parameters and deprecates native asset backing.\n\n### Breaking changes\n\n- Numeric parameters on `ActionBuilder` and `ActionGenerator` are checked against the ABI type of the field they fill and throw naming that field. A `NaN` or `Infinity` used to reach the action data as `null`, and a fractional or negative `max_supply` used to reach the chain intact. `template_id` still accepts `-1`, the contract's no-template sentinel, because the ABI type is signed. (#16)\n\n### Deprecations\n\n- `backasset` is deprecated on both the builder and the generator, and `mintasset` carries the same deprecation on its `tokens_to_back` parameter. AtomicAssets v2 disables native backing behind a `check()` guard, so both abort there while still executing on a chain that has not migrated. (#16)\n\n### Other changes\n\n- Value ranges the contract itself enforces stay unchecked, so no guard is stricter than the chain. (#16)\n- `transfer` names its first two parameters `from` and `to`, after the ABI fields they become. The parameters are positional, so no call changes. (#16)\n- Ten builders that target actions AtomicAssets v2 introduced, and the four that require the contract's own authority, are marked in the README. (#16)\n- The ESM build tree-shakes. Importing only `ActionBuilder` no longer drags in the base58 coder, the parser table, or the action-name map, taking a browser bundle that imports only the builder from 14,663 to 9,272 minified bytes. (#16)\n\n## What's new in 2.0.4\n\n### Bug fixes\n\n- The Explorer client percent-encodes caller-supplied path ids and custom data-filter keys, across the sixteen path-building methods and the query-string builder. An asset id, collection, schema, template, offer, or account name carrying `/`, `?`, `#`, `&`, or `=` used to escape its own segment and reshape the request, on the GET path and the long-query POST fallback alike. Hostile input now stays a value. (#14)\n\n### Other changes\n\n- Typed data filters travel as `data%3Anumber.field` rather than `data:number.field`. The API's query parser percent-decodes keys before matching, so the server sees the same key. The plain `data.field` form is unchanged. (#14)\n\n## What's new in 2.0.3\n\n### Bug fixes\n\n- Constructing `ExplorerApi` or `RpcApi` no longer starts a network request, and neither does the action generator that `ExplorerApi.action` resolves to. The contract config is fetched on first use, shared between concurrent callers, and refetched on the next use after a failure, so an outage while these clients are constructed cannot crash a Node process with an unhandled rejection or leave a client permanently stuck on a failed fetch. Retries are not rate limited by the SDK, so a caller polling through an outage owns its own backoff. (#13)\n\n### Other changes\n\n- `ExplorerApi.action` is now a read-only getter with the same `Promise` type. Assigning to it throws instead of silently overwriting, and it no longer appears in `Object.keys` or in a spread of the instance. Rejection values are unchanged, including `RpcApi`'s raw-string invalid config rejection. (#13)\n- The RPC row objects (`assets`, `templates`, `schemas`, `collections`, `offers`) are outside this change and still fetch eagerly when constructed. (#13)\n\n## What's new in 2.0.2\n\n### Breaking changes\n\n- The exported table row type `Templates2TableRow` is renamed `MutableTemplatesTableRow`, named for what the row carries (a template's mutable data) rather than the on-chain table suffix. The shape is unchanged, so only imports of the old name need updating. The old name is removed rather than aliased. `ad18bb0`\n\n## What's new in 2.0.1\n\nA documentation release that carries the reworked README to the npm package page, with no code changes.\n\n### Other changes\n\n- npm publishing runs through GitHub's trusted publisher rather than a stored token, so releases are tag-driven, environment-gated, and carry provenance with no long-lived publish secret. (#9)\n- The README leads with what the library is for and a zero-config quickstart, separates the choice between the indexed and RPC clients from the method reference, and leads the transaction section with `transfer` rather than `mintasset`. It states that the SDK builds actions and never signs or broadcasts. Both contract links now point at the maintained repositories rather than the archived ones. (#10)\n\n## What's new in 2.0.0\n\nPublishes the AtomicHub fork of `atomicassets-js` as `@atomichub/atomicassets`, updated for the v2 AtomicAssets contract.\n\n### Breaking changes\n\n- The package name is `@atomichub/atomicassets`. Install it under that name and change imports from `'atomicassets'`. (#1)\n- Deep imports such as `atomicassets/build/API/Explorer/Params` are replaced by root exports, for example `import { AssetsApiParams } from '@atomichub/atomicassets'`. (#1)\n- `max_supply` and `template_id` are numbers where the contract ABI defines them as numeric. The 64-bit id fields, asset ids and offer ids, remain strings. (#1)\n- `AttributeMap` entries are strictly typed as `{ key, value: [type, value] }`. Build them with `createAttributeMap` or `toAttributeMap` rather than by hand. Decoding also accepts `{first, second}`: no contract version emits that shape, but CDT 4.1 and newer abigen does for the pair struct before the release build patches it back to `key`/`value`. (#1)\n- Node.js 20 or newer is required. (#1)\n\n### Features\n\n- Zero runtime dependencies. Native `BigInt` replaces bn.js and the built-in `fetch` replaces node-fetch, and a custom `fetch` can still be injected. (#1)\n- Ships dual CJS and ESM output with bundled type declarations, plus a browser IIFE build. (#1)\n- Covers the v2 contract surface: schema-field media types (`setschematyp`) and mutable template data (`createtempl2`, `settempldata`). (#1)\n- Adds `ActionBuilder`, a synchronous builder, alongside the authorized `ActionGenerator`. (#1)\n- Exports typed table rows, action data payloads and action names from the package root. (#1)\n- Adds a serialization codec with strict bounds checking and explicit error classes. Codec output is byte-for-byte equivalent to the v1 big-integer implementation. (#1)\n- Explorer query-parameter, enum, and response-object types exported from the root, so no deep `build/` imports are needed. (#1)\n\n### Bug fixes\n\n- `IApiSchema` carries an optional `types` array, which `/v1/schemas` and `/v1/schemas/{collection}/{schema}` always send. Consumers of `getSchemas` and `getSchema` no longer cast past a type that denied the field existed. It is optional because a schema nested in another response never carries it, and a 1.x server does not send it at all. (#6)\n\n### Other changes\n\n- `sideEffects: false` in `package.json`, so consumers of this pure library get tree-shaking. (#5)\n- A root `NOTICE` file carries the Apache-2.0 attribution for the vendored IEEE 754 float parser, whose license header esbuild strips on the way into `build/`. It is added to the files whitelist, since npm does not include `NOTICE` by default. (#5)\n\n## Migrating from atomicassets 1.x\n\n- Package name: `npm install @atomichub/atomicassets` and change imports from `'atomicassets'` to `'@atomichub/atomicassets'`.\n- Deep imports such as `atomicassets/build/API/Explorer/Params` are replaced by root exports: `import { AssetsApiParams } from '@atomichub/atomicassets'`.\n- `max_supply` and `template_id` are numbers where the contract ABI defines them as numeric; 64-bit id fields (asset ids, offer ids) remain strings.\n- `AttributeMap` entries are strictly typed as `{ key, value: [type, value] }`; use `createAttributeMap` or `toAttributeMap` instead of hand-building entries. Decoding also accepts `{first, second}`, which is not a contract version's shape but what CDT 4.1 and newer abigen emits for the pair struct before the release build patches it back to `key`/`value`.\n- Node.js 20 or newer is required.\n\n## Credits and license\n\nFork of [atomicassets-js](https://github.com/pinknetworkx/atomicassets-js) by pink.network, updated for the v2 AtomicAssets contract; see [Contract versions](#contract-versions) for where each chain stands in the migration to it. Maintained by AtomicHub.\n\nThe market-side companion package is [@atomichub/atomicmarket](https://github.com/atomicassets/atomicmarket-sdk).\n\nMIT licensed; see [LICENSE](https://github.com/atomicassets/atomicassets-sdk/blob/main/LICENSE) for the full text including the original pink.network copyright.\n","readmeFilename":"README.md"}