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

# Kamino

> Interact with Kamino Lending, Vaults, and Farms

GLAM integrates with Kamino for lending, vault deposits, and yield farming. The SDK provides three sub-clients:

* `kaminoLending` — Kamino Lending (collateral, borrowing)
* `kaminoVaults` — Kamino Vaults (yield vaults)
* `kaminoFarm` — Kamino Farms (staking and rewards)

## Kamino Lending

### Initialize

Initialize user metadata for Kamino Lending:

```typescript theme={null}
import { GlamClient } from "@glamsystems/glam-sdk";
import { BN } from "@coral-xyz/anchor";
import { PublicKey } from "@solana/web3.js";

const glamClient = new GlamClient();

const txSig = await glamClient.kaminoLending.initUserMetadata();
```

### Deposit Collateral

Deposit collateral into a Kamino lending market:

```typescript theme={null}
const market = new PublicKey("KaminoMk111111111111111111111111");
const USDC = new PublicKey("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v");

const txSig = await glamClient.kaminoLending.deposit(
  market,
  USDC,
  new BN(1_000_000_000), // amount in base units
);
```

### Withdraw Collateral

Withdraw collateral from a Kamino lending market:

```typescript theme={null}
const txSig = await glamClient.kaminoLending.withdraw(
  market,
  USDC,
  new BN(500_000_000),
);
```

### Borrow

Borrow assets from a Kamino lending market:

```typescript theme={null}
const txSig = await glamClient.kaminoLending.borrow(
  market,
  USDC,
  new BN(200_000_000),
);
```

### Repay

Repay borrowed assets:

```typescript theme={null}
const txSig = await glamClient.kaminoLending.repay(
  market,
  USDC,
  new BN(200_000_000),
);
```

## Kamino Vaults

### Deposit

Deposit into a Kamino yield vault:

```typescript theme={null}
const kaminoVault = new PublicKey("KaminoVt111111111111111111111111");

const txSig = await glamClient.kaminoVaults.deposit(
  kaminoVault,
  new BN(1_000_000_000),
);
```

### Withdraw

Withdraw from a Kamino yield vault:

```typescript theme={null}
const txSig = await glamClient.kaminoVaults.withdraw(
  kaminoVault,
  new BN(500_000_000),
);
```

## Kamino Farms

### Stake

Stake tokens into a Kamino farm:

```typescript theme={null}
const farmState = new PublicKey("KaminoFm111111111111111111111111");

const txSig = await glamClient.kaminoFarm.stake(
  new BN(1_000_000_000),
  farmState,
);
```

### Unstake

Unstake tokens from a Kamino farm:

```typescript theme={null}
const txSig = await glamClient.kaminoFarm.unstake(
  new BN(500_000_000),
  farmState,
);
```

### Harvest Rewards

Claim farming rewards from one or more farms:

```typescript theme={null}
const txSig = await glamClient.kaminoFarm.harvest([farmState]);
```
