> ## 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.

# SDK Overview

> Use the Gauntlet SDK for vault discovery, deposits, withdrawals, user positions, and attribution — all from one client.

The Gauntlet SDK is the entry point for building on-chain integrations with Gauntlet. It handles vault discovery, deposit and withdrawal transaction building, user balance queries, and attribution — so you don't need to write low-level contract calls.

Use it to:

* discover and filter vaults by chain and protocol
* prepare deposits and withdrawals with automatic approval handling
* query live user positions (pending, active, and queued withdrawals)
* carry attribution context on every transaction

## Two Paths, One Client

**Vault discovery** — the SDK reads from a bundled vault manifest to give you typed access to all supported vaults, their deployments, accepted tokens, and deposit modes. No network request required.

**Transaction path** — the SDK communicates on-chain via your RPC URLs to read allowances and vault state, then returns pre-encoded transaction objects you sign and submit. Uses your viem `PublicClient` and `WalletClient`.

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

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

Signing stays entirely in your stack — the SDK never touches private keys. The `wallet` you provide is used to determine the sender account for allowance checks; you sign the resulting steps yourself.

For live vault metrics (APY, TVL, share price) and user portfolio history, use the [Gauntlet REST API](/onboarding/credentials) directly.

## Go Deeper

<CardGroup cols={2}>
  <Card title="Installation" icon="download" href="/sdk/installation">
    Install the SDK and configure your project.
  </Card>

  <Card title="Examples" icon="play" href="/sdk/examples">
    Deposits, withdrawals, balance queries, and error handling.
  </Card>

  <Card title="Reference" icon="code" href="/sdk/reference">
    Constructor, methods, result shapes, and errors.
  </Card>

  <Card title="Deposit Your First Dollar" icon="arrow-right-arrow-left" href="/guides/developer/earn/deposits-and-withdrawals">
    The full integration guide with SDK and API confirmation.
  </Card>
</CardGroup>
