> For the complete documentation index, see [llms.txt](https://docs.yield.fi/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.yield.fi/earn-with-yieldfi/integration-sdk/examples-and-guides/vault-operations.md).

# Vault Operations

Complete examples for common vault operations.

### Display Vault List

```typescript
import { YieldFiSDK } from "yieldfi-sdk";

async function displayVaultList() {
  const sdk = await YieldFiSDK.create({
    gatewayUrl: "https://gw.yield.fi",
  });

  // Get all vaults
  const vaults = await sdk.vault.getVaults({
    chainId: 1,
    page: 1,
    pageSize: 20,
  });

  console.log(`Found ${vaults.pagination.total} vaults\n`);

  vaults.data.forEach((vault) => {
    console.log(`${vault.name} (${vault.symbol})`);
    console.log(`  Key: ${vault.vaultKey}`);
    console.log(`  TVL: $${vault.metrics.tvl}`);
    console.log(`  APY (7d): ${vault.metrics.apy7d}%`);
    console.log(`  Strategy: ${vault.strategy}`);
    console.log("");
  });
}

displayVaultList();
```

### Get Vault Details

```typescript
async function getVaultDetails(vaultKey: string, chainId: number) {
  const sdk = await YieldFiSDK.create({
    gatewayUrl: "https://gw.yield.fi",
  });

  // Get vault information
  const vault = await sdk.vault.getVaultByKey(vaultKey, chainId);
  console.log(`Vault: ${vault.vault.name}`);
  console.log(`Description: ${vault.vault.description}`);
  console.log(`Manager: ${vault.vault.manager}`);

  // Get whitelisted assets
  const assets = await sdk.vault.getWhitelistedAssets(vaultKey, chainId, false);
  console.log(`\nWhitelisted Assets (${assets.assets.length}):`);
  assets.assets.forEach((asset) => {
    console.log(`  ${asset.symbol}: ${asset.address}`);
  });

  // Get FAQs
  const faqs = await sdk.vault.getVaultFaqs(vaultKey, chainId);
  if (faqs.faqs.length > 0) {
    console.log(`\nFAQs:`);
    faqs.faqs.forEach((faq) => {
      console.log(`  Q: ${faq.question}`);
      console.log(`  A: ${faq.answer}\n`);
    });
  }
}

getVaultDetails("yusd", 1);
```

### Check Asset Whitelisting

```typescript
async function checkAsset(vaultKey: string, assetAddress: string, chainId: number) {
  const sdk = await YieldFiSDK.create({
    gatewayUrl: "https://gw.yield.fi",
  });

  const checkResult = await sdk.vault.checkAssetWhitelisted(
    vaultKey,
    assetAddress,
    chainId
  );

  if (checkResult.isWhitelisted) {
    console.log("✅ Asset is whitelisted");
    console.log(`Deposit Enabled: ${checkResult.depositEnabled ? "Yes" : "No"}`);
    console.log(`Redeem Enabled: ${checkResult.redeemEnabled ? "Yes" : "No"}`);
  } else {
    console.log("❌ Asset is not whitelisted");
  }
}

checkAsset(
  "yusd",
  "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", // USDC
  1
);
```

### Protocol Statistics Dashboard

```typescript
async function protocolDashboard() {
  const sdk = await YieldFiSDK.create({
    gatewayUrl: "https://gw.yield.fi",
  });

  // Get protocol stats
  const stats = await sdk.vault.getProtocolStats();
  console.log("=== Protocol Statistics ===");
  console.log(`Total TVL: $${stats.stats.totalTvl}`);
  console.log(`Max APY: ${stats.stats.maxApy}%`);
  console.log(`Total Users: ${stats.stats.totalUsers}`);
  console.log(`Total Fund Managers: ${stats.stats.totalFundManagers}`);
  console.log(`YPO: ${stats.stats.ypo}`);

  // Get strategies
  const strategies = await sdk.vault.getStrategies();
  console.log(`\n=== Available Strategies ===");
  strategies.strategies.forEach((strategy) => {
    console.log(`  - ${strategy}`);
  });

  // Get vaults by strategy
  const defiVaults = await sdk.vault.getVaults({
    chainId: 1,
    strategy: "DeFi",
  });
  console.log(`\n=== DeFi Vaults: ${defiVaults.pagination.total} ===`);
}

protocolDashboard();
```
