> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rhinestone.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# App fees

> Set a payout address and withdraw the app fees your project has collected

App fees are fees you charge your own users, collected by Rhinestone and credited to your project. This page is where you point them at an address and cash them out. For what an app fee is and how to charge one in code, see [Fees](/home/resources/fees#app-fees).

Everything lives in the [Dashboard](https://dashboard.rhinestone.dev) under **Settings → App fees**, for the project selected in the switcher.

All members can view this page. Only owners and admins can change the payout destination or start a withdrawal; other roles see the same numbers read-only.

## Payout destination

**Payout destination** is the address your collected fees are withdrawn to. Until you set one, you can't withdraw.

Press **Set address** (or **Change**, if one is already set), enter an EVM address, and re-enter it to confirm. Only owners and admins see the button.

<Warning>Withdrawals are irreversible and go wherever this points, which is why the dialog asks for the address twice. Use an address you control on the chains you plan to withdraw to.</Warning>

Changing the address only affects future withdrawals — anything already in flight keeps the address it was started with.

## Revenue and balances

**Revenue & balances** shows two different things side by side:

* **Gross collected** — app-fee revenue accrued over the last 90 days, before Rhinestone's share. This is reporting, not a balance.
* **Withdrawable** and **Pending** — your live balance, already net of Rhinestone's share. **Withdrawable** is what you can sweep now; **Pending** is value reserved by a withdrawal that hasn't settled.

All three are USD. Fees are valued in USD when they're collected, so the balance doesn't move with the price of the tokens they were collected in.

<Note>Gross collected is larger than your balance for two reasons: it's before Rhinestone's share, and it counts fees you may have already withdrawn.</Note>

## Withdrawals

A withdrawal sweeps your **full** withdrawable balance to your payout address. There is no partial amount.

Press **Initiate withdrawal**, choose a **destination chain** and **destination token**, and confirm. The dialog shows the amount being swept and the address it's going to. You can only have one withdrawal in flight at a time.

Withdrawals are asynchronous: the request is accepted immediately, then signed and submitted. The table tracks it through **Pending**, **Signing**, **Submitted**, and finally **Completed** or **Failed**. Click any row for the detail view, which breaks out **Gross**, **Rhinestone cut** with the rate applied, and **Client net**, plus the onchain transaction once there is one.

<Warning>A failed withdrawal stays reserved and remains part of your pending balance — it does not automatically return to withdrawable. Contact us to release it.</Warning>

## Configuring collection

This page is about getting paid, not about what you charge.

* **Intents** — set the rate per intent in code, with `appFees`. See [Fees](/home/resources/fees#app-fees).
* **Deposits** — configure the rate under **Deposits → Setup**.
