> For the complete documentation index, see [llms.txt](https://void-protocol-2.gitbook.io/void-protocol-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://void-protocol-2.gitbook.io/void-protocol-docs/privacy/how-private-transfers-work.md).

# How Private Transfers Work

## How Alice Sends Privately to Bob

### 1. Alice Deposits

Alice deposits public tokens into VOID.

The deposit is visible on-chain and creates a **private note**.

The note's commitment is added to VOID's Merkle tree.

{% hint style="warning" %}
The deposit itself is public.

Privacy begins after the funds are represented as a private note inside VOID.
{% endhint %}

### 2. Alice Sends

Alice enters Bob's **VOID address** and the amount she wants to send.

{% hint style="info" %}
A VOID address is not the same as a public wallet address.

Bob shares the **Your VOID address** shown on his Receive screen.
{% endhint %}

### 3. A Proof Is Created

The hosted proof service generates a **zero-knowledge proof** showing that:

* Alice owns valid, unspent notes
* those notes exist in the Merkle tree
* the transaction balances correctly

{% hint style="warning" %}
The hosted proof service sees the prover inputs for that request.

See **Proof Service** for details.
{% endhint %}

### 4. The VOID Relayer Submits

On testnet, the **VOID relayer** submits the transaction and pays the gas.

The relayer is therefore **the on-chain sender**, not Alice's wallet, and the transaction does not show the amount, the asset or Bob. The proof binds the outputs, so the relayer cannot change where the funds go.

If the relayer is unavailable, Alice can choose to submit from her own wallet instead. Her wallet then pays the ETH gas and appears as the on-chain sender.

### 5. The Old Note Is Spent

The spent note's **nullifier** is recorded on-chain.

This prevents the same note from being spent again.

### 6. Bob Receives a New Note

Bob receives a **new encrypted note** that can only be opened with his key.

His app discovers the note through the indexer and adds it to his private balance.

### What the Blockchain Sees

The blockchain can see:

* that a private transfer occurred
* new commitments
* new nullifiers
* the VOID relayer as the transaction sender, not Alice's wallet

If Alice chooses the fallback to submit from her own wallet, her wallet is the transaction sender instead.

The blockchain does **not publish**:

* the transferred amount
* the asset sent
* Bob as the recipient
* the direct Alice-to-Bob relationship

{% hint style="info" %}

#### Privacy Note

Privacy generally improves as the anonymity set grows.

With limited testnet activity, timing and amount patterns may still make it possible to correlate activity around deposits, private transfers and withdrawals.
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

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

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://void-protocol-2.gitbook.io/void-protocol-docs/privacy/how-private-transfers-work.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
