Understand Mixoor

Detailed go through Mixoor

Think of Tornado Cash, but faster, cheaper, and born on Solana. You click and vanish in only two steps.

  1. Deposit

  2. Withdraw

That's it, your funds have been transferred and no one can trace them.

Mixoor Architecture

For you, who want to go deep, here is a breakdown of the Mixoor program architecture.

Mixoor's architecture is composed of three main layers:

  1. Solana Program (Smart Contract)

  2. Indexer

  3. User Application (Front-end)

Each layer fulfills an essential function within the system's flow: A user deposit funds, then set the sending amount (it can be total balance or partial) and recipient wallets (it can be single or multiple), finally click send and that'a all, a complex development turned into a single 2-step app.

This image not represent the beta version but a v2.

1. Solana Program (Smart Contract)

Mixoor's main program manages funds and controls deposit and withdrawal operations.

When depositing, the user connects their wallet and sends funds to the contract. Each deposit generates two unique identifiers: Secret (an encrypted key that represents the right to withdraw) and Nullifier (an identifier that prevents the same deposit from being used twice).

Both values ​​are encrypted and stored within Program Derived Accounts (PDAs). These PDAs form the branches of a Merkle tree, ensuring internal traceability without exposing the public source.

On the withdrawal side, the user must provide three elements: the secret, the unique nullifier and the proof of Merkle Tree verification that confirms their membership in the deposit pool.

The contract validates the proof and executes the withdrawal to any wallet, without linking it to the original address.

2. Indexer

The indexer acts as a technical intermediary between the program and the application. Its purpose is to maintain data structure and security without storing sensitive information.

Key Functions:

  • Index and log all contract transactions.

  • Build and maintain up-to-date Merkle trees.

  • Generate unique proofs for each bucket (Merkle proofs).

  • Storage data ephemerally and encrypted to prevent theft or data breaches.

  • Ensure the integrity of the synchronization chain.

3. Front-End (User Application)

The front-end allows users to interact with the program (smart contract) easily. It is built on Vite and integrates the @solana/wallet-adapter package to connect wallets such as Phantom, Solflare, or Backpack.

Last updated