> ## Documentation Index
> Fetch the complete documentation index at: https://docs.privy.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Veda

Offer yield on Veda's [BoringVault](https://docs.veda.tech/) strategies through Privy [earn](/wallets/actions/earn/overview). Your app deposits, withdraws, and reads positions through the standard earn API, and Privy handles the Veda-specific contract interactions (Teller, Accountant, and BoringVault share token) for you.

<Info>
  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
  [sales@privy.io](mailto:sales@privy.io) to enable a Veda vault for your app. Once registered, the
  vault appears under **Wallet infrastructure > Earn** in the [Privy
  Dashboard](https://dashboard.privy.io), where you can view its vault ID and details.
</Info>

Before your vault is deployed, create a Privy [wallet](/wallets/overview) in the app that will use the vault, and share its address with Veda. This wallet will receive vault performance fees, and its address is embedded in the vault's parameters at deployment, so the wallet must exist first.

## Resources

<CardGroup cols={2}>
  <Card title="Veda Docs" icon="arrow-up-right-from-square" href="https://docs.veda.tech/" arrow>
    Official documentation for Veda and the BoringVault architecture.
  </Card>

  <Card title="Earn" icon="vault" href="/wallets/actions/earn/overview" arrow>
    Deposit, withdraw, and track positions across yield vaults with a single API.
  </Card>
</CardGroup>

***

## 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 a `vault_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](https://docs.veda.tech/): 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.

<Tip>
  Because Veda goes through the standard earn API, the [earn product
  docs](/wallets/actions/earn/overview) — [deposit](/wallets/actions/earn/deposit),
  [withdraw](/wallets/actions/earn/withdraw), [get vault
  details](/wallets/actions/earn/get-vault-details), [get vault
  position](/wallets/actions/earn/get-vault-position), and
  [webhooks](/wallets/actions/earn/webhooks) — all apply to Veda vaults. This guide highlights
  what's specific to Veda.
</Tip>

### Supported chains

Veda vaults are available across major EVM chains, including Ethereum, Base, Tempo, Arbitrum, Optimism, and Linea. Contact [sales@privy.io](mailto:sales@privy.io) 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](/wallets/actions/earn/get-vault-details), and a wallet's position with [get vault position](/wallets/actions/earn/get-vault-position). A few fields behave differently for Veda:

<Warning>
  For Veda vaults, `user_apy`, `app_apy`, and `tvl_usd` are sourced from Veda's analytics API and
  may be **`null`** — most commonly for a newly enabled vault, whose performance data takes roughly
  7–10 days to populate. Your app should handle `null` gracefully rather than rendering `0`.
  `available_liquidity_usd` is always `null` for Veda vaults.
</Warning>

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

***

## Withdraw with accrued yield

Withdrawals redeem shares back to assets — plus accrued yield — via the [withdraw](/wallets/actions/earn/withdraw) endpoint. Withdraw up to the wallet's current `assets_in_vault`; for a full exit, read the position first and pass `assets_in_vault` as `raw_amount`.

<Warning title="Share lock period">
  Veda locks a wallet's shares for a short, vault-configured period after each deposit, and a **new
  deposit resets the lock on the entire position**. A withdrawal requested while shares are still
  locked is `rejected` before any transaction is broadcast, with an error indicating when the shares
  unlock. Wait until the lock expires (or surface the unlock time to your user) before retrying.
</Warning>

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

***

## Key integration tips

1. **No incentive claim.** Veda auto-compounds rewards into the share price. Do not call the [incentive claim](/wallets/actions/earn/claim) endpoint for Veda vaults; yield shows up directly in `assets_in_vault`.
2. **Respect the share lock.** Gate your withdraw UI on the lock, especially right after a deposit. Handle the `rejected` status and its unlock timestamp instead of assuming an immediate withdrawal will succeed.
3. **Handle `null` analytics.** Treat `user_apy`, `app_apy`, and `tvl_usd` as optional — render a fallback while a newly enabled vault's data populates.

<Warning title="Disclaimer">
  Privy does not control DeFi vaults or underlying protocols. Vault information is provided for
  reference only and may change or be inaccurate. Earnings are generated from third-party vaults and
  are not guaranteed. Using vaults involves risk, including loss of funds. These materials are for
  general information purposes only and are not investment advice or a recommendation or
  solicitation to engage in any specific transaction. You are responsible for evaluating vaults at
  your own discretion. Privy does not provide investment, financial, legal, or tax advice.
</Warning>
