> ## 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

> Your app pays per-read fees from a prepaid escrow balance. Fund it with faucet VANA on testnet, or bridged USDC.e on mainnet.

## What escrow is for

Paid reads settle from your app identity's **Data Portability escrow balance** — a prepaid balance the escrow contract holds for your app address. When your backend reads approved data from a user's Personal Server, the fee is drawn from this balance automatically; your only job is to keep it funded. The SDK resolves the escrow contract for the network you select, so there's no contract address to configure in your app.

Escrow balances are **per network** — fund the network your app runs on ([Choose your network](/build-a-vana-app/networks)). Data request creation and user approval can succeed before escrow is funded, but reads fail with `Insufficient finalized balance` until your app address has finalized escrow balance. Check the per-read fee before you decide how much to fund: [Check fees](/build-a-vana-app/check-fees).

## Get funds

### Testnet: faucet

On Moksha, escrow is funded in **native VANA**. Get it free from the faucet: [`faucet.vana.com/moksha`](https://faucet.vana.com/moksha) — 10 VANA per address per 24 hours. Then [deposit it into escrow](#deposit-into-escrow).

### Mainnet: bridge USDC in

On mainnet, the only asset your app's escrow needs is **USDC.e** — it settles paid reads from your escrow balance. Gas for the onchain actions you take through Vana Account and the SDK (registering your app, funding escrow) is sponsored on Vana, so **you don't need native VANA to build and run your app**.

The path at a glance:

```mermaid theme={null}
flowchart LR
    usdc["USDC<br/>on Base / Ethereum"]:::ingress
    usdce["USDC.e<br/>in your wallet on Vana"]:::sdk
    escrow["Your app's escrow<br/>onchain, per network"]:::protocol
    reads["Paid reads<br/>settled automatically"]:::neutral

    usdc -->|"Stargate bridge<br/>delivery gas prepaid"| usdce
    usdce -->|"deposit<br/>gas-sponsored"| escrow
    escrow --> reads

    classDef protocol fill:#DCE4FF,stroke:#4141FC,color:#11104a;
    classDef sdk fill:#FFF3D1,stroke:#E6A700,color:#5c4400;
    classDef ingress fill:#E2F4DC,stroke:#34A853,color:#14431f;
    classDef neutral fill:#EEF1F5,stroke:#9AA4B2,color:#1f2937;
```

What you need before you start:

| You need                      | Where                                                         | Why                                                                      |
| ----------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------------------ |
| **USDC**                      | Base or Ethereum                                              | The asset you bridge; it arrives on Vana as USDC.e                       |
| A little **ETH**              | The **same chain as your USDC**                               | Pays gas for the bridge transaction                                      |
| Your **app identity address** | From [Create an app identity](/build-a-vana-app/app-identity) | The escrow you fund belongs to this address — you'll enter it at deposit |

Nothing on the Vana side — no native VANA, no destination gas. USDC.e lands in the **wallet you bridge to** (your connected external wallet), and from there you deposit it into your app's escrow.

If you already hold USDC on Base, this is the whole path start to finish. (Bridging from Ethereum is identical — swap Base for Ethereum throughout.) Each step links to the reference details further down.

<Steps>
  <Step title="Confirm Vana Account is set to Mainnet">
    Open [Vana Account → Developers](https://account.vana.org/developers) and set **Protocol network** to **Mainnet**. Your app identity and its escrow both live on whichever network you select here.

    <Warning>If the **Fund escrow** panel asks you to be on Moksha or to deposit **native VANA**, you're still on **Testnet**. Switch **Protocol network** to **Mainnet** — mainnet escrow is funded in **USDC.e**, not VANA.</Warning>
  </Step>

  <Step title="Check the wallet you'll bridge from">
    In your Base wallet you need two things: the **USDC** you want to fund with, plus **a little ETH on Base** to pay the bridge gas. See [the two gotchas below](#get-usdce-on-vana) for the ETH-on-Base trap.
  </Step>

  <Step title="Bridge USDC → USDC.e on Stargate">
    Open [Stargate](https://stargate.finance):

    1. Connect the wallet holding your USDC.
    2. Set the route: from **Base**, asset **USDC** → to **Vana**, asset **USDC.e**.
    3. Enter the amount ([how much?](/build-a-vana-app/check-fees)).
    4. Confirm the source-chain gas (ETH) and send.

    USDC.e usually arrives on Vana within a few minutes.
  </Step>

  <Step title="(Optional) Confirm USDC.e arrived">
    [Add Vana to your wallet](#add-vana-to-your-wallet) and add USDC.e as a custom token to see the balance land before you fund.
  </Step>

  <Step title="Deposit USDC.e into your app's escrow">
    Back in [Vana Account → Developers](https://account.vana.org/developers) (**Protocol network: Mainnet**), open **Fund escrow** and deposit — this deposit is gas-sponsored, no VANA needed. Field-by-field steps: [Deposit into escrow](#deposit-into-escrow) below.
  </Step>
</Steps>

Your app now settles paid reads from this escrow balance automatically. The sections below are the reference details for each step.

#### Add Vana to your wallet

Add Vana as a custom network in MetaMask, Rabby, or any EVM wallet so you can see your USDC.e balance and confirm transfers:

| Field           | Mainnet                | Moksha (testnet)              |
| --------------- | ---------------------- | ----------------------------- |
| Network name    | Vana                   | Vana Moksha                   |
| RPC URL         | `https://rpc.vana.org` | `https://rpc.moksha.vana.org` |
| Chain ID        | `1480`                 | `14800`                       |
| Currency symbol | VANA                   | VANA                          |
| Block explorer  | `https://vanascan.io`  | `https://moksha.vanascan.io`  |

USDC.e won't show up until you add it as a custom token: `0xF1815bd50389c46847f0Bda824eC8da914045D14` (6 decimals).

#### Get USDC.e on Vana

USDC.e is bridged USDC on Vana mainnet — the asset your escrow is funded and charged in. Bridge USDC from Base or Ethereum with [Stargate](https://stargate.finance) and it arrives on Vana as USDC.e, ready to deposit into escrow.

|                              |                                                                                                                                                                |
| ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| USDC.e token on Vana mainnet | [`0xF1815bd50389c46847f0Bda824eC8da914045D14`](https://vanascan.io/address/0xF1815bd50389c46847f0Bda824eC8da914045D14) — "Bridged USDC (Stargate)", 6 decimals |
| Bridge USDC in               | [Stargate](https://stargate.finance): USDC on Base/Ethereum → USDC.e on Vana                                                                                   |
| Source-chain gas             | A little ETH on the **same chain as your USDC** to send the bridge tx                                                                                          |

<Warning>
  **Two things trip people up when bridging:**

  * **Gas is paid on the source chain, not on Vana.** Fund the bridge tx with **ETH on the same chain as your USDC** — ETH on Base if you're bridging from Base, ETH on Ethereum if from there. It's the same asset, but it has to be on that chain: ETH on Base and ETH on Ethereum L1 are separate balances, so L1 ETH won't cover Base gas.
  * **Stargate warns that your Vana wallet has no VANA for gas — that's expected, and safe to ignore.** You'll see *"You have 0.00 VANA on Vana which is insufficient to pay for gas."* You don't need VANA: LayerZero prepays delivery gas out of the source-chain fee, and registering your app and funding escrow through [Vana Account](https://account.vana.org/developers) are gas-sponsored. VANA is only needed if you later move tokens on Vana yourself, outside these flows.
</Warning>

## Deposit into escrow

Escrow is funded from the **Fund escrow** section of the same signed-in Developers page you used to create the app identity, on the same network.

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

  <Step title="Confirm the network">
    Set the **Protocol network** toggle to the network your app uses: **Testnet** (Moksha) while developing, **Mainnet** for your live app.
  </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** to deposit — **native VANA** on testnet, **USDC.e** on mainnet — 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>

## Get native VANA (optional)

You don't need VANA for the funding flow above — gas on Vana is sponsored. Reach for this only if you want native VANA for something else, such as interacting with the network directly. Two ways to get it:

**Withdraw from an exchange (simplest).** Major exchanges that list VANA (Binance, Bybit) support deposits and withdrawals directly on the **Vana network**: withdraw to your wallet address and native VANA lands on Vana L1, gas-ready — no bridging or wrapping needed. See [CoinGecko markets](https://www.coingecko.com/en/coins/vana) for the current venue list.

**Buy on-chain and bridge in.** VANA trades as a cross-chain ERC-20 at the same address on every supported chain: [`0x7FF7Fa94b8b66Ef313f7970d4EEbd2CB3103a2C0`](https://etherscan.io/token/0x7FF7Fa94b8b66Ef313f7970d4EEbd2CB3103a2C0). Swap **USDC for VANA** on [Aerodrome (Base)](https://aerodrome.finance/swap?from=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\&to=0x7FF7Fa94b8b66Ef313f7970d4EEbd2CB3103a2C0\&chain0=8453\&chain1=8453) or [Uniswap v3 (Ethereum)](https://app.uniswap.org/swap?chain=mainnet\&inputCurrency=0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\&outputCurrency=0x7FF7Fa94b8b66Ef313f7970d4EEbd2CB3103a2C0), then bridge to Vana with [Stargate](https://stargate.finance) — it arrives as **native VANA**, gas-ready, no unwrapping step.

<Note>These DEXs only list VANA once you select it by contract address (`0x7FF7…a2C0`) — the links above pre-select it. Sell **USDC** (the paired asset), and keep test swaps small: the VANA/USDC pools are new (\~\$130K liquidity each), so a large swap moves the price.</Note>

|                        |                                                                                                                                                                                                                                                                                                                                                                                                         |
| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Exchange withdrawal    | Binance / Bybit → withdraw on the **Vana network** → native VANA                                                                                                                                                                                                                                                                                                                                        |
| Buy VANA on-chain      | [Aerodrome (Base)](https://aerodrome.finance/swap?from=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\&to=0x7FF7Fa94b8b66Ef313f7970d4EEbd2CB3103a2C0\&chain0=8453\&chain1=8453) · [Uniswap v3 (Ethereum)](https://app.uniswap.org/swap?chain=mainnet\&inputCurrency=0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\&outputCurrency=0x7FF7Fa94b8b66Ef313f7970d4EEbd2CB3103a2C0) — VANA/USDC, token `0x7FF7…a2C0` |
| Bridge to Vana mainnet | [Stargate](https://stargate.finance) — delivers native VANA                                                                                                                                                                                                                                                                                                                                             |
