> 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/concepts/anonymity-sets.md).

# Anonymity sets

> Why the size of a MixFun pool determines how strong your privacy is.

The anonymity set of a pool is the number of active deposits in that pool at the time of a withdrawal. If a pool has 10 active deposits and someone withdraws, an observer can narrow the withdrawal to one of those 10 deposits, but cannot tell which one. The bigger the set, the less information leaks.

Anonymity set is the single most important privacy variable in MixFun. Everything else (zero-knowledge proofs, note custody, relayer routing) is necessary but only effective to the extent that the set is large.

## How MixFun measures it

For each pool, MixFun computes the anonymity set as the count of deposits that have not yet been withdrawn. The app surfaces this number during pool selection. The Shield flow additionally classifies pools by a privacy level:

| Label      | Anonymity set size                           | What it means                                    |
| ---------- | -------------------------------------------- | ------------------------------------------------ |
| **Low**    | Small (single-digit or very recent deposits) | Deposits are near-linkable. Consider waiting.    |
| **Medium** | Tens of deposits                             | Some privacy, not ideal for high-stakes amounts. |
| **High**   | Hundreds or more                             | Strong unlinkability under normal observation.   |

Thresholds are set by MixFun and may change based on circumstances.

## How to increase your anonymity

There's known two ways for such:

* **Wait longer before withdrawing.** Every deposit that arrives after yours adds to the set that covers you. The obvious cost is that your funds are locked in the pool until you withdraw.
* **Pick a larger pool.** When multiple denominations are available (for example, 1 SOL vs. 10 SOL), the pool with more active deposits provides stronger privacy, not the one closer to your exact amount.

## What defeats anonymity set

A large anonymity set is a necessary condition, not a sufficient one. Common mistakes that collapse privacy even on a large pool:

* **Depositing and withdrawing within minutes.** Time correlation narrows the set dramatically.
* **Reusing a wallet** that has already interacted with MixFun. Pattern-of-life analysis can link the deposit to later activity.
* **Matching amounts across deposit and withdrawal** when using flexible-amount flows (Swap).

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>Pair anonymity with good note custody</strong></td><td>A strong anonymity set does nothing if the note leaks. Notes and custody go hand in hand.</td><td><a href="/pages/uNWK97aWIrqBAJkbl1fm">/pages/uNWK97aWIrqBAJkbl1fm</a></td></tr></tbody></table>


---

# 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/concepts/anonymity-sets.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.
