Skip to Content
DocumentIntroduction
Get started

Build private, compliant on-chain finance apps on the zkScatter ZK stack.

zkScatter is a privacy-preserving settlement protocol for compliant on-chain finance. The same primitives — a commitment pool, half-proof authorization, a relayer network, identity gating — power OTC trading, private payments, and identity-gated distributions on top of one shared engine.

@zkscatter/sdk is the TypeScript toolkit for talking to every part of that protocol — contracts, ZK proofs, relayer network, shared orderbook, on-device note storage. One package, one mental model; ship a wallet on web, mobile, or Node.

The same SDK powers the reference apps shipped by Tokamak — Pro  (OTC), Pay  (payments), Drop  (drops), and Mobile. Anything those apps do, your app can do, with the same primitives.

What you can build with the SDK

What’s in the box

How the flows compose

The same four steps cover every flow — what differs is who runs which step. Deposit and claim are universal; authorize/match changes shape per flow.

  1. Deposit (universal)

    The user signs a deposit ZK proof on-device. CommitmentPool.deposit inserts a Poseidon commitment hiding the owner secret, token, and amount. Same call for OTC, payments, drops.

  2. Authorize / Issue

    OTC: maker signs an EdDSA order + half-proof binding it to a leaf. Payment: sender signs a one-sided spend committing to the recipient address. Drop: distributor publishes a claims root committing to each recipient’s address + amount.

  3. Match / Submit

    OTC: a relayer pairs two compatible half-proofs and submits PrivateSettlement.settleAuth. Payment: a relayer (or the sender) submits the spend directly. Drop: no matching — recipients claim independently.

  4. Claim (universal)

    The recipient’s payout sits in CommitmentPool as a new commitment addressed to their wallet. They claim later — any time, gaslessly — by proving knowledge of the spending key. Up to 20 claims per transaction.

Where to go next

Last updated on