> 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/reference/fees.md).

# Fees

> How MixFun charges protocol, relayer, and network fees.

## Core Pricing

MixFun takes a small percentage of each withdrawal. The full deposit amount enters the pool; at withdrawal, the protocol fee is deducted from the pool's payout to the recipient and routed to an on-chain fee collector.

There are no hidden fees, no subscriptions, no account fees, and no data monetization. The deposit transaction moves your full denomination into the pool; the withdrawal transaction returns the denomination minus the protocol fee (plus any optional relayer fee).

## Fee by Flow

| Flow              | Protocol Fee                           | Relayer Fee (optional)               | Network Fee                                        |
| ----------------- | -------------------------------------- | ------------------------------------ | -------------------------------------------------- |
| Private Send      | 0.1% of deposit (10 bps)               | Quoted per job                       | User-paid Solana gas                               |
| Shielded Pools    | 0.1% of deposit (10 bps)               | Quoted per job                       | User-paid Solana gas                               |
| Private Swap      | 4% default; never below 2.5% (250 bps) | Included in the quoted execution fee | Engine-sponsored and recovered from the quoted fee |
| Stealth Transfers | No protocol fee                        | None                                 | User-paid Solana gas                               |

## How the protocol fee is charged

The protocol fee is taken at **withdrawal time**, not deposit. For a 1 SOL Private Send pool, each deposit transfers a full 1 SOL into the pool. When someone withdraws against that pool, the program pays 0.999 SOL to the recipient and routes the remaining 0.001 SOL (0.1%) to the on-chain fee collector.

This keeps deposits uniform on-chain (every deposit into the same pool is exactly the denomination amount), which is what preserves the anonymity set.

Fee collection is on-chain. All fee records are public.

## How the relayer fee works

The relayer is optional and applies to Private Send and Shielded Pools withdrawals. It exists so a recipient can withdraw into a wallet with zero SOL; instead of the recipient paying Solana gas themselves, the relayer submits the transaction and keeps a small portion of the withdrawn amount as payment.

Relayer fees are quoted live when you request a withdrawal. The app displays the quote before you confirm. If a fee seems high, withdraw directly.

See [Use the relayer](/mixfun/guides/use-the-relayer.md) for the operational flow.

## Solana network fees

Every on-chain transaction on Solana requires a network fee. Direct deposits and withdrawals are paid by the signing wallet. Private Swap uses an isolated engine payer so the public wallet is not reused across the private execution legs; the displayed execution fee reimburses that payer. Swaps whose fee value cannot cover the configured execution reserve are rejected before the private input is claimed.

## Commitments

* **No hidden fees.** The protocol fee is published on this page, in on-chain fee records, and in the app before every transaction.
* **No subscriptions.** MixFun has no membership tier.
* **No data monetization.** MixFun does not sell, share, or profile user data.
* **Transparent quotes.** The app displays all applicable fees before you sign a transaction.


---

# 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/reference/fees.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.
