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

# Installation

> Install the Gauntlet SDK and configure your project.

## Install

<CodeGroup>
  ```bash pnpm theme={null}
  pnpm install @gauntlet-xyz/sdk
  ```

  ```bash npm theme={null}
  npm install @gauntlet-xyz/sdk
  ```

  ```bash yarn theme={null}
  yarn add @gauntlet-xyz/sdk
  ```

  ```bash bun theme={null}
  bun add @gauntlet-xyz/sdk
  ```
</CodeGroup>

The SDK has a single runtime dependency: [viem](https://viem.sh) `^2.x`.

## Requirements

* Node.js 18+ or any modern JavaScript runtime (Bun, Deno)
* TypeScript 5+ recommended
* An RPC URL for each chain you want to interact with (e.g. Alchemy, Infura, or your own node)
* A Gauntlet API key from the [sign-up process](/onboarding/sign-up)
* A Gauntlet **builder code** for attribution — request this alongside your API key from the Gauntlet partnerships team. Without it, deposits go through but volume is not attributed to your integration.

## Peer Dependencies

The SDK communicates directly on-chain using your RPC URLs. It reads allowances, share prices, and vault state, then returns transaction objects you sign and submit through your own wallet infrastructure. You need a viem `PublicClient` and `WalletClient` in your application.

```typescript theme={null}
import { createPublicClient, createWalletClient, http } from 'viem'
import { base } from 'viem/chains'

const publicClient = createPublicClient({
  chain: base,
  transport: http(process.env.RPC_URL_BASE!),
})

const walletClient = createWalletClient({
  chain: base,
  transport: http(process.env.RPC_URL_BASE!),
})
```

## Next Steps

<CardGroup cols={2}>
  <Card title="Setup" icon="gear" href="/sdk/overview">
    Initialize the SDK and make your first deposit.
  </Card>

  <Card title="Reference" icon="code" href="/sdk/reference">
    Full constructor, methods, result shape, and errors.
  </Card>
</CardGroup>
