Skip to main content
Use Vana’s Data Portability API to request user-approved data, read it from the user’s Personal Server, and pay protocol fees from your app’s escrow balance. This guide assumes a web app with a server backend and a React frontend.
Build on Moksha Testnet for now. Mainnet deployment is being finalized, so test the flow against Moksha (testnet) today. When mainnet opens, the same app and code carry over — you just switch the network.

What you’ll build

A server controller

Holds your app identity, requested source, requested scopes, and paid reads.

Three backend routes

Create an access request, check approval status, and read approved data.

A React button

Opens Vana approval and renders the returned result.

Two ways to build

Start from the example app

Clone, install, run — the whole flow working locally with sample data and no setup. The same code goes live when you’re ready.Best for seeing how Vana works, and greenfield apps.

Add Vana to your own app

Wire Vana’s primitives into your existing app with @opendatalabs/vana-sdk — request, approve, read. You keep your stack; the SDK handles identity, grants, and payments.Best for adding Vana to a real product on your own stack.

Environments

Use production app/API URLs end to end. Select the chain separately. Use Vana Account dev to exercise the developer flow on Moksha (testnet) via the Account network selector. Moksha keeps the same app/API URLs and changes chain/contracts only. The mainnet column below is for reference until deployment is finalized.
Account (dev / testnet)account-dev.vana.org/developers
Block explorermoksha.vanascan.io
Fee assetnative VANA
Testnet faucetfaucet.vana.com/moksha

Steps

3

Ship

Test the flow end to end, and keep troubleshooting close.
4

Extend

Need a source that doesn’t exist yet? Add a connector.