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

# Concepts

> Key ideas to understand before integrating Amplify Earn

Before wiring calldata into your product, align on how Amplify Earn models strategies, assets, and execution responsibilities. These concepts shape the SDK helpers referenced throughout the docs.

## Vaults & Yield Types

* **Vault** – On-chain contract that issues ERC-20 shares representing a position in an underlying strategy.
* **Yield Type** – Logical grouping of vaults with similar mandates, exposed as the `YieldType` enum (`CORE`, `PRIME`, etc.).
* **Want Asset** – Token users receive when withdrawing from a vault; often different from the deposit token.

Use `fetchVaults` to discover active vault configurations, eligible assets, and chain IDs.

## Shares vs. Assets

* Deposits mint **shares** to the recipient. Shares track ownership of the vault.
* Withdrawals burn shares and return the **want asset** using `prepareWithdrawTxData`.
* Helpers return base-unit values; you provide the human-readable amounts as decimal strings.

## Allowances vs. Permits

* Default flow: users approve the Boring Vault contract to spend their deposit token using `prepareApproveDepositToken`.
* Permit flow: when the token supports [EIP-2612](https://eips.ethereum.org/EIPS/eip-2612), `prepareDepositPermitSignature` produces typed data for a signature that replaces the approval step.

Choose the flow that matches asset support and user experience goals.

## Slippage Controls

* Slippage is expressed in **basis points** (bps). For example, `100` means 1%.
* Deposit helpers default to `DEFAULT_DEPOSIT_SLIPPAGE`, while withdraw helpers accept custom tolerance.
* Helpers return minimum acceptable amounts in base units; you can override or disable slippage (not recommended for production).

## Execution Responsibilities

* The SDK **prepares** calldata only; your app decides which signing stack executes it.
* Use viem, wagmi, Privy, or custody flows to send the transaction.
* Handle errors by catching `APIError`, which includes an `endpoint` property (e.g., `prepareDepositWithPermitTxData`).

## Withdrawals

* `prepareWithdrawTxData` burns shares and redeems the want asset in a single transaction when on-chain liquidity is sufficient.
* Surface slippage tolerance and eligibility checks so users know when immediate redemption is available.

Keep these concepts in mind while following the [Quickstart](./quickstart) or diving into the [Functions](./functions/index) reference.\*\*\*
