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

# Discover Top-Performing Vaults

> Use the SDK or API to find, filter, and compare Gauntlet vaults — shown with gtUSDa on Base.

Find vaults that fit your product, compare their performance, and decide what to offer users.

## Initialize

<CodeGroup>
  ```typescript SDK theme={null}
  import { GauntletClient } from '@gauntlet-xyz/sdk'
  import { createPublicClient, http } from 'viem'
  import { base } from 'viem/chains'

  const client = new GauntletClient({
    evmClients: {
      [base.id]: createPublicClient({ chain: base, transport: http(process.env.RPC_URL_BASE!) }),
    },
  })
  ```

  ```typescript API theme={null}
  const API_BASE_URL = 'https://api.gauntlet.xyz'
  const API_KEY = process.env.GAUNTLET_API_KEY!

  async function apiGet(path: string) {
    const resp = await fetch(`${API_BASE_URL}${path}`, {
      headers: { Authorization: `Bearer ${API_KEY}` },
    })
    if (!resp.ok) throw new Error(`${resp.status} ${resp.statusText}`)
    return resp.json()
  }
  ```
</CodeGroup>

## List and Filter Vaults

<CodeGroup>
  ```typescript SDK theme={null}
  import { getVaults } from '@gauntlet-xyz/sdk/evm'

  const candidates = await getVaults(client, { chainId: base.id })
  // returns:
  // [
  //   {
  //     vaultId: "gtusda",         // SDK manifest slug — short identifier used by SDK methods
  //     name: "gtUSDa",
  //     protocol: "aera",
  //     strategy: "...",
  //     deployments: [
  //       {
  //         chain: "evm",
  //         chainId: 8453,
  //         vaultAddress: "0x...",
  //         vaultType: "multi-depositor",
  //         depositMode: "async",
  //         supplyToken: [{ symbol: "USDC", address: "0x...", decimals: 6 }]
  //       }
  //     ]
  //   },
  //   ...
  // ]
  ```

  ```typescript API theme={null}
  const { data: vaults } = await apiGet(
    '/v1/vaults?chain=base&strategy=lending&risk_tier=prime&limit=50'
  )
  // returns:
  // [
  //   {
  //     name: "gtUSDa",
  //     metrics: {
  //       apy_net: "8.2",
  //       tvl_usd: "45000000"
  //     }
  //   },
  //   ...
  // ]
  ```
</CodeGroup>

The SDK `getVaults` function reads from the bundled vault manifest — no network request. For live metrics such as APY and TVL, use the API.

## Get Vault Detail — gtUSDa

The API identifies vaults by a `chain_id:address` string (e.g. gtUSDa on Base is `8453:0x000000000001cdb57e58fa75fe420a0f4d6640d5`). Use a deployment's chain ID and vault address from `/v1/vaults` or the SDK manifest.

```typescript API theme={null}
const GTUSDA_BASE = '8453:0x000000000001cdb57e58fa75fe420a0f4d6640d5'

const [{ data: detail }, { data: latest }] = await Promise.all([
  apiGet(`/v1/vaults/${GTUSDA_BASE}`),
  apiGet(`/v1/vaults/${GTUSDA_BASE}/latest`),
])
// detail → {
//   name: "gtUSDa",
//   deployments: [
//     { chain: "base", address: "0x000000000001CdB57E58Fa75Fe420a0f4D6640D5" }
//   ]
// }
// latest → {
//   metrics: {
//     apy: { value: "8.2" },
//     tvl_usd: { value: "45000000" },
//     share_price: { value: "1.032" }
//   }
// }
```

## Chart Historical Performance

```typescript API theme={null}
const { data: points } = await apiGet(
  `/v1/vaults/${GTUSDA_BASE}/timeseries?granularity=day&start=2026-01-01`
)
// returns:
// [
//   { timestamp: "2026-01-01", apy: "7.9", tvl_usd: "42000000" },
//   { timestamp: "2026-01-02", apy: "8.0", tvl_usd: "42500000" },
//   ...
// ]
```

## What's Next

Once you've picked gtUSDa (or another vault), move to the deposit flow.

<CardGroup cols={2}>
  <Card title="Deposit Your First Dollar" icon="arrow-right-arrow-left" href="/guides/developer/earn/deposits-and-withdrawals">
    Use the SDK to deposit 1,000 USDC into gtUSDa on Base.
  </Card>

  <Card title="Vault API Reference" icon="database" href="/api-reference/vaults/get-vault-detail">
    Full vault listing, detail, metrics, timeseries, and events endpoints.
  </Card>
</CardGroup>
