{"_id":"@andamio/core","_rev":"6-cdc867ea8251a3be080dcbe540c7b14d","name":"@andamio/core","dist-tags":{"latest":"0.4.0"},"versions":{"0.1.0":{"name":"@andamio/core","version":"0.1.0","keywords":["andamio","cardano","plutus","blake2b","hashing"],"license":"Apache-2.0","_id":"@andamio/core@0.1.0","maintainers":[{"name":"james-andamio","email":"james@andamio.io"},{"name":"nelsonksh","email":"nelsonksh@gimbalabs.io"}],"homepage":"https://github.com/Andamio-Platform/andamio-core#readme","bugs":{"url":"https://github.com/Andamio-Platform/andamio-core/issues"},"dist":{"shasum":"1e58435afca247bb70623f056e099b0cb4c19284","tarball":"https://registry.npmjs.org/@andamio/core/-/core-0.1.0.tgz","fileCount":29,"integrity":"sha512-OREARTbZZVoepKaHKD6QXJwgYO8Mc3D3ZMt/1vchClsM1QOH4giyqQvXvIIdj3z6+dtolfoortefRGBGelW3jg==","signatures":[{"sig":"MEUCIGmox7ggcTWTdo9xmhybYc3lQq+Wyz4Mg+r30SJk++xwAiEA6QoQ+R6wpVf4+XJgidd5X9c/FfUQAiK6s5q/WFnaPXk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":283452},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./hashing":{"types":"./dist/utils/hashing/index.d.ts","import":"./dist/utils/hashing/index.mjs","require":"./dist/utils/hashing/index.js"},"./constants":{"types":"./dist/constants/index.d.ts","import":"./dist/constants/index.mjs","require":"./dist/constants/index.js"}},"gitHead":"f087d51ab337befbbbed915319dab265d675cde0","scripts":{"dev":"tsup --watch","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"james-andamio","email":"james@andamio.io"},"repository":{"url":"git+https://github.com/Andamio-Platform/andamio-core.git","type":"git"},"_npmVersion":"10.9.2","description":"Core utilities and constants for Andamio protocol - zero React dependencies","directories":{},"_nodeVersion":"23.5.0","dependencies":{"blakejs":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0_1769626444417_0.5192045934652345","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@andamio/core","version":"0.1.1","keywords":["andamio","cardano","plutus","blake2b","hashing"],"license":"Apache-2.0","_id":"@andamio/core@0.1.1","maintainers":[{"name":"james-andamio","email":"james@andamio.io"},{"name":"nelsonksh","email":"nelsonksh@gimbalabs.io"}],"homepage":"https://github.com/Andamio-Platform/andamio-core#readme","bugs":{"url":"https://github.com/Andamio-Platform/andamio-core/issues"},"dist":{"shasum":"cfe24707d45277fa2143fe4c417e75ed0de9dd1b","tarball":"https://registry.npmjs.org/@andamio/core/-/core-0.1.1.tgz","fileCount":30,"integrity":"sha512-Ib4gcVjFWqXwefwFwv9ofhtSE4+5C1TCe+a6IvGHZMxOr2TjNhfz7hRO6DQDU0PDHyxg7F5oZ8hdLzJhVcEmdg==","signatures":[{"sig":"MEYCIQD3Zld3yttdiZFaJ1dFezvCQ8yzm11EYGHwQTv4uTIIGQIhAMEJ7AEzZaCadD07mOMDtscNq5KKtMJ+iMSf7B4ohUNw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":283196},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./hashing":{"types":"./dist/utils/hashing/index.d.ts","import":"./dist/utils/hashing/index.mjs","require":"./dist/utils/hashing/index.js"},"./constants":{"types":"./dist/constants/index.d.ts","import":"./dist/constants/index.mjs","require":"./dist/constants/index.js"}},"gitHead":"370068eec522738587931eb6b0c309bae7bf46c9","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"james-andamio","email":"james@andamio.io"},"repository":{"url":"git+https://github.com/Andamio-Platform/andamio-core.git","type":"git"},"_npmVersion":"10.9.2","description":"Core utilities and constants for Andamio protocol - zero React dependencies","directories":{},"_nodeVersion":"23.5.0","dependencies":{"blakejs":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^3.2.4","typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.1_1769717506208_0.36392579854597273","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@andamio/core","version":"0.2.0","keywords":["andamio","cardano","plutus","blake2b","hashing"],"license":"Apache-2.0","_id":"@andamio/core@0.2.0","maintainers":[{"name":"james-andamio","email":"james@andamio.io"},{"name":"nelsonksh","email":"nelsonksh@gimbalabs.io"}],"homepage":"https://github.com/Andamio-Platform/andamio-core#readme","bugs":{"url":"https://github.com/Andamio-Platform/andamio-core/issues"},"dist":{"shasum":"258831cc644a2d05de3da53f87c03795cbda8f5e","tarball":"https://registry.npmjs.org/@andamio/core/-/core-0.2.0.tgz","fileCount":31,"integrity":"sha512-6lSs6Ap6txyjGzx5Tey5Ora0H3ag0q3WwvZtV62iWgd9lbYDonvkcEyAqxBnIRYFH0PM0ivnw9XZnfHK8aOLYQ==","signatures":[{"sig":"MEQCIEOzqMsqvh+exgp5iCeZ4lfqJFzXWt4O+s+2+ReD6ciWAiBdB0K79WewBKF4AdQM2sU3A+aOWpVwUPAEHxgEXDP/4w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":283879},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./hashing":{"types":"./dist/utils/hashing/index.d.ts","import":"./dist/utils/hashing/index.mjs","require":"./dist/utils/hashing/index.js"},"./constants":{"types":"./dist/constants/index.d.ts","import":"./dist/constants/index.mjs","require":"./dist/constants/index.js"}},"gitHead":"6cb6f171c146f4ec42490f9135a07558900ec240","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"james-andamio","email":"james@andamio.io"},"repository":{"url":"git+https://github.com/Andamio-Platform/andamio-core.git","type":"git"},"_npmVersion":"10.9.2","description":"Core utilities and constants for Andamio protocol - zero React dependencies","directories":{},"_nodeVersion":"23.5.0","dependencies":{"blakejs":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^3.2.4","typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0_1772141189172_0.40777067274945167","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@andamio/core","version":"0.3.0","keywords":["andamio","cardano","plutus","blake2b","hashing"],"license":"Apache-2.0","_id":"@andamio/core@0.3.0","maintainers":[{"name":"james-andamio","email":"james@andamio.io"},{"name":"nelsonksh","email":"nelsonksh@gimbalabs.io"}],"homepage":"https://github.com/Andamio-Platform/andamio-core#readme","bugs":{"url":"https://github.com/Andamio-Platform/andamio-core/issues"},"dist":{"shasum":"0bde27f9074cf5a9b0a06115dc8fa2b268e49d1b","tarball":"https://registry.npmjs.org/@andamio/core/-/core-0.3.0.tgz","fileCount":31,"integrity":"sha512-BhyrPaKnp+gKqsAmDfzWQBjhTTLFfLJZtqw4zvaxsZN2TWjG5OTFtBkKkhP/RmDN3K1c7da1MDTDlx0pI5q8/w==","signatures":[{"sig":"MEQCIHDEdQ1IWEwXG0QHQhhnXjxCb1FsPISY6wooqckZm1slAiAWQyrl1FPH1akZEuUqGGTk8F6/sNYZ9fYeqkIz8g8HWA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":311938},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./hashing":{"types":"./dist/utils/hashing/index.d.ts","import":"./dist/utils/hashing/index.mjs","require":"./dist/utils/hashing/index.js"},"./constants":{"types":"./dist/constants/index.d.ts","import":"./dist/constants/index.mjs","require":"./dist/constants/index.js"}},"gitHead":"635893c9cd945a74d503c8ad5524720c011f25fc","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"james-andamio","email":"james@andamio.io"},"repository":{"url":"git+https://github.com/Andamio-Platform/andamio-core.git","type":"git"},"_npmVersion":"10.9.2","description":"Core utilities and constants for Andamio protocol - zero React dependencies","directories":{},"_nodeVersion":"23.5.0","dependencies":{"blakejs":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^3.2.4","typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.3.0_1772806150184_0.9628486023329235","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@andamio/core","version":"0.3.1","keywords":["andamio","cardano","plutus","blake2b","hashing"],"license":"Apache-2.0","_id":"@andamio/core@0.3.1","maintainers":[{"name":"james-andamio","email":"james@andamio.io"},{"name":"nelsonksh","email":"nelsonksh@gimbalabs.io"}],"homepage":"https://github.com/Andamio-Platform/andamio-core#readme","bugs":{"url":"https://github.com/Andamio-Platform/andamio-core/issues"},"dist":{"shasum":"1a145375ea53e0df1a718173244fdf0f2520b28b","tarball":"https://registry.npmjs.org/@andamio/core/-/core-0.3.1.tgz","fileCount":31,"integrity":"sha512-MxtgMXZxohO/nLjnVDqASO2mv/3KAUEglxMlgPImDS2wyQYON9EYLpp/dbXWVDDO0xBR73hDkQZ8GmXDfNKPVg==","signatures":[{"sig":"MEUCIFmpIhk6kZECppG7OmjJyQvhAn0Q/B6sGs+PbfUfy9HmAiEA7pQrHJPAwShRpv6vwOsN0gzJ9ZqRguIMpZP4h0DNAB8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":328939},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./hashing":{"types":"./dist/utils/hashing/index.d.ts","import":"./dist/utils/hashing/index.mjs","require":"./dist/utils/hashing/index.js"},"./constants":{"types":"./dist/constants/index.d.ts","import":"./dist/constants/index.mjs","require":"./dist/constants/index.js"}},"gitHead":"eb1243e9684c16b9ff698558779d31c41bd859ff","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"james-andamio","email":"james@andamio.io"},"repository":{"url":"git+https://github.com/Andamio-Platform/andamio-core.git","type":"git"},"_npmVersion":"11.11.0","description":"Core utilities and constants for Andamio protocol - zero React dependencies","directories":{},"_nodeVersion":"25.8.0","dependencies":{"blakejs":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^3.2.4","typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.3.1_1778145850460_0.710397546691597","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@andamio/core","version":"0.4.0","description":"Core utilities and constants for Andamio protocol - zero React dependencies","main":"./dist/index.js","module":"./dist/index.mjs","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./hashing":{"types":"./dist/utils/hashing/index.d.ts","import":"./dist/utils/hashing/index.mjs","require":"./dist/utils/hashing/index.js"},"./constants":{"types":"./dist/constants/index.d.ts","import":"./dist/constants/index.mjs","require":"./dist/constants/index.js"}},"scripts":{"test":"vitest run","build":"tsup","dev":"tsup --watch","typecheck":"tsc --noEmit","clean":"rm -rf dist","prepublishOnly":"npm run build"},"dependencies":{"blakejs":"^1.2.1"},"devDependencies":{"tsup":"^8.0.0","typescript":"^5.3.0","vitest":"^3.2.4"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/Andamio-Platform/andamio-core.git"},"keywords":["andamio","cardano","plutus","blake2b","hashing"],"license":"Apache-2.0","gitHead":"d526dc65c54249ef12c62da52ef77e32fce7f2eb","_id":"@andamio/core@0.4.0","bugs":{"url":"https://github.com/Andamio-Platform/andamio-core/issues"},"homepage":"https://github.com/Andamio-Platform/andamio-core#readme","_nodeVersion":"24.16.0","_npmVersion":"11.13.0","dist":{"integrity":"sha512-zob+jifmiz/ML6/ZEqD34GLjl+q9hFArlE7CzTvrt/8g8CXZd3H/4fZlolqb8bKw5avTSeNEX3sLLCcZFnFGTQ==","shasum":"170ec4f195f7aae4a8b4cc2199a2d71267ad17cf","tarball":"https://registry.npmjs.org/@andamio/core/-/core-0.4.0.tgz","fileCount":33,"unpackedSize":432285,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIGOwpS3B3x/axaWucPCOsljfk4ezAHQC6HNSj61cLGILAiA0jGFPK2YJsekC3pN+hG4rxllZPWWIkB2lH7WdaJ7+tQ=="}]},"_npmUser":{"name":"james-andamio","email":"james@andamio.io"},"directories":{},"maintainers":[{"name":"james-andamio","email":"james@andamio.io"},{"name":"nelsonksh","email":"nelsonksh@gimbalabs.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/core_0.4.0_1785929909106_0.9048629989013064"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-28T18:54:04.308Z","modified":"2026-08-05T11:38:29.488Z","0.1.0":"2026-01-28T18:54:04.601Z","0.1.1":"2026-01-29T20:11:46.376Z","0.2.0":"2026-02-26T21:26:29.328Z","0.3.0":"2026-03-06T14:09:10.338Z","0.3.1":"2026-05-07T09:24:10.713Z","0.4.0":"2026-08-05T11:38:29.264Z"},"bugs":{"url":"https://github.com/Andamio-Platform/andamio-core/issues"},"license":"Apache-2.0","homepage":"https://github.com/Andamio-Platform/andamio-core#readme","keywords":["andamio","cardano","plutus","blake2b","hashing"],"repository":{"type":"git","url":"git+https://github.com/Andamio-Platform/andamio-core.git"},"description":"Core utilities and constants for Andamio protocol - zero React dependencies","maintainers":[{"name":"james-andamio","email":"james@andamio.io"},{"name":"nelsonksh","email":"nelsonksh@gimbalabs.io"}],"readme":"# @andamio/core\n\nCore utilities and constants for the Andamio protocol. Zero React dependencies - can be used in any JavaScript/TypeScript environment.\n\n## Installation\n\n```bash\nnpm install @andamio/core\n```\n\n## Usage\n\n### Hashing Utilities\n\n```typescript\nimport {\n  computeSltHash,\n  computeTaskHash,\n  computeCommitmentHash,\n} from \"@andamio/core/hashing\";\n\n// SLT (Student Learning Target) hashing\nconst sltHash = computeSltHash([\"SLT 1.1: ...\", \"SLT 1.2: ...\"]);\n\n// Task hashing (for project tasks)\nconst taskHash = computeTaskHash({\n  project_content: \"Write the docs\",\n  expiration_time: 1754350000000n,\n  lovelace_amount: 5000000n,\n  native_assets: [],\n});\n\n// Commitment/Assignment evidence hashing (canonical-v1)\nconst commitmentHash = computeCommitmentHash({\n  type: \"doc\",\n  content: [{ type: \"paragraph\", content: [{ type: \"text\", text: \"Evidence\" }] }],\n});\n```\n\n#### Canonical evidence hash (canonical-v1)\n\n`computeCommitmentHash` is the canonical evidence hasher, frozen as **canonical-v1** — any behavioral change is a new version, never an edit. The full algorithm specification, cross-implementation golden vectors, and the legacy-v0 appendix live in [`docs/specs/commitment-hash-v1.md`](docs/specs/commitment-hash-v1.md).\n\n`verifyCommitmentHash(evidence, expectedHash)` is the one supported verifier (case-insensitive, never throws). For rows that may predate canonical-v1, `verifyEvidenceAgainstEras(evidence, onChainHash)` tries v1 then the deprecated `legacyHashV0` and reports which algorithm matched.\n\n### Constants\n\n```typescript\nimport {\n  POLICY_IDS,\n  getTxExplorerUrl,\n  getAddressExplorerUrl,\n} from \"@andamio/core/constants\";\n\n// Get policy IDs for a network\nconst policyIds = POLICY_IDS.preprod;\nconsole.log(policyIds.accessToken);\n\n// Generate explorer URLs\nconst txUrl = getTxExplorerUrl(\"preprod\", \"abc123...\");\nconst addrUrl = getAddressExplorerUrl(\"preprod\", \"addr_test1...\");\n```\n\n## API Reference\n\n### Hashing Functions\n\n| Function | Description |\n|----------|-------------|\n| `computeSltHash(slts)` | Compute SLT token name hash from an array of SLT strings |\n| `computeSltHashDefinite(slts)` | Alias of `computeSltHash` |\n| `verifySltHash(slts, expectedHash)` | Verify an SLT hash matches inputs |\n| `computeTaskHash(taskData)` | Compute project task hash |\n| `verifyTaskHash(taskData, expectedHash)` | Verify a task hash matches inputs |\n| `computeCommitmentHash(evidence)` | Compute canonical-v1 hash of Tiptap JSON evidence ([spec](docs/specs/commitment-hash-v1.md)) |\n| `verifyCommitmentHash(evidence, expectedHash)` | The supported evidence verifier — case-insensitive, never throws |\n| `verifyEvidenceDetailed(evidence, onChainHash)` | Detailed verification result with both hashes and a message |\n| `verifyEvidenceAgainstEras(evidence, onChainHash)` | Era-aware verify: tries canonical-v1, then legacy v0 |\n| `legacyHashV0(evidence)` | Deprecated pre-canonical hasher (no trimming) — era-aware verification only |\n| `isValidCommitmentHash(hash)` | Validate 64-hex commitment hash format |\n\n### Constants\n\n| Export | Description |\n|--------|-------------|\n| `POLICY_IDS` | Policy IDs by network (preprod, preview, mainnet) |\n| `EXPLORER_URLS` | Block explorer base URLs |\n| `getTxExplorerUrl(network, txHash)` | Get transaction explorer URL |\n| `getAddressExplorerUrl(network, address)` | Get address explorer URL |\n| `getAssetExplorerUrl(network, policyId, assetName)` | Get asset explorer URL |\n\n## License\n\nApache-2.0\n","readmeFilename":"README.md"}