{"_id":"@drm3labs-oss/provenance","_rev":"4-1ee23158646f4238a35e7a978d579721","name":"@drm3labs-oss/provenance","dist-tags":{"latest":"0.2.3"},"versions":{"0.2.0":{"name":"@drm3labs-oss/provenance","version":"0.2.0","license":"SEE LICENSE IN LICENSE","_id":"@drm3labs-oss/provenance@0.2.0","maintainers":[{"name":"drm3","email":"rob@drm3.io"}],"homepage":"https://github.com/robertjchristian/drm3-provenance#readme","bugs":{"url":"https://github.com/robertjchristian/drm3-provenance/issues"},"dist":{"shasum":"8240ce1be28c10516147852eabb6aa91cc603ccb","tarball":"https://registry.npmjs.org/@drm3labs-oss/provenance/-/provenance-0.2.0.tgz","fileCount":7,"integrity":"sha512-2etx2u1v0uq+K99XPTkUMLPmwVyIDTX78qwHYPPt8QekpFI9p4UEMdvgpmxyWoE1vwNAEx9HsYgGZ/offR7XZg==","signatures":[{"sig":"MEQCIGDvZr+uWakfo2sTM8UfG/yyVta+hEPl7dXwiIecRtucAiAu9ednSXMbbAU/TuP9CuRjXQygHDLg0i/5NGLL0GktiQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":760271},"main":"drm3_provenance.js","type":"module","types":"drm3_provenance.d.ts","gitHead":"d12608c2111ec7960451b729b8087863034689cc","_npmUser":{"name":"drm3","email":"rob@drm3.io"},"repository":{"url":"git+https://github.com/robertjchristian/drm3-provenance.git","type":"git"},"_npmVersion":"11.6.4","description":"DRM3 Provenance - JavaScript/TypeScript WASM bindings (Ed25519 receipts, chains, Merkle rollups)","directories":{},"sideEffects":["./snippets/*"],"_nodeVersion":"22.16.0","collaborators":["DRM3 <dev@drm3.io>"],"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/provenance_0.2.0_1783209713831_0.8593342111931457","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@drm3labs-oss/provenance","version":"0.2.1","keywords":["provenance","cryptography","ed25519","signing","attestation","receipts","merkle","wasm","morpheus"],"license":"MIT","_id":"@drm3labs-oss/provenance@0.2.1","maintainers":[{"name":"drm3","email":"rob@drm3.io"}],"homepage":"https://github.com/DRM3Labs-OSS/drm3-provenance#readme","bugs":{"url":"https://github.com/DRM3Labs-OSS/drm3-provenance/issues"},"dist":{"shasum":"30cd0af6a81411b643912dde89a50ddfba249404","tarball":"https://registry.npmjs.org/@drm3labs-oss/provenance/-/provenance-0.2.1.tgz","fileCount":7,"integrity":"sha512-rhqRFepFaKxsIo6BNL8QqhZSXijfdgh7SduRRBrh51+ayF2qEgSXLp36nMnUQenKDgICH/pd/+rgazGJAgBKzw==","signatures":[{"sig":"MEUCIQDFzu+MCAvfYMKp2iBrOxeBNmT6C/3kQJ6HUuy+GlNBxQIgO3VXQWSm5X+pAkI1/dicIvYT5/fNP1mg3eO3kTpbDNg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":759929},"main":"drm3_provenance.js","type":"module","types":"drm3_provenance.d.ts","gitHead":"d12608c2111ec7960451b729b8087863034689cc","_npmUser":{"name":"drm3","email":"rob@drm3.io"},"repository":{"url":"git+https://github.com/DRM3Labs-OSS/drm3-provenance.git","type":"git"},"_npmVersion":"11.6.4","description":"DRM3 Provenance - JavaScript/TypeScript WASM bindings (Ed25519 receipts, chains, Merkle rollups)","directories":{},"sideEffects":["./snippets/*"],"_nodeVersion":"22.16.0","collaborators":["DRM3 <dev@drm3.io>"],"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/provenance_0.2.1_1783258183067_0.7623314374794403","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@drm3labs-oss/provenance","version":"0.2.2","keywords":["drm3","provenance","cryptography","ed25519","signing","attestation","receipts","merkle","wasm"],"license":"MIT","_id":"@drm3labs-oss/provenance@0.2.2","maintainers":[{"name":"drm3","email":"rob@drm3.io"}],"homepage":"https://github.com/DRM3Labs-OSS/drm3-provenance#readme","bugs":{"url":"https://github.com/DRM3Labs-OSS/drm3-provenance/issues"},"dist":{"shasum":"8f199d8e738a7b2209b7386f943c4cea68fc7261","tarball":"https://registry.npmjs.org/@drm3labs-oss/provenance/-/provenance-0.2.2.tgz","fileCount":7,"integrity":"sha512-yJlVJujsZQ9GBqlzrYJ2b9qVaQ/aUCzuG7+Cm0nnBnW7fwQYWZtHjbbIdu8PTtWXTghvXLxvrFU2t9XRllvYVA==","signatures":[{"sig":"MEUCIBg3vSt+oJEscI4uMPXl5udh81GD284uCuD7DOM19D6wAiEApWKzd2WOSRpJoPeyiygKw4toskXuBZuNnUt4EgqO/q4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":759925},"main":"drm3_provenance.js","type":"module","types":"drm3_provenance.d.ts","gitHead":"3ef5c9c477ff9284e72c0656c245d54caed5bb8f","_npmUser":{"name":"drm3","email":"rob@drm3.io"},"repository":{"url":"git+https://github.com/DRM3Labs-OSS/drm3-provenance.git","type":"git"},"_npmVersion":"11.6.4","description":"DRM3 Provenance - JavaScript/TypeScript WASM bindings (Ed25519 receipts, chains, Merkle rollups)","directories":{},"sideEffects":["./snippets/*"],"_nodeVersion":"22.16.0","collaborators":["DRM3 <dev@drm3.io>"],"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/provenance_0.2.2_1783259357001_0.15084088472110335","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@drm3labs-oss/provenance","type":"module","collaborators":["DRM3 <dev@drm3.io>"],"description":"DRM3 Provenance - JavaScript/TypeScript WASM bindings (Ed25519 receipts, chains, Merkle rollups)","version":"0.2.3","license":"MIT","repository":{"type":"git","url":"git+https://github.com/DRM3Labs-OSS/drm3-provenance.git"},"main":"drm3_provenance.js","types":"drm3_provenance.d.ts","sideEffects":["./snippets/*"],"keywords":["drm3","provenance","cryptography","ed25519","signing","attestation","receipts","merkle","wasm"],"gitHead":"c4423d19d2777fffc3da82764e34122f26e82c6f","_id":"@drm3labs-oss/provenance@0.2.3","bugs":{"url":"https://github.com/DRM3Labs-OSS/drm3-provenance/issues"},"homepage":"https://github.com/DRM3Labs-OSS/drm3-provenance#readme","_nodeVersion":"22.16.0","_npmVersion":"11.6.4","dist":{"integrity":"sha512-0+UIVClStGuUZEseO5Btu/KMtFBec81bs9XgnOZ08Jfd9b6yBxUd2iAbgV1HOpqf9iGW1o0NqZiCck3k3r2neQ==","shasum":"f0d5cf7c97ee9e977013f4f1c1bbfeda1e4bb28e","tarball":"https://registry.npmjs.org/@drm3labs-oss/provenance/-/provenance-0.2.3.tgz","fileCount":7,"unpackedSize":760466,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDSM1qZR6ip1DVSty1X1OLYcLPNlvr0Um/KAsI5BEFOdwIgEgSPZnurNpEnXp382DNiaP/qRFM2+jeitenefk3zpvI="}]},"_npmUser":{"name":"drm3","email":"rob@drm3.io"},"directories":{},"maintainers":[{"name":"drm3","email":"rob@drm3.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/provenance_0.2.3_1783259635261_0.8255930988444364"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-05T00:01:53.500Z","modified":"2026-07-05T13:53:55.545Z","0.2.0":"2026-07-05T00:01:53.991Z","0.2.1":"2026-07-05T13:29:43.214Z","0.2.2":"2026-07-05T13:49:17.163Z","0.2.3":"2026-07-05T13:53:55.436Z"},"bugs":{"url":"https://github.com/DRM3Labs-OSS/drm3-provenance/issues"},"license":"MIT","homepage":"https://github.com/DRM3Labs-OSS/drm3-provenance#readme","keywords":["drm3","provenance","cryptography","ed25519","signing","attestation","receipts","merkle","wasm"],"repository":{"type":"git","url":"git+https://github.com/DRM3Labs-OSS/drm3-provenance.git"},"description":"DRM3 Provenance - JavaScript/TypeScript WASM bindings (Ed25519 receipts, chains, Merkle rollups)","maintainers":[{"name":"drm3","email":"rob@drm3.io"}],"readme":"# @drm3labs-oss/provenance\n\nCryptographic proof of work for the AI age. Ed25519 receipts, receipt chains, and Merkle rollups: sign any unit of work - an AI call, a data fetch, a pipeline step - and let anyone verify it with your public key.\n\nWebAssembly bindings (Cloudflare Workers, Node.js, browsers) over a Rust core.\n\n## Install\n\n```bash\nnpm install @drm3labs-oss/provenance\n```\n\n## Quick start\n\n```typescript\nimport { Keyring, Receipt, Chain } from '@drm3labs-oss/provenance';\n\n// One mnemonic derives as many keys as you need.\nconst keyring = Keyring.fromMnemonic(process.env.MY_MNEMONIC);\nconst keypair = keyring.derive('my-app/signer');   // any stable path string\n\n// Sign your work.\nconst receipt = Receipt.create('llm.chat')\n  .inputs({ model: 'qwen3-4b', prompt: 'Hello' })\n  .outputs({ response: 'Hi there!' })\n  .cost(0.003, 'usd', 'paid')\n  .sign(keypair);\n\n// Anyone with your public key can verify.\nreceipt.verify(); // true\n\n// Chain receipts and get a Merkle root for on-chain anchoring.\nconst chain = Chain.create().add(receipt1).add(receipt2).build();\nchain.merkleRoot(); // sha256:...\n```\n\n## API\n\n### Keyring\n\n```typescript\nconst keyring = Keyring.fromMnemonic(mnemonic);   // from a BIP39 mnemonic\nconst mnemonic = Keyring.generateMnemonic();      // or generate a fresh one\nconst keypair = keyring.derive('my-app/ingest');  // derive a keypair at any path\n```\n\n### Receipt\n\n```typescript\nconst receipt = Receipt.create('action.name')\n  .inputs(data)\n  .outputs(result)\n  .cost(amount, 'usd', 'paid')\n  .durationMs(100)\n  .sign(keypair);\n\nreceipt.verify();               // boolean\nconst json = receipt.toJson();  // serialize\nReceipt.fromJson(json);         // restore\n```\n\n### Chain\n\n```typescript\nconst chain = Chain.create().add(receipt1).add(receipt2).build();\nchain.verify();                 // verify every receipt + linkage\nchain.merkleRoot();             // sha256:...\nconst proof = chain.merkleProof(0);\nproof.verify(receipt1.hash(), chain.merkleRoot());\n```\n\n## Derivation paths\n\nA path is any stable string naming a signing role in your system. One mnemonic\nderives a distinct, deterministic keypair per path, so each service, stage, or\nenvironment gets its own key from a single secret:\n\n```typescript\nkeyring.derive('my-app/signer');   // your app's main signer\nkeyring.derive('my-app/ingest');   // a separate key for a data-ingest stage\nkeyring.derive('worker/prod');     // per-environment keys\n```\n\nKeep the mnemonic server-side (a secret env var). Publish only the public keys\nso others can verify your receipts independently.\n\n## Cloudflare Workers\n\nThis package is the `pkg-web` build - it exports `initSync`. Add a CompiledWasm\nrule to `wrangler.toml`, then initialize once before use:\n\n```typescript\nimport wasmModule from './drm3_provenance_bg.wasm';\nimport { initSync, Keyring, Receipt, verify } from './drm3_provenance.js';\n\ninitSync({ module: wasmModule }); // call once before anything else\n```\n\n## License\n\nMIT. This package is the compiled WebAssembly binary and its JavaScript/TypeScript\nbindings - use it freely. The Rust source of the provenance protocol is\nproprietary and is not distributed. Closed source, open binary.\n","readmeFilename":"README.md"}