> For the complete documentation index, see [llms.txt](https://docs.nullmask.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.nullmask.io/user-guide/sending.md).

# Sending

Shielded transfers send tokens privately from your shielded balance to another Nullmask user.

## Requirements

* The recipient must have a registered receiving key on Nullmask
* You must have sufficient shielded balance (amount + fee)

## Steps

1. Navigate to the **Send** screen
2. Select the token
3. Enter the amount
4. Enter or paste the recipient's Ethereum address
5. Confirm the transaction in your wallet

## What Happens Behind the Scenes

1. The wallet signs a standard EIP-1559 transfer (e.g., "Send 1 ETH to 0xAlice")
2. The RPC proxy intercepts the transaction
3. The proxy checks that the recipient has a registered receiving key
4. The proxy selects funding notes from your shielded balance
5. A ZK proof is generated proving:
   * You authorized this transfer (ECDSA signature)
   * You have sufficient funds (note ownership + Merkle membership)
   * The output note is correctly encrypted for the recipient
6. The relayer submits the proof to the contract
7. The contract verifies the proof, spends your notes, and creates new notes

## Output Notes

Each transfer creates 3 notes:

| Note            | For       | Contains                      |
| --------------- | --------- | ----------------------------- |
| Output note     | Recipient | The transferred amount        |
| Change note     | You       | Leftover action-asset balance |
| Fee change note | You       | Leftover fee-asset balance    |

## Fee Estimation

Wallets use `eth_estimateGas` and the current gas price. The estimate is the default or latest historical gas usage multiplied by 1.25, so the resulting fee is:

```
fee = (latestHistoricalGas or defaultGas) × gasPrice × 1.25
```

The current application flow pays fees from shielded ETH. The circuits, contract, and relayer also support token-denominated fees, but the RPC proxy does not currently select them.

## Privacy Guarantees

* The on-chain transaction reveals nothing about sender, recipient, or amount
* Only encrypted note ciphertexts are visible on-chain
* The relayer sees only the opaque proof and public inputs


---

# 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://docs.nullmask.io/user-guide/sending.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.
