Veda is an enterprise integration. Veda deploys and operates the vault contracts, and Privy
registers them for your app — there is no self-serve vault deployment. Contact
[email protected] to enable a Veda vault for your app.
Resources
Veda Docs
Official documentation for Veda and the BoringVault architecture.
Earn
Deposit, withdraw, and track positions across yield vaults with a single API.
How Veda works with Privy
Veda is served through Privy’s native earn API. Once a Veda vault is registered for your app, you interact with it through the standard earn endpoints — pass avault_id to the deposit, withdraw, position, and vault-details endpoints.
Under the hood, Veda differs from an ERC-4626 vault in a few ways:
- BoringVault share token. A Veda vault is a BoringVault: the vault contract is also its own ERC-20 share token. It is not ERC-4626, so there is no fee-wrapper contract — the vault you deposit into is the underlying vault itself.
- Teller entry point. Deposits and withdrawals route through a Teller contract, and pricing comes from an Accountant contract rather than ERC-4626’s
convertToAssets. Privy handles all of this internally. - Instant deposits and withdrawals. Both operations settle synchronously in a single transaction.
- Rewards auto-compound. Veda compounds reward incentives into the vault’s share price automatically. There is no separate incentive claim step for Veda vaults.
- Share lock period. After a deposit, shares are locked for a short, vault-configured period. Withdrawals revert until the lock expires. See Withdraw with accrued yield.
Supported chains
Veda vaults are available across major EVM chains, including Ethereum, Base, Tempo, Arbitrum, Optimism, and Linea. Contact [email protected] for the current list of enabled vaults and chains for your app.Prerequisites
- A Privy app with server-side wallets configured
- API credentials (your app ID and app secret)
- A Veda vault enabled for your app — reach out to [email protected]. Privy will register the vault and provide a
vault_id - A webhook endpoint registered in the Privy Dashboard (recommended, to track action status)
All examples below use the Node SDK. Set up the client once with your credentials:
Deposit into a Veda vault
Deposits use the deposit endpoint. Privy approves the vault to spend the wallet’s tokens and calls the Veda Teller to mint shares — in a single call. The action is created with statuspending and moves to succeeded once confirmed onchain.
- Node SDK
- REST API
EarnDepositActionResponse with the pending wallet action. Poll the status with get wallet action, or listen for the wallet_action.earn_deposit.succeeded webhook. The share_amount in the response is null until the action succeeds.If your app has gas sponsorship enabled, Veda deposits
and withdrawals are gas-sponsored by default — no extra parameters required.
Read vault details and positions
Vault details
Fetch APY and TVL to display before a user deposits, using the get vault details endpoint. The response usesprovider: "veda".
Wallet position
Query a wallet’s holdings with the get vault position endpoint. Theassets_in_vault field is the current redeemable value, including accrued yield.
For Veda vaults,
total_deposited and total_withdrawn are computed from the deposits and
withdrawals initiated through Privy, not reconstructed from all onchain activity. They are
accurate as a cost basis for Privy-initiated positions. assets_in_vault and shares_in_vault
are always read live from the vault contract.Withdraw with accrued yield
Withdrawals redeem shares back to assets — plus accrued yield — via the withdraw endpoint. Withdraw up to the wallet’s currentassets_in_vault; for a full exit, read the position first and pass assets_in_vault as raw_amount.
- Node SDK
- REST API
A
rejected status means the action failed before any transaction was signed — for example,
insufficient shares or a still-locked position — and is safe to retry once the underlying
condition clears. A failed status means a transaction was broadcast but reverted onchain;
inspect the action’s steps for details.Key integration tips
- No incentive claim. Veda auto-compounds rewards into the share price. Do not call the incentive claim endpoint for Veda vaults; yield shows up directly in
assets_in_vault. - Respect the share lock. Gate your withdraw UI on the lock, especially right after a deposit. Handle the
rejectedstatus and its unlock timestamp instead of assuming an immediate withdrawal will succeed. - Handle
nullanalytics. Treatuser_apy,app_apy, andtvl_usdas optional — render a fallback while a newly enabled vault’s data populates. - Track status asynchronously. Deposits and withdrawals are created as
pendingwallet actions. Poll get wallet action or subscribe to the earn webhooks to know when they confirm onchain.
Conclusion
With Privy, offering Veda’s BoringVault yield strategies is as simple as pointing your existing earn integration at a Vedavault_id. Privy manages the Teller, Accountant, and share-token mechanics so your app keeps a single, provider-agnostic API.
To enable a Veda vault for your app, contact [email protected] or reach out in Slack.

