# Confidential Transfers

Once you have confidential tokens (like cUSDC or cETH), you can transfer them confidentially to other addresses. The ERC-7984 standard provides two ways to do this:

1. simple one-to-one transfers
2. batch transfers to multiple recipients at once.

Both methods maintain full confidentiality as amounts stay encrypted and only addresses are visible. Combined with the shield and unshield capabilities described above, these transfer operations enable complete confidential financial workflows on public blockchains.

## Single Confidential Transfers <a href="#simple-confidential-transfers" id="simple-confidential-transfers"></a>

The ERC-7984 standard implements `confidentialTransfer()`, which allows you to send encrypted amounts to other addresses. The key difference from regular ERC-20 transfers is that the amount is encrypted using FHE.

Single confidential transfers between addresses are free.

## Batch Confidential Transfers <a href="#batch-transfers" id="batch-transfers"></a>

Batch transfers offer significantly greater efficiency than individual transfers when you need to send confidential tokens to multiple recipients, such as for paying a group of employees or distributing funds to various wallets.

The `TransferBatcher` contract allows you to:

* Send to multiple addresses in a single transaction
* Pay one ETH fee regardless of how many recipients (not per-transfer fees)
* Maintain privacy for all amounts while reducing gas costs

Batch transfers use a two-step process:

1. **Authorisation**: You grant the `TransferBatcher` contract permission to move your tokens using `setOperator()`
2. **Execution**: You call `confidentialBatchTransfer()` with the list of recipients and amounts, paying an ETH fee

<div data-with-frame="true"><figure><img src="/files/yE3HrOHtz4b2OhqlQeMH" alt=""><figcaption></figcaption></figure></div>


---

# 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://zaiffer.gitbook.io/wiki/zaiffer/confidential-transfers.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.
