# Fee-on-Transfer Token Support

Some tokens (often called "reflection" or "rebase" tokens) charge a fee on every transfer. For example, transferring 100 tokens might result in the recipient receiving only 99 tokens, with 1 token burned or redistributed.

The wrapper handles these tokens correctly:

1. Records balance before transfer
2. Executes the transfer
3. Records balance after transfer
4. Mints cTokens based on the **actual received amount**, not the requested amount

Example with 1% fee-on-transfer token:

* You call `wrap(1000)`
* Wrapper receives 990 tokens (1% was burned during transfer)
* Wrapper mints 990 cTokens (based on actual receipt)
* Your fee is paid separately on top of this

This ensures you always receive the correct amount of cTokens matching what the wrapper actually holds.


---

# Agent Instructions: 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:

```
GET https://zaiffer.gitbook.io/wiki/zaiffer/shielding-tokens-wrapping/fee-on-transfer-token-support.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
