> For the complete documentation index, see [llms.txt](https://mixfun.gitbook.io/mixfun/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mixfun.gitbook.io/mixfun/flows/shielded-pools.md).

# Shielded Pools

> Multi-token privacy pools with anonymity set protection.

{% hint style="danger" %}
**Your note is the only way to withdraw this deposit.** If you lose it, the tokens cannot be recovered. Treat the note like a private key and back it up before sharing or closing the tab.
{% endhint %}

## What is a Shielded Pool?

A Shielded Pool is the same pattern as Private Send, but for SPL tokens instead of SOL. You deposit a fixed denomination of a token (for example, 100 USDC) into a pool, receive a note, and later withdraw the same denomination to a wallet of your choice. Token2022 tokens are supported alongside standard SPL tokens.

Each token mint has its own set of pools. A 100 USDC pool is separate from a 100 USDT pool, even if the denominations look similar. Your privacy is scoped to the specific pool you deposited into.

MixFun does not hold your tokens. The pool is a Solana program account with its own associated token account. Only a valid note plus a zero-knowledge proof can withdraw.

**Core Features:**

* **Privacy via anonymity set.** Each pool's set is isolated to that token and denomination.
* **Non-custodial.** The pool is on-chain; only a signed proof can withdraw.
* **Multi-token.** Standard SPL tokens and Token2022 both supported.
* **Per-token denominations.** See [Supported tokens and pools](/mixfun/reference/supported-tokens-and-pools.md) for current denominations by mint.
* **Optional relayer.** Withdraw into a wallet without SOL for gas; the relayer pays gas and keeps a small share of the withdrawal.

## How it works

1. **Pick a token and denomination.** The app shows pools grouped by token mint, with the anonymity set size next to each denomination.
2. **Deposit.** Your wallet signs a deposit transferring the denomination amount of the chosen token into the pool. You also pay a small SOL gas fee for the transaction itself.
3. **Save the note.** Same as Private Send: if you lose this note, your funds cannot be recovered. See [Back up a note](/mixfun/guides/back-up-a-note.md).
4. **Share the note (optional).** The note encodes only the spend secret for that deposit, not the wallet that made it.
5. **Withdraw.** The recipient submits a zero-knowledge proof and receives the full denomination in their token account. If the recipient's wallet doesn't have an associated token account for the token yet, one is created as part of the withdrawal.
6. **Use a relayer (optional).** Withdrawing into a brand-new wallet works the same way as Private Send. The relayer pays the SOL gas and may deduct a small token fee from the withdrawal.

## Who it's for

### Ideal for

* Paying a contractor in USDC without revealing your treasury wallet
* Splitting a token balance into privacy-preserved tranches
* Receiving a stablecoin into a fresh, unlinked wallet
* Token holders who don't want their activity tied to a public profile

### Not recommended for

* Tokens with no active pool. Check supported mints first.
* Non-fungible tokens. Shielded Pools only handle fungible SPL and Token2022.
* Exact-amount transfers smaller than the minimum denomination for the token.
* Long-term storage. Your note is the only way back; treat it accordingly.

## Summary at a Glance

* **Privacy Level:** High (depends on anonymity set of the chosen token pool).
* **Speed:** Deposit is one transaction. Withdrawal is one transaction, or a relayer job that finishes in a few seconds.
* **Fee:** 0.1% of the deposit denomination, in the deposited token. Optional relayer fee on withdrawal.
* **Best For:** Private SPL token transfers with a shared note.
* **Custody:** Non-custodial. The pool is a Solana program account with its own associated token account.


---

# 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 dynamically by asking a question.

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

```
GET https://mixfun.gitbook.io/mixfun/flows/shielded-pools.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
