Private computation · Public certainty

Show nothing.Prove it anyway.

Cloakpad is a zero-knowledge proof lab for Solana amounts. Commit to a number, prove a claim about it, and let anyone check the proof. The number itself is never revealed, and nothing you type leaves your browser.

Bulletproofs · ristretto255 · no trusted setup

A folded graphite cloak concealing a field of data while a mint proof point remains visible
Witness stays localProof travels
proof.json Verifies
Claim
committed amount at least 100 SOL
Amount
Size
672 bytes

Commitment

f6c6190d 856161e2 effcc787 41530a61 b1f07e9c 0a096b0f de638a9e 7239d320

Proof first 96 of 672 bytes

48b4902548ef558558df783d534ab1acf3d9acc04f6294bc38a9e80b1d8e73477e7a93708ca4c35df0f8a29d415a9874bfa5de421709586eda450a45d45cdf44789656c30b50e0aa9fb56cb3614cc5303dfd7a7a9d13c571e98df8a4619acd4a
A real proof from this site’s prover. The amount behind it is not on this page. Verify it yourself

How a proof works

Three steps, each computed in your browser tab.

  1. Step 1

    Commit

    Your amount goes into a Pedersen commitment with a fresh random blinding factor. Every possible amount fits it equally well, so on its own it says nothing.

  2. Step 2

    Prove

    A Bulletproof shows the committed amount satisfies your claim: at least X, or between X and Y. The claim is hashed into the proof, so it cannot be swapped afterwards.

  3. Step 3

    Verify

    Anyone runs two equation checks against the proof. They learn that the claim is true. They do not learn the amount.

Proof lab

Build a payment, choose what it reveals, then prove a claim about it without showing it.

Loading the studio…

Specification

What the lab runs. Each line has a primary source in the references.

Proof system
Bulletproofs range proofBünz et al., IEEE S&P 2018, the construction Monero adopted.
Group
ristretto255Prime-order group, RFC 9496.
Challenges
Fiat–Shamir over SHA-512The claim is bound into the transcript. Edit it and the proof fails.
Trusted setup
None258 generators hashed to the curve from public labels (RFC 9380). One button re-derives them.
Range
64-bit“Between” claims aggregate two ranges into one proof.
Proof size
672 bytes736 bytes for an aggregated “between” proof.
Verification
Two equation checksRuns in your browser, here or on /verify.
Runtime
Web WorkerProving never blocks the page.
Libraries
@noble/curves, @noble/hashesIndependently audited. Our protocol code on top of them is not.

Threat model

"Zero-knowledge" describes a technique, not a guarantee. These are the specific properties this tool does and does not have.

A verified mint proof path stays intact on one side of a boundary and breaks when it reaches an external system
The proof covers the statement. Wallets, interfaces, and external networks remain separate trust boundaries.

What holds

  • Nothing you type is sent

    Proofs are computed in a Web Worker and receipts through Web Crypto, both in this tab. The only requests the studio makes are for its own script files. Check the network panel.

  • A false claim does not verify

    A range proof for an amount that does not meet the claim fails the verifier’s equations. Soundness rests on the discrete-log problem in ristretto255 and on SHA-512 as the Fiat–Shamir hash. “Attempt to cheat” runs exactly that attack.

  • The amount stays hidden

    The commitment uses a fresh random blinding factor, so every amount fits it equally well, and the proof is zero-knowledge. Receipt fields each get their own 256-bit salt, so a hidden value cannot be guessed back from its commitment.

  • Tampering is detectable

    Every byte of a proof and the claim itself feed the Fiat–Shamir challenges, so flipping one bit or editing the claim fails verification. Receipts recompute each commitment and the fingerprint over all of them.

What it does not claim

  • It does not prove the amount is real

    A range proof is about the number inside the commitment, and on this page you typed that number. Nothing ties it to a wallet. In a shielded pool the commitment would already be on-chain, and that anchor is what this does not have.

  • It does not prove authorship

    Proofs and receipts are not signed. Anyone can make their own valid proof for a different commitment, or a different self-consistent receipt. Get the commitment or fingerprint over a channel you already trust.

  • Disclosure is irreversible

    A value you share is public to everyone who receives the file. There is no revocation, and no later disclosure from the same commitment.

  • Our protocol code is unaudited

    The curve and hash libraries (@noble) are independently audited. Our Bulletproofs and receipt code is not, and the prover is not constant-time. The browser and its origin must be trusted: a malicious extension can read inputs before this code sees them.

The Cloakpad token

Fair launch on pump.fun. No presale, no team allocation, no vesting.

  • The address appears here first, on this page.
  • Nothing is sold or allocated ahead of the launch.
  • Check the address here before you send anything anywhere.

Contract address

No contract exists yet. Any address claiming to be the Cloakpad token before it appears on this page is not ours.

The token is a community asset. It is not equity, not a claim on any technology described here, and confers no rights. Nothing on this site is a working privacy product, and the token does not change that.

Roadmap

Each stage depends on the one before it. Only the first has shipped.

  1. Shipped

    Make disclosure legible

    An interactive model of who learns what, a local commitment tool, and a working zero-knowledge range proof in the browser. Shipped, and the whole of what this site is today.

  2. Next

    Define the threat model formally

    Write down the adversary, the assumptions and the properties claimed, precisely enough to be attacked on paper before anything is built.

  3. Later

    Select a protocol

    Choose a proving system and a settlement design, with the custody and trust assumptions of any cross-chain route stated explicitly rather than assumed away.

  4. Later

    Independent review

    Cryptographic and application audit by reviewers with no stake in the outcome, published in full, before anything touches real funds.

Questions

Is this a working privacy payment system?

No. It is a teaching model with two working tools: local commitment receipts and a real zero-knowledge range proof. There is no wallet connection, no transaction and no bridge. Nothing here moves money.

Is the zero-knowledge proof real?

Yes. The Proof Lab builds a Bulletproofs range proof (the construction Monero adopted in 2018 and Grin uses for hidden amounts) over ristretto255, in your browser: 672 bytes, no trusted setup, checked by two equations. Flip a bit, edit the claim or try to cheat, and it is rejected. What it does not do is tie the committed number to a real wallet.

Are you affiliated with Zcash or Solana?

No. Not with Zcash, the Electric Coin Company, or Solana. "Inspired by" means the design principles informed the research direction — it is not a partnership and not an integration.

Then what is the receipt actually good for?

Showing someone a specific fact about a record while withholding the rest, and letting them check that the disclosed part matches a commitment made earlier. That is a real, narrow, useful primitive. It is not proof that a payment happened.

Can I verify the claims on this page myself?

Yes, and you should. A receipt commitment is SHA-256 over a tagged tuple of the field name, value and salt, and the fingerprint is SHA-256 over all commitments; recompute either with any SHA-256 tool. For the range proof, “Check the generators” re-derives every curve point from its public label in your tab, and /verify checks any proof you are sent.

Where does this run?

cloakpad.fun is hosted on Vercel. Everything on this page runs client-side, so there is no backend to depend on and nothing to go down.

Is my sample data sent anywhere?

No. Every operation runs in your browser: receipts through the Web Crypto API, proofs in a Web Worker. The page fetches its own script files and nothing else. There is no server to receive what you type, no account and no analytics.

Try the proof lab

No wallet and no signup. Proofs are computed in your tab.

Open the Lab