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

# Fund escrow and check fees

> Paid reads draw from your app identity's Data Portability escrow balance. Fees are set onchain in FeeRegistry.

## Fund escrow

Paid reads use your app identity's **Data Portability escrow balance**. You only fund it — the SDK resolves the escrow contract for the network you select, so there's no contract address to configure in your app.

Escrow is funded from the **Fund escrow** section of the same signed-in [Developers](https://account-dev.vana.org/developers) page you used to create the app identity.

<Steps>
  <Step title="Open and sign in to Vana Account developers">
    Open [`account-dev.vana.org/developers`](https://account-dev.vana.org/developers) and sign in.
  </Step>

  <Step title="Confirm the network">
    Set the **Protocol network** toggle to **Testnet** (Moksha). Mainnet deployment is being finalized — build on testnet for now.
  </Step>

  <Step title="Enter the app identity address in Fund escrow">
    In the **Fund escrow** section, the **Funding source** is your connected **External wallet**. Set **App identity address** to the grantee app address you created or registered — this is the address that pays for Personal Server reads.
  </Step>

  <Step title="Enter the amount and fund">
    Enter the **Amount** of native VANA to deposit, click **Fund escrow**, and submit the wallet transaction.
  </Step>

  <Step title="Wait for the balance to update">
    Wait until the app's available balance updates.
  </Step>
</Steps>

<Note>
  For Moksha, get testnet VANA from [`faucet.vana.com/moksha`](https://faucet.vana.com/moksha); the faucet dispenses **10 VANA per address per 24 hours**. Data request creation and user approval can succeed before escrow is funded, but data reads fail with `Insufficient finalized balance` until the app address has finalized escrow balance.
</Note>

Once mainnet deployment is finalized, mainnet fees will use **USDC**; confirm the current funding path and fee asset with the Vana team before going live.

## Check current fees

Creating an access request **does not spend escrow**. Payment happens when your backend reads approved data from the user's Personal Server.

A paid read can include:

| Fee                  | When it applies                                           |
| -------------------- | --------------------------------------------------------- |
| `grant_registration` | one-time fee for registering the user grant, when enabled |
| `data_access`        | fee for a successful data read, when enabled              |

<Note>You don't set or pay fees yourself. When a read needs payment, the Personal Server returns a `402` challenge with the exact amount owed; the SDK pays it from your escrow and retries. Fee amounts and assets are set by Vana onchain in `FeeRegistry` and can change, so treat any number below as an example, not a fixed price.</Note>

**FeeRegistry:**

* **Mainnet:** [`0xb4FA18443E0FA6cdC0280D20b8cCDB2377D13Bf2`](https://vanascan.io/address/0xb4FA18443E0FA6cdC0280D20b8cCDB2377D13Bf2)
* **Testnet:** [`0xb4FA18443E0FA6cdC0280D20b8cCDB2377D13Bf2`](https://moksha.vanascan.io/address/0xb4FA18443E0FA6cdC0280D20b8cCDB2377D13Bf2)

On testnet, fees currently use native VANA. In testing, the first paid read for a grant requires **about 0.01 VANA** from escrow because it includes grant registration plus data access. Treat that as an example, not a fixed price. On mainnet, fees use USDC. Fee assets and prices can differ by environment, so check Vana Account and FeeRegistry before funding escrow for a paid-read test.
