{"_id":"@absolutejs/onchain","_rev":"6-1951cecd78456c1a9a101b110fe03f11","name":"@absolutejs/onchain","dist-tags":{"latest":"0.1.2"},"versions":{"0.0.1":{"name":"@absolutejs/onchain","version":"0.0.1","keywords":["absolutejs","blockchain","onchain","nft","soulbound","provenance","collectibles"],"license":"BSL-1.1","_id":"@absolutejs/onchain@0.0.1","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"dist":{"shasum":"de5de01c0484c71320aef1f6061ef1fd0ccf24d9","tarball":"https://registry.npmjs.org/@absolutejs/onchain/-/onchain-0.0.1.tgz","fileCount":7,"integrity":"sha512-IMJ0b72nFwFhb/XjwQe/77VzUWMtKffIRySK8IYHxOc+7AkzlZQT/p2OJXiPct6Cn89Easlw8QLd71IBpDJ2ww==","signatures":[{"sig":"MEUCIC5DZ80dVOzePf63opFN9dv5JtS0M/4UbMzqNxWv91/4AiEAhmoK56CUZTZmq2mH2glDzo+/rd3K/q0TRDNfjsMDnMg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16511},"type":"module","shasum":"de5de01c0484c71320aef1f6061ef1fd0ccf24d9","exports":{".":"./src/index.ts","./adapter-kit":"./src/adapter-kit/index.ts"},"scripts":{"test":"bun test"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"_integrity":"sha512-IMJ0b72nFwFhb/XjwQe/77VzUWMtKffIRySK8IYHxOc+7AkzlZQT/p2OJXiPct6Cn89Easlw8QLd71IBpDJ2ww==","_npmVersion":"10.8.3","description":"Tasteful, optional on-chain provenance for AbsoluteJS apps: earn → gasless, soulbound, seed-is-asset collectibles with real editions. Provider-agnostic; ships a working local adapter, real chains via @absolutejs/onchain-adapters.","directories":{},"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/onchain_0.0.1_1780071715889_0.9879238306586389","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@absolutejs/onchain","version":"0.0.2","keywords":["absolutejs","blockchain","onchain","nft","soulbound","provenance","collectibles"],"license":"BSL-1.1","_id":"@absolutejs/onchain@0.0.2","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/onchain","bugs":{"url":"https://github.com/absolutejs/onchain/issues"},"dist":{"shasum":"19abb685b69db9cee2f0c98a82acca9f5316465c","tarball":"https://registry.npmjs.org/@absolutejs/onchain/-/onchain-0.0.2.tgz","fileCount":11,"integrity":"sha512-o6j96CDnmk1DKngoTTe1Y+JI5e08/c7HQ9V+/hdOyu+jQItBwBUfcWsLomnynIfSufnDxIQe3t4FbJXUW80P4A==","signatures":[{"sig":"MEQCIDHIlJtKuGnxDGo4mz5EOBn9aunstAu1LOYgYVrgJfk2AiBRWkDPM3El3gedeXI1pQIr+wd5JQh6wbenymPbR4vOhQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23109},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./adapter-kit":{"types":"./dist/adapter-kit/index.d.ts","import":"./dist/adapter-kit/index.js","default":"./dist/adapter-kit/index.js"}},"gitHead":"e468c3215f446a04da44a55d41e1ff2c5d80492d","scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts src/adapter-kit/index.ts --outdir dist --sourcemap --target=bun && tsc --project tsconfig.build.json","typecheck":"tsc --noEmit"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"_npmVersion":"10.9.2","description":"Tasteful, optional on-chain provenance for AbsoluteJS apps: earn → gasless, soulbound, seed-is-asset collectibles with real editions. Provider-agnostic; ships a working local adapter, real chains via @absolutejs/onchain-adapters.","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14","typescript":"^5.9.0"},"_npmOperationalInternal":{"tmp":"tmp/onchain_0.0.2_1781596706518_0.23972280047416628","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@absolutejs/onchain","version":"0.0.3","keywords":["absolutejs","blockchain","onchain","nft","soulbound","provenance","collectibles"],"license":"BSL-1.1","_id":"@absolutejs/onchain@0.0.3","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/onchain","bugs":{"url":"https://github.com/absolutejs/onchain/issues"},"dist":{"shasum":"a8fec077e09a33673ffc5239cbe172192c8d3d6e","tarball":"https://registry.npmjs.org/@absolutejs/onchain/-/onchain-0.0.3.tgz","fileCount":15,"integrity":"sha512-J3PkENXjk2Ol2bbWZN66UHao3D/3ldOauXQKxI8p5Z2rpQJnk+udoFAvcL21WLBXhQwHuQXG47T87NeVGlVtkw==","signatures":[{"sig":"MEYCIQDUoP1wOSD5LuJSJGsE/v1Gecv11I3CQGEBB7SdbcRuTQIhAPAAqwbn0yJuWPqjlS4/HljGK/+0VrySHi28QW4UxFXV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1118997},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"a8fec077e09a33673ffc5239cbe172192c8d3d6e","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./manifest":{"types":"./dist/manifest.d.ts","import":"./dist/manifest.js","default":"./dist/manifest.js"},"./adapter-kit":{"types":"./dist/adapter-kit/index.d.ts","import":"./dist/adapter-kit/index.js","default":"./dist/adapter-kit/index.js"},"./manifest.json":"./dist/manifest.json"},"scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts src/adapter-kit/index.ts src/manifest.ts --root ./src --outdir dist --sourcemap --target=bun && tsc --project tsconfig.build.json && absolute-manifest emit","typecheck":"tsc --noEmit"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"_integrity":"sha512-J3PkENXjk2Ol2bbWZN66UHao3D/3ldOauXQKxI8p5Z2rpQJnk+udoFAvcL21WLBXhQwHuQXG47T87NeVGlVtkw==","absolutejs":{"manifestContract":1},"_npmVersion":"10.8.3","description":"Tasteful, optional on-chain provenance for AbsoluteJS apps: earn → gasless, soulbound, seed-is-asset collectibles with real editions. Provider-agnostic; ships a working local adapter, real chains via @absolutejs/onchain-adapters.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@sinclair/typebox":"^0.34.0","@absolutejs/manifest":"^0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14","typescript":"^5.9.0"},"_npmOperationalInternal":{"tmp":"tmp/onchain_0.0.3_1783964137258_0.9237572372322602","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@absolutejs/onchain","version":"0.1.0","keywords":["absolutejs","blockchain","onchain","nft","soulbound","provenance","collectibles"],"license":"BSL-1.1","_id":"@absolutejs/onchain@0.1.0","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/onchain","bugs":{"url":"https://github.com/absolutejs/onchain/issues"},"dist":{"shasum":"0bf28becab8940169ef65f3e753364fee3ac4200","tarball":"https://registry.npmjs.org/@absolutejs/onchain/-/onchain-0.1.0.tgz","fileCount":15,"integrity":"sha512-4qY7+cYEqpedCqxsm/KnJ8YiahTUuPAlvMdiOycvsakv/YVY8qaOvmHDzM6Xp9vN+48F10QN81xHDRskKzgiEg==","signatures":[{"sig":"MEQCIGYJFpC26aDzOs7VcsYoPUqnUiGL6s901xIrIAVgCiBTAiAbivhhMXGkIemO4PZsgewkiSperMZHGocW5rq00PDPgQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1128015},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"0bf28becab8940169ef65f3e753364fee3ac4200","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./manifest":{"types":"./dist/manifest.d.ts","import":"./dist/manifest.js","default":"./dist/manifest.js"},"./adapter-kit":{"types":"./dist/adapter-kit/index.d.ts","import":"./dist/adapter-kit/index.js","default":"./dist/adapter-kit/index.js"},"./manifest.json":"./dist/manifest.json"},"scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts src/adapter-kit/index.ts src/manifest.ts --root ./src --outdir dist --sourcemap --target=bun && tsc --project tsconfig.build.json && absolute-manifest emit","typecheck":"tsc --noEmit"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"_integrity":"sha512-4qY7+cYEqpedCqxsm/KnJ8YiahTUuPAlvMdiOycvsakv/YVY8qaOvmHDzM6Xp9vN+48F10QN81xHDRskKzgiEg==","absolutejs":{"manifestContract":1},"_npmVersion":"10.8.3","description":"Gasless collectible provenance for AbsoluteJS apps: attested minting, literal editions, immutable origin ownership, and marketplace-controlled transfers.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@sinclair/typebox":"^0.34.0","@absolutejs/manifest":"^0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14","typescript":"^5.9.0"},"_npmOperationalInternal":{"tmp":"tmp/onchain_0.1.0_1784087426149_0.33758281631395093","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@absolutejs/onchain","version":"0.1.1","keywords":["absolutejs","blockchain","onchain","nft","soulbound","provenance","collectibles"],"license":"BSL-1.1","_id":"@absolutejs/onchain@0.1.1","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/onchain","bugs":{"url":"https://github.com/absolutejs/onchain/issues"},"dist":{"shasum":"3866117dc43963a0897e02a5a8a404c06957f721","tarball":"https://registry.npmjs.org/@absolutejs/onchain/-/onchain-0.1.1.tgz","fileCount":15,"integrity":"sha512-/kY9mJCOTp/aA2lv1VMjPnqzveN7wJCgxCJguXooY5wb8DxQjktHX5pY0lhKPXGTII3xH/4y9K1/4AY+hleISQ==","signatures":[{"sig":"MEYCIQCWBSTuvb+bnXlgTalRYX0yWhgAlHz9o+dgwR66I4K5XgIhAKXpXQb/o7Tae/Tx0ZSeFT4+Y+kBykDmHko6HvJpZccO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1132913},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"3866117dc43963a0897e02a5a8a404c06957f721","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./manifest":{"types":"./dist/manifest.d.ts","import":"./dist/manifest.js","default":"./dist/manifest.js"},"./adapter-kit":{"types":"./dist/adapter-kit/index.d.ts","import":"./dist/adapter-kit/index.js","default":"./dist/adapter-kit/index.js"},"./manifest.json":"./dist/manifest.json"},"scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts src/adapter-kit/index.ts src/manifest.ts --root ./src --outdir dist --sourcemap --target=bun && tsc --project tsconfig.build.json && absolute-manifest emit","typecheck":"tsc --noEmit"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"_integrity":"sha512-/kY9mJCOTp/aA2lv1VMjPnqzveN7wJCgxCJguXooY5wb8DxQjktHX5pY0lhKPXGTII3xH/4y9K1/4AY+hleISQ==","absolutejs":{"manifestContract":1},"_npmVersion":"10.8.3","description":"Gasless collectible provenance for AbsoluteJS apps: attested minting, literal editions, immutable origin ownership, and marketplace-controlled transfers.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@sinclair/typebox":"^0.34.0","@absolutejs/manifest":"^0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14","typescript":"^5.9.0"},"_npmOperationalInternal":{"tmp":"tmp/onchain_0.1.1_1784088220380_0.13962557949363852","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@absolutejs/onchain","version":"0.1.2","homepage":"https://github.com/absolutejs/onchain","bugs":{"url":"https://github.com/absolutejs/onchain/issues"},"description":"Gasless collectible provenance for AbsoluteJS apps: attested minting, literal editions, immutable origin ownership, and marketplace-controlled transfers.","type":"module","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./adapter-kit":{"types":"./dist/adapter-kit/index.d.ts","import":"./dist/adapter-kit/index.js","default":"./dist/adapter-kit/index.js"},"./manifest":{"types":"./dist/manifest.d.ts","import":"./dist/manifest.js","default":"./dist/manifest.js"},"./manifest.json":"./dist/manifest.json"},"scripts":{"build":"rm -rf dist && bun build src/index.ts src/adapter-kit/index.ts src/manifest.ts --root ./src --outdir dist --sourcemap --target=bun && tsc --project tsconfig.build.json && absolute-manifest emit","typecheck":"tsc --noEmit","test":"bun test"},"keywords":["absolutejs","blockchain","onchain","nft","soulbound","provenance","collectibles"],"license":"BSL-1.1","devDependencies":{"@types/bun":"^1.3.14","typescript":"^5.9.0"},"dependencies":{"@absolutejs/manifest":"^0.4.0","@sinclair/typebox":"^0.34.0"},"absolutejs":{"manifestContract":2},"_id":"@absolutejs/onchain@0.1.2","_integrity":"sha512-uJyJIEm0GW4HGLarzMjbiQYAu/DPTnS6pblCjUErnqiQys08Y0OTiMRFIFlpMqAA6LOEi0NsloAOnhxi+miigg==","_nodeVersion":"24.3.0","_npmVersion":"10.8.3","shasum":"ae059f9708bea30d456bce73833e64b9f17186b3","dist":{"integrity":"sha512-uJyJIEm0GW4HGLarzMjbiQYAu/DPTnS6pblCjUErnqiQys08Y0OTiMRFIFlpMqAA6LOEi0NsloAOnhxi+miigg==","shasum":"ae059f9708bea30d456bce73833e64b9f17186b3","tarball":"https://registry.npmjs.org/@absolutejs/onchain/-/onchain-0.1.2.tgz","fileCount":15,"unpackedSize":1160020,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIGz4BhTzhmB9o1mgPjVA5OcVP5kgom2GloulJus7X3Q2AiEAhPDJ3gB82yQ54EVZYlgTQUT4LtwMENuCNkicg2dsvTg="}]},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"directories":{},"maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/onchain_0.1.2_1784846188754_0.2926117190932995"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-29T16:21:55.691Z","modified":"2026-07-23T22:36:29.159Z","0.0.1":"2026-05-29T16:21:56.028Z","0.0.2":"2026-06-16T07:58:26.652Z","0.0.3":"2026-07-13T17:35:37.439Z","0.1.0":"2026-07-15T03:50:26.370Z","0.1.1":"2026-07-15T04:03:40.621Z","0.1.2":"2026-07-23T22:36:28.931Z"},"bugs":{"url":"https://github.com/absolutejs/onchain/issues"},"license":"BSL-1.1","homepage":"https://github.com/absolutejs/onchain","keywords":["absolutejs","blockchain","onchain","nft","soulbound","provenance","collectibles"],"description":"Gasless collectible provenance for AbsoluteJS apps: attested minting, literal editions, immutable origin ownership, and marketplace-controlled transfers.","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"readme":"# @absolutejs/onchain\n\nTasteful, **optional** on-chain provenance for AbsoluteJS apps. Let users **earn**\ngasless, **seed-is-asset** collectibles with **real editions**, immutable origin ownership,\nand auditable application-controlled sale, trade, gift, and recovery transfers.\n\nProvider-agnostic: swap adapters for any chain/wallet/randomness. Ships a **working local\nadapter** so it runs with zero setup; real chains live in `@absolutejs/onchain-adapters`.\n\n## Principles (the whole point)\n\n- **The seed is the asset.** Items are deterministic functions of a seed — tiny to store,\n  re-derivable forever by anyone. The on-chain record is just the seed.\n- **Earned origin never changes.** `originOwner` and the mint event survive every transfer.\n- **Transferability is explicit.** Badges stay soulbound; market items opt in at mint.\n- **Gasless + walletless.** Users never touch crypto (embedded wallet + paymaster).\n- **Real editions, literal numbers.** `edition()` returns `\"1 of 1\"` or `\"#3 of 50\"` —\n  never a probability. (A \"≈ 1 in N\" generator preview is *not* ownership.)\n- **Un-forgeable.** A mint requires an `Attestation` bound to an **externally verifiable\n  fact** (e.g. a real GitHub commit). No fact, no token — the operator can't conjure one.\n\n## Quick start (local adapter, no setup)\n\n```ts\nimport { createOnchain, edition, localAdapter } from \"@absolutejs/onchain\";\n\nconst onchain = createOnchain(localAdapter({ file: \"~/.myapp/ledger.json\" }));\n\n// the ONLY path to ownership: earn → attest(verifiable fact) → mint(soulbound, real serial)\nconst token = await onchain.claim(\"user-id\", {\n  seed: \"wild:acme/app@abc123\",            // the deterministic asset\n  fact: \"github:commit:acme/app@abc123\",   // the real interaction it's earned from\n  archetype: \"wild-creature\",\n  maxSupply: 1                              // ⇒ a literal 1-of-1\n});\nedition(token); // \"1 of 1\"\nawait onchain.inventory(\"user-id\");         // what they've earned\n```\n\nMarketable assets use `soulbound: false`. After the application's off-chain wallet\nsettles atomically, it calls `transfer()` with an idempotent settlement reference. Public\nprovenance contains ownership and settlement references—not card or identity data.\n\nSwap `localAdapter()` for `baseAdapter({...})` (`@absolutejs/onchain-base`) for real,\ngasless, soulbound mints on Base — same `claim` API.\n\n## Adapter contract\n\nImplement `@absolutejs/onchain/adapter-kit`: `WalletProvider`, `Attester` (the integrity\ngate — verify the fact, then sign), `MintProvider` (uniqueness + serials), and optionally\n`RandomnessProvider` (VRF for true 1-of-1 rolls). Market-capable mint providers also\nimplement `transfer` and `provenance`. See `@absolutejs/onchain-adapters`.\n\n> The local adapter's Attester does **not** verify facts (it's fakeable, for dev only).\n> Real integrity comes from a chain adapter whose Attester re-checks the fact.\n","readmeFilename":"README.md"}