# Circuits

Both Hinkal circuits—**SwapperM** and **SwapperMHA**—are built to support privacy‑preserving, multi‑token transactions in a UTXO‑style model.  Hinkal treats each token deposit as a *commitment*, a cryptographic hash that conceals the amount, token address, stealth public key and timestamp.  Spending a commitment requires revealing a *nullifier* (a hash of the commitment and a signature) that proves ownership without exposing the spender’s secret key or linking the spend to other transactions.  The circuits allow a user to aggregate multiple inputs and produce multiple outputs across several ERC‑20 tokens, all within a single zero‑knowledge proof.
