Veda vaults are an Enterprise plan feature. 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. Once registered, the
vault appears under Wallet infrastructure > Earn in the Privy
Dashboard, where you can view its vault ID and details.
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.
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.Read vault details and positions
Read vault APY and TVL with get vault details, and a wallet’s position with get vault position. A few fields behave differently for Veda: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.
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.

