Skip to main content
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:
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:
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:
const txSig = await glamClient.kaminoLending.withdraw(
  market,
  USDC,
  new BN(500_000_000),
);

Borrow

Borrow assets from a Kamino lending market:
const txSig = await glamClient.kaminoLending.borrow(
  market,
  USDC,
  new BN(200_000_000),
);

Repay

Repay borrowed assets:
const txSig = await glamClient.kaminoLending.repay(
  market,
  USDC,
  new BN(200_000_000),
);

Kamino Vaults

Deposit

Deposit into a Kamino yield vault:
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:
const txSig = await glamClient.kaminoVaults.withdraw(
  kaminoVault,
  new BN(500_000_000),
);

Kamino Farms

Stake

Stake tokens into a Kamino farm:
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:
const txSig = await glamClient.kaminoFarm.unstake(
  new BN(500_000_000),
  farmState,
);

Harvest Rewards

Claim farming rewards from one or more farms:
const txSig = await glamClient.kaminoFarm.harvest([farmState]);