# Technical Architecture

#### 3.1 Smart Contracts

Wix.cash relies on smart contracts to execute mixing operations securely:

* `Mixer.sol`: Handles deposits and withdrawals.
* `Utils.sol`: Provides cryptographic hashing and Merkle proof verification.
* `Stealth.sol`: Implements one-time-use wallet address generation.
* `ZKVerifier.sol`: Verifies zk-SNARK proofs for transaction validation.

#### 3.2 zk-SNARKs Integration

To ensure transaction anonymity, zk-SNARKs validate transactions without revealing sender-receiver details. The zk-SNARK verification process prevents transaction linkability, preserving privacy in an on-chain environment.

#### 3.3 Merkle Trees & Commitments

* Deposits are stored in a **Merkle tree**, allowing users to later prove ownership without exposing their identity.
* Each deposit generates a **commitment hash**, preventing unauthorized access while maintaining security.
* Withdrawals require a **nullifier hash**, ensuring each deposit is withdrawn only once without linking it to the depositor.
