> 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/stealth-transfers.md).

# Stealth Transfers

> Send to one-time stealth addresses that only the recipient can find.

{% hint style="warning" %}
**Stealth addresses need SOL to spend.** If you fund one from a known wallet to pay gas, that funding transaction is on-chain and publicly links the two addresses. Plan your funding source before spending.
{% endhint %}

## What is a Stealth Transfer?

A Stealth Transfer is a way to receive SOL or tokens into a wallet address that nobody can link to you, even if you have published your main wallet address everywhere.

You publish two public keys (a view key and a spend key) to the MixFun stealth registry. A sender looks up those keys, derives a one-time stealth address from them using a shared secret, and transfers funds to that address. Only you can derive the private key that controls the stealth address. Only you can tell, by scanning with your view key, that the payment is yours.

Stealth Transfers do not use pools, merkle trees, or zero-knowledge proofs. Privacy comes from address-layer cryptography: elliptic-curve Diffie-Hellman for key agreement, plus Ed25519 point arithmetic for address derivation. Every stealth address is mathematically fresh.

MixFun's role is the registry (storing your public keys so senders can find them), the announcement publisher (so you know when to scan), and the optional relayer for spending.

**Core Features:**

* **Fresh address per payment.** Every incoming stealth transfer lands at a unique address. Observers cannot cluster them.
* **No interactive receiving.** You do not have to be online when a sender pays you.
* **Non-custodial.** Only your spend key can move funds out of a stealth address. MixFun cannot.
* **Works for SOL and SPL tokens.** Token2022 is supported.

## How it works

1. **Register your meta-address.** Sign a message that derives your view and spend keys from your wallet, then publish the public halves (plus an encrypted view private key for server-assisted scanning) to MixFun's registry.
2. **Share your wallet address publicly.** Your registered Solana wallet address is all a sender needs. The sender looks it up, and MixFun returns your meta-address to them.
3. **Sender derives a stealth address.** Using their ephemeral keypair and your view public key, the sender derives a one-time stealth address that only you can spend from. The sender transfers SOL or tokens to that address.
4. **Sender publishes an announcement.** The announcement contains the ephemeral public key and a short view tag, so you can find your payments by scanning rather than checking every announcement by hand.
5. **You scan.** Your client (or MixFun's scanner, using your encrypted view key) walks through recent announcements and pulls out the ones that match your view key.
6. **You spend.** Using your spend key plus the shared secret, your client derives the private key for the stealth address and signs a spend transaction. The stealth address must have some SOL for gas. If it does not, you need to fund it from another wallet, and that funding transaction is public, which links the funding address to the stealth address.

## Who it's for

### Ideal for

* Receiving payments to a public address without revealing your balances
* Payroll, bounties, tips, and one-off incoming transfers
* Users who want privacy on the receive side without running a mixer deposit
* Recipients who want to stay reachable via a single stable address

### Not recommended for

* Scenarios where you want to hide the transaction value. Stealth addresses hide the recipient, not the amount.
* Interactive workflows that need confirmation on each payment.
* Cases where the sender cannot publish an announcement (stealth receiving requires it).
* Long-term storage at a single stealth address. Treat each address as use-once.

## Summary at a Glance

* **Privacy Level:** High (recipient privacy; amount remains visible on-chain).
* **Speed:** Fast. One transfer transaction from the sender, one spend transaction when you are ready.
* **Fee:** No protocol fee. You pay only the Solana network fee when you spend.
* **Best For:** Private receiving at a stable, publishable address.
* **Custody:** Non-custodial. Stealth address private keys are derivable only by the recipient's spend key plus the shared secret.


---

# 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/stealth-transfers.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.
