Skip to main content
Vana supports building on two networks. Your app code is identical on both — you pick the network with one setting, and the SDK resolves the right chain, contracts, and escrow for you.
Testnet and mainnet data do not mix. A grant approved on testnet cannot be read on mainnet, and escrow balances are separate per network. Use the same network on your app (VANA_NETWORK) and in the Vana app your test user signs into.

Switch networks

One environment variable selects the network in both the example app and the SDK:
VANA_ENV stays production in both cases — it selects the Vana product stack, while VANA_NETWORK selects the chain. In SDK code, the same choice is the network option:
When you move an app from testnet to mainnet: switch VANA_NETWORK, register your app identity on mainnet (same flow, Protocol network: Mainnet), and fund mainnet escrow. Nothing else changes.

Fund your wallet (mainnet)

On mainnet, the only asset your app’s escrow needs is USDC.e — it settles paid reads from your escrow balance. Gas for the on-chain 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. (Bridging USDC in still costs a little ETH on the source chain — see the walkthrough.)

Walkthrough: fund escrow from USDC on Base

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

Bridge USDC → USDC.e on Stargate

Open Stargate and set the route: from Base, asset USDC → to Vana, asset USDC.e. Enter the amount (how much?) and confirm.You’ll see the warning “You have 0.00 VANA on Vana which is insufficient to pay for gas.” That’s expected — proceed anyway. Delivery gas is prepaid, so no VANA is needed (why). Send the transaction and wait for USDC.e to arrive on Vana (usually a few minutes).
Stargate route selection bridging USDC on Base to USDC.e on Vana
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, set App identity address to your app, enter the amount in USDC.e, and click Fund escrow. This deposit is gas-sponsored — no VANA needed. Field-by-field steps: Fund escrow and check fees.
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: 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.
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 are gas-sponsored. VANA is only needed if you later move tokens on Vana yourself, outside these flows.
Stargate warning that a Vana wallet with 0.00 VANA is insufficient to pay for gas

Check fees before you fund

Fee amounts and assets are set on-chain in FeeRegistry and can change — check it (and the Fund escrow section of Vana Account) before funding:
How much should you fund? Each paid read draws the per-read fee set in FeeRegistry, so a rough amount to bridge is expected reads × per-read fee. Check the current fee in Vana Account’s Fund escrow panel (or Fund escrow and check fees) before you decide — for example, to test 10 reads, bridge about 10 × the per-read fee plus a small buffer. You don’t need a large balance to start — fund enough for your first batch of reads and top up escrow anytime.
You never pay fees manually. When a read requires payment, the Personal Server returns a 402 challenge and the SDK settles it from your escrow automatically — see Fund escrow and check fees.

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.