How jxrxn/proof works
Proof is a browser-based Bitcoin timestamping app. Users hash text or files locally, request an OpenTimestamps proof, and save a standalone .ots file; verification re-hashes the original and checks that proof, optionally upgrading it with calendar data. A secondary, capability-limited ZIP package flow preserves the original alongside proof and metadata. The README documents calendar and Bitcoin-header network dependencies. Some implementation is unsampled, so links for those documented integrations rely on README evidence.
Main entry points: stamp.ts Create proof · verify.ts Verify proof · main.ts App startup · hashWorkerClient.ts Hash worker client
Components 19
Stamp and verify
- Create proof
src/stamp.ts - Verify proof
src/verify.ts - Package capability
src/lib/packageCapability.ts - ZIP package builder
src/lib/proofPackage.ts
Local hashing
- Hash worker client
src/lib/hashWorkerClient.ts - Hash worker
src/workers/hashWorkerRuntime.ts - Chunked SHA-256
src/lib/hashShared.ts - Streaming fallback
src/lib/hash.ts - Worker protocol
src/lib/hashWorkerProtocol.ts
Proof services
- OTS adapter
src/lib/ots.ts - OpenTimestamps client
- Calendar servers
- Bitcoin header source
User interface
- App startup
src/main.ts - DOM helpers
src/lib/dom.ts - Operation status UI
src/lib/operationUi.ts - Brand icons
src/icons/icons.ts
Other components
- User
- Local proof download
Connections 31
- User → App startup: uses
README.md - App startup → Create proof: initializes
src/main.ts - App startup → Verify proof: initializes
src/main.ts - App startup → Hash worker client: exposes test hook
src/main.ts - App startup → Brand icons: embeds logo
src/main.ts - Create proof → Hash worker client: hashes via worker
src/stamp.ts - Verify proof → Hash worker client: hashes via worker
src/verify.ts - Create proof → Streaming fallback: falls back to
src/stamp.ts - Verify proof → Streaming fallback: falls back to
src/verify.ts - Hash worker client → Hash worker: dispatches job
src/lib/hashWorkerClient.ts - Hash worker client → Worker protocol: uses messages
src/lib/hashWorkerClient.ts - Hash worker → Worker protocol: handles messages
src/workers/hashWorkerRuntime.ts - Hash worker → Chunked SHA-256: hashes chunks
src/workers/hashWorkerRuntime.ts - Streaming fallback → Chunked SHA-256: uses chunking
src/lib/hash.ts - Create proof → OTS adapter: creates digest proof
src/stamp.ts - Create proof → OpenTimestamps client: stamps proof
src/stamp.ts - Verify proof → OpenTimestamps client: upgrades and verifies
src/verify.ts - OTS adapter → OpenTimestamps client: creates detached proof
src/lib/ots.ts - OTS adapter → Calendar servers: probes endpoints
src/lib/ots.ts - OpenTimestamps client → Calendar servers: submits digest
README.md - OpenTimestamps client → Bitcoin header source: checks anchoring
README.md - Create proof → Package capability: checks availability
src/stamp.ts - Verify proof → Package capability: checks availability
src/verify.ts - Create proof → ZIP package builder: builds optional ZIP
src/stamp.ts - Verify proof → ZIP package builder: builds optional ZIP
src/verify.ts - Create proof → DOM helpers: updates interface
src/stamp.ts - Verify proof → DOM helpers: renders verdict
src/verify.ts - Create proof → Operation status UI: reports progress
src/stamp.ts - Verify proof → Operation status UI: reports progress
src/verify.ts - Create proof → Local proof download: offers proof file
README.md - ZIP package builder → Local proof download: offers ZIP
README.md