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). Data request creation and user approval can succeed before escrow is funded, but reads fail withInsufficient finalized balance until your app address has finalized escrow balance. Check the per-read fee before you decide how much to fund: Check fees.
Get funds
Testnet: faucet
On Moksha, escrow is funded in native VANA. Get it free from the faucet:faucet.vana.com/moksha — 10 VANA per address per 24 hours. Then deposit it 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: What you need before you start:
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.
1
Confirm Vana Account is set to Mainnet
Open Vana Account → Developers and set Protocol network to Mainnet. Your app identity and its escrow both live on whichever network you select here.
2
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 for the ETH-on-Base trap.
3
4
(Optional) Confirm USDC.e arrived
Add Vana to your wallet and add USDC.e as a custom token to see the balance land before you fund.
5
Deposit USDC.e into your app's escrow
Back in Vana Account → Developers (Protocol network: Mainnet), open Fund escrow and deposit — this deposit is gas-sponsored, no VANA needed. Field-by-field steps: Deposit into escrow below.
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:
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 and it arrives on Vana as USDC.e, ready to deposit into escrow.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.1
Open and sign in to Vana Account developers
Open
account.vana.org/developers and sign in.2
Confirm the network
Set the Protocol network toggle to the network your app uses: Testnet (Moksha) while developing, Mainnet for your live app.
3
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.
4
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.
5
Wait for the balance to update
Wait until the app’s available balance updates.
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 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. Swap USDC for VANA on Aerodrome (Base) or Uniswap v3 (Ethereum), then bridge to Vana with Stargate — it arrives as native VANA, gas-ready, no unwrapping step.
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.