# Pinned runtime and bundle reproduction

The learner Python module requires PyNaCl1.6.2, including its patched libsodium1.0.20-stable2025-12-31 point validator. The TS module requires @noble/curves2.4.0 plus actual WebCrypto Ed25519. esbuild0.25.12 reproduces the standalone bundle. Python3.11.3 and Node22.22.0 were tested. No custom curve arithmetic is supplied. Upstream licenses accompany the npm dependency provenance; legal comments are retained in the generated bundle.

For this repository, install only into task-local directories from the repository root:

```powershell
python -m pip install --target .tmp/d30-crypto/python -r algorithms/domains/D30-banking-ledger-and-reconciliation/D30-F05-tamper-evident-ledger-integrity/D30-F05-A06-signed-ledger-checkpoint/implementations/requirements.txt
Copy-Item algorithms/domains/D30-banking-ledger-and-reconciliation/D30-F05-tamper-evident-ledger-integrity/D30-F05-A06-signed-ledger-checkpoint/examples/dependencies/package.json .tmp/d30-crypto/package.json
Copy-Item algorithms/domains/D30-banking-ledger-and-reconciliation/D30-F05-tamper-evident-ledger-integrity/D30-F05-A06-signed-ledger-checkpoint/examples/dependencies/package-lock.json .tmp/d30-crypto/package-lock.json
npm ci --prefix .tmp/d30-crypto
python algorithms/domains/D30-banking-ledger-and-reconciliation/D30-F05-tamper-evident-ledger-integrity/D30-F05-A06-signed-ledger-checkpoint/tests/run_parity.py
python algorithms/domains/D30-banking-ledger-and-reconciliation/D30-F05-tamper-evident-ledger-integrity/D30-F05-A06-signed-ledger-checkpoint/tests/build_lab.py
```

Create .tmp/d30-crypto first if necessary; pip --target creates its Python child. Test/example launchers add that isolated Python target to sys.path. tests/build.mjs resolves only the task-local npm dependencies, checks TS with the repository TypeScript runtime, and builds Node ESM/browser IIFE into tests/.tmp-compiled. tests/build_lab.py embeds that exact browser bundle and fixture casebook. Runtime production globals/project manifests are not modified.

For a separately downloaded learner module, use your own virtual environment and the provided requirements, or install the exact npm dependencies from package.json/lock in your own project. Adjust only the example/bundler paths to your checkout; no sibling algorithm package is imported. The shipped HTML is already self-contained with the actual pinned noble code, so opening it needs no CDN or package installation. It still requires a browser with secure-context WebCrypto Ed25519; unavailable required crypto gives indeterminate.

observed-artifacts.json records the actual Windows wheels and hashes; package-lock.json records npm integrity. Those observed wheel hashes describe this run, not an assertion that every platform uses the same artifact. Public RFC demo seeds are test data; these instructions do not create production keys or establish enrollment trust. The original cryptography40.0.2 investigation is distinct from the actual patched PyNaCl verification runtime.
