Verifiable proofs for any computation. Ed25519 signatures over SHA-256 digests. Integrates into existing workflows: agents, pipelines, media tools. Proofs are created and verified locally.

npm install provenclave

How it works

  1. You commit bytes. Pass any output to the constructor. It computes a SHA-256 digest.
  2. Proof is generated atomically. The system signs the digest with Ed25519, increments a monotonic counter, and binds it to an environment measurement. Fail-closed.
  3. Anyone can verify offline. The proof is self-contained JSON. No API key, no network call, no external dependency.

Why these proofs are different

Most systems prove after the fact. Signatures, metadata, watermarks, content credentials. They all operate on artifacts that already exist. This means identical content can exist with or without proof. Trust is optional and structurally bypassable.

Provenclave proves during creation. Cryptographic binding, signing, and durable commit happen as one atomic operation. Within the execution boundary, an artifact cannot finalize without producing the proof. The whitepaper calls this Atomic Causality: authorization, binding, and commit are a single indivisible event.

Proof becomes a reachability property of computation. A proven artifact is one that could only have been reached through the enforced creation path. It is not a label applied afterward; it is a structural consequence of how the artifact came into existence.


Quick start

import { Constructor, StubHost } from "provenclave";

const host = await StubHost.create();
const ctor = new Constructor(host);

const proof = await ctor.commit(
  Buffer.from("Hello, world")
);

Verify

import { verify } from "provenclave";

const result = await verify({ proof, bytes });
// result.valid === true | false

More ways to use it

30-second demo

git clone git@github.com:mikeargento/provenclave.git
cd provenclave
npm install
npm run demo

No accounts. No Docker. No external services.

Claude / MCP

claude mcp add provenclave -- npx -y @provenclave/mcp@0.1.0

Gives Claude access to commit_text, commit_file, and verify_proof.

HTTP API

curl -X POST http://localhost:3030/commit \
  -H "Content-Type: application/octet-stream" \
  --data-binary @output.json

Run your own proof server locally or deploy to your infrastructure.


Packages