# 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.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://wixcash.gitbook.io/wixcash-docs/getting-started/technical-architecture.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
