Open source · Pilot-stage · Zero-knowledge

Prove the checks passed. Keep the data sealed.

clearproof is open-source infrastructure for crypto transfer evidence. A zero-knowledge proof shows a transfer passed specific checks, and the personal details the rules require go, encrypted, only to the institution entitled to read them.

Illustrative synthetic transfer. Watch it switch, or choose a view.

Originator
Ana María Ruiz
Date of birth
14 March 1987
Address
Calle de Alcalá 48, 28014 Madrid
National ID
X-4471903-K
Sending wallet
0x5b3f…a91c
Beneficiary
Jonas Keller
Receiving wallet
0x9e07…44d2
Amount
12,480.00 USDC

Where this ends up

Once decrypted, the full record can spread into compliance tools, support queues, analytics exports and backups unless each system limits its handling.

Each copy is another place a customer’s identity can leak, and the receiving side still has to take the sender’s word that screening happened.

Switch to With clearproof to see the same transfer sent as a proof plus an encrypted envelope.

The life of a transfer

Six steps, from enrolling a customer to letting an auditor re-check the decision long afterwards. Each step leaves evidence the next one can verify.

  1. 01

    Enroll

    The customer’s wallet signs consent to a credential from an authorized issuer. The issuer’s credentials are committed to a signed root that verifiers can pin.

  2. 02

    Evaluate

    The sending institution values the transfer exactly and checks it against the active, reviewed policy. Every outcome is explained: allow, review, deny or indeterminate.

  3. 03

    Prove

    A Groth16 proof binds the credential, the sanctions status of both wallets, the valuation and the transfer itself. It publishes eight values; everything else stays private.

  4. 04

    Authorize once

    The sending institution’s authorization service checks the proof against current roots, revocation and the active policy. Only an allow decision consumes it, and only once; a replay fails.

  5. 05

    Seal and send

    The information the rules require is encrypted to the receiving institution’s published key and sent with the proof and a signed decision. An on-chain registry can mirror the receipt for anyone to inspect.

  6. 06

    Review later

    An encrypted evidence bundle lets an independent reviewer re-check the decision offline, long after the proof itself has expired.

What a valid proof does not tell you

A proof is precise about a narrow statement. Knowing its edges is how you use it well.

Not legal compliance

Which information is required, which counterparties are trusted and how long records are kept depend on the deployment and its jurisdiction.

Not the truth of the inputs

A proof shows the checks ran against credentials and lists someone approved. Deciding to trust those sources is a separate step.

Not settlement

Acceptance, the counterparty’s response and on-chain settlement are recorded as separate facts.

Not anonymity

Public signals and on-chain activity can still reveal patterns. The goal is to share personal data only where it is needed.

Run the pilot yourself

Build from source, then follow the local acceptance guide. It generates development keys, starts a throwaway database and test chain, and takes a synthetic transfer through every step above with real proofs.

Start with the smaller verification exampleOpen the local acceptance guide

Record what worked, what failed and what evidence helped your review. Begin with the five-minute synthetic walkthrough, predeclare cases with the expected-outcome test pack, then Plan an evaluation and share feedback.

git clone https://github.com/repfigit/clearproof.git
cd clearproof
npm exec --yes --package=npm@11.9.0 -- npm ci
uv sync --frozen --extra dev --python 3.12
npm run build

Needs Node, Python 3.12 with uv, Circom 2.2.2 and PostgreSQL 18. Use synthetic data only.

Learn how it works

Short, source-checked explainers. Each links to the code and specs it describes.

Follow updates by RSS

Where the project stands

Verified 2026-10-07

Stage

Development pilot. The workflow runs locally with synthetic data, real proofs, a disposable database and a test chain. No customer deployment is established.

Assurance

Circuits and contracts have not been independently audited. Proving keys are development-only.

Capacity

Circuit capacity: 2^32 credential leaves per issuance root, 2^20 issuer leaves and 2^20 minus two sanctions addresses. The software refresh scans at most 1,024 enrollments across its configured 1–16 issuers, within a 30-second tenant transaction. Encrypted inventories are paged; the measured synthetic root-build median at 1,024 leaves was 16.73 seconds. Production throughput has not been demonstrated.

Packages

Verified npm release: 0.7.2. Current proof profile: pilot-transfer-v3. The CLI installs with npm install @clearproof/cli; circuits publishes source only. Matching development artifacts are required for proving.

Read the full project status