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

> Integrate Kamino for yield or crypto loans

# Build

<div className="w-full sm:px-4">
  <div className="relative max-w-8xl sm:mt-4 lg:mt-8 mx-auto pt-16 pb-16 sm:p-16 lg:p-40 bg-[#081632] sm:rounded-2xl overflow-hidden">
    <div className="relative z-10 max-w-4xl mx-auto px-4 text-center">
      <h1 className="text-3xl lg:text-6xl font-semibold text-white mb-4">Build on Kamino</h1>
      <p className="lg:text-lg text-center mb-8 sm:mb-12 text-white">Deposit to earn, lend or borrow programmatically, and use our APIs to read market data and user positions. Available via TypeScript SDK, REST APIs and full working examples.</p>

      <div className="flex justify-center gap-8">
        <a href="/build/developers/overview" className="bg-white rounded-xl sm:rounded-2xl font-lg font-semibold text-primary py-2 sm:py-3 px-4 sm:px-6 hover:opacity-[0.85] active:scale-[0.97] transition-transform duration-250"> Get Started <Icon icon="arrow-right" color="#082A56" iconType="regular" className="block mb-1 ml-1 w-4 h-4" /></a>
      </div>
    </div>

    <div className="absolute bottom-0 z-0 left-0 w-full h-full">
      <img src="https://mintcdn.com/kamino-3d73a151/lP5bd214efImJ7R7/images/bg-hero.png?fit=max&auto=format&n=lP5bd214efImJ7R7&q=85&s=438df1f8f5bc6c92ac322c32ca8bc060" className="object-cover absolute bottom-0 left-0 w-full h-full" alt="Build on Kamino section background illustration" noZoom width="2880" height="960" data-path="images/bg-hero.png" />
    </div>
  </div>
</div>

<div className="container w-full mx-auto max-w-4xl p-4">
  <div className="mt-16 md:mt-20">
    <h2 className="text-2xl font-semibold mb-4 text-gray-800 dark:text-gray-100 text-center">Integration Guides</h2>

    <div className="integration-guides grid gap-4 grid-cols-1 md:grid-cols-6">
      <div className="md:col-span-2">
        <Card title="Earn - Kamino Vaults" icon="chart-line" href="/build/earn">
          Lending strategies to earn yield

          * Vault and user data
          * Current & historical data
          * Deposit & Withdraw txn
          * Deploy vaults
        </Card>
      </div>

      <div className="md:col-span-2">
        <Card title="Borrow - Kamino Lend" icon="coins" href="/build/borrow">
          Flexible lending and borrowing

          * User and PnL data
          * Historical yield & liquidity
          * Deposit & Withdraw txn
          * Borrow & Repay txn
        </Card>
      </div>

      <div className="md:col-span-2">
        <Card title="API Reference" icon="globe" href="/build/api-reference/introduction">
          APIs for data & transactions

          * Current & historical data
          * Build transactions
          * Earn vaults
          * Borrow lend
        </Card>
      </div>
    </div>
  </div>

  <div className="max-w-6xl mx-auto py-16">
    <div className="w-full h-px bg-gray-200 dark:bg-white/10" />
  </div>

  <div className="max-w-6xl mx-auto">
    <h2 className="text-2xl font-semibold mb-4 text-gray-800 dark:text-gray-100 text-center">Quick Snippets</h2>

    <Tabs>
      <Tab title="Deposit on Earn">
        ```typescript theme={null}
        import { createSolanaRpc, address, generateKeyPairSigner } from '@solana/kit';
        import { KaminoVault } from '@kamino-finance/klend-sdk';
        import { Decimal } from 'decimal.js';

        const signer = await generateKeyPairSigner();

        const vault = new KaminoVault(
          createSolanaRpc('https://api.mainnet-beta.solana.com'),
          address('HDsayqAsDWy3QvANGqh2yNraqcD8Fnjgh73Mhb3WRS5E')
        );

        const depositIxs = await vault.depositIxs(
          signer,
          new Decimal(100.0)
        );
        ```
      </Tab>

      <Tab title="Borrow">
        ```typescript theme={null}
        import { createSolanaRpc, address, generateKeyPairSigner } from '@solana/kit';
        import { KaminoMarket, KaminoAction, VanillaObligation, PROGRAM_ID } from '@kamino-finance/klend-sdk';
        import BN from 'bn.js';

        const signer = await generateKeyPairSigner();
        const rpc = createSolanaRpc('https://api.mainnet-beta.solana.com');
        const market = await KaminoMarket.load(rpc, address('7u3HeHxYDLhnCoErrtycNokbQYbWGzLs6JSDqGAv5PfF'), 400);

        const usdtMint = address('Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB');
        const borrowAmount = new BN(1_000_000); // 1 USDT

        const borrowAction = await KaminoAction.buildBorrowTxns(
          market,
          borrowAmount,
          usdtMint,
          signer,
          new VanillaObligation(PROGRAM_ID)
        );
        ```
      </Tab>

      <Tab title="Get Earn balances">
        ```typescript theme={null}
        import { createSolanaRpc, address } from '@solana/kit';
        import { KaminoVault } from '@kamino-finance/klend-sdk';

        const vault = new KaminoVault(
          createSolanaRpc('https://api.mainnet-beta.solana.com'),
          address('HDsayqAsDWy3QvANGqh2yNraqcD8Fnjgh73Mhb3WRS5E')
        );

        const user = address('EZC9wzVCvihCsCHEMGADYdsRhcpdRYWzSCZAVegSCfqY');
        const shares = await vault.getUserShares(user);
        const rate = await vault.getExchangeRate();

        console.log({
          shares: shares.totalShares.toString(),
          tokens: shares.totalShares.mul(rate).toString(),
        });
        ```
      </Tab>

      <Tab title="Get Loan health">
        ```typescript theme={null}
        import { createSolanaRpc, address } from '@solana/kit';
        import { KaminoMarket, VanillaObligation, PROGRAM_ID } from '@kamino-finance/klend-sdk';

        const rpc = createSolanaRpc('https://api.mainnet-beta.solana.com');
        const marketPubkey = address('7u3HeHxYDLhnCoErrtycNokbQYbWGzLs6JSDqGAv5PfF');
        const market = await KaminoMarket.load(rpc, marketPubkey, 400);

        const userAddress = address('EZC9wzVCvihCsCHEMGADYdsRhcpdRYWzSCZAVegSCfqY');
        const obligation = await market.getObligationByWallet(
          userAddress,
          new VanillaObligation(PROGRAM_ID)
        );

        const ltv = obligation.loanToValue();
        console.log('Loan-to-Value:', ltv);
        ```
      </Tab>

      <Tab title="Get Market data">
        ```typescript theme={null}
        import { createSolanaRpc, address } from '@solana/kit';
        import { KaminoMarket } from '@kamino-finance/klend-sdk';

        const market = await KaminoMarket.load(
          createSolanaRpc('https://api.mainnet-beta.solana.com'),
          address('7u3HeHxYDLhnCoErrtycNokbQYbWGzLs6JSDqGAv5PfF')
        );
        ```
      </Tab>
    </Tabs>
  </div>

  <div className="max-w-6xl mx-auto py-16">
    <div className="w-full h-px bg-gray-200 dark:bg-white/10" />
  </div>

  <div className="max-w-6xl mx-auto">
    <h2 className="text-2xl font-semibold mb-4 text-gray-800 dark:text-gray-100 text-center">Earn Tutorials</h2>
    <p className="text-center mb-8 text-gray-600 dark:text-gray-400">Quick tutorials for depositing into Earn vaults.</p>

    <div className="grid grid-cols-1 gap-4 md:grid-cols-12 mb-8">
      <div className="md:col-span-4">
        <Card title="Earn via API" icon="globe" href="/build/recipes/earn/earn-via-api">
          Deposit to vaults using REST API
        </Card>
      </div>

      <div className="md:col-span-4">
        <Card title="Earn via SDK" icon="code" href="/build/recipes/earn/earn-via-sdk">
          Deposit to vaults using TypeScript SDK
        </Card>
      </div>

      <div className="md:col-span-4">
        <Card title="Earn with Privy Wallet" icon="wallet" href="/build/recipes/earn/earn-with-privy">
          Integrate deposits with Privy embedded wallets
        </Card>
      </div>
    </div>
  </div>

  <div className="max-w-6xl mx-auto py-16">
    <div className="w-full h-px bg-gray-200 dark:bg-white/10" />
  </div>

  <div className="max-w-6xl mx-auto">
    <h2 className="text-2xl font-semibold mb-4 text-gray-800 dark:text-gray-100 text-center">Deploy an Earn Vault and Get Revenue Share</h2>
    <p className="text-center mb-8 text-gray-600 dark:text-gray-400">Any builder can deploy a private or public Earn Vault and get revenue share in just a few lines of code.</p>

    <div className="mb-8">
      ```typescript theme={null}
      const tokenMint = 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v'; // USDC
      const kaminoManager = new KaminoManager(rpc, slotDuration);

      // Configure vault
      const kaminoVaultConfig = new KaminoVaultConfig({
        admin: adminSigner,
        tokenMint: tokenMint,
        performanceFeeRatePercentage: new Decimal(10.0),
        managementFeeRatePercentage: new Decimal(1.0),
        name: 'Earn USDC Vault',
        vaultTokenSymbol: 'kUSDC',
        vaultTokenName: 'kUSDC receipt',
      });

      const { vault: vaultSigner, initVaultIxs: instructions } =
        await kaminoManager.createVaultIxs(kaminoVaultConfig);
      ```
    </div>

    <div className="flex justify-center gap-8">
      <a href="/build/earn" className="flex items-center gap-1.5 whitespace-nowrap font-medium text-gray-600 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300">Start Earning <Icon icon="arrow-right" iconType="regular" className="w-4 h-4" /></a>
    </div>
  </div>

  <div className="max-w-6xl mx-auto py-16">
    <div className="w-full h-px bg-gray-200 dark:bg-white/10" />
  </div>

  <div className="max-w-6xl">
    <h2 className="text-2xl font-semibold mb-4 text-gray-800 dark:text-gray-100 text-center">Kamino management portal</h2>
    <p className="text-center mb-8 text-gray-600 dark:text-gray-400">No code solution to deploy markets, vaults and rewards.</p>

    <div className="grid grid-cols-1 gap-4 md:grid-cols-12 mb-8">
      <div className="md:col-span-4">
        <Card title="Earn Vaults" img="https://mintcdn.com/kamino-3d73a151/rka7pgwNfw-EvrLW/images/manage_earn_vaults.png?fit=max&auto=format&n=rka7pgwNfw-EvrLW&q=85&s=eb6da279b7d886297114b05372a12b9b" href="https://manage.kamino.com" target="_blank" width="1536" height="1024" data-path="images/manage_earn_vaults.png">
          Deploy custom earn vault and earn revenue share.
        </Card>
      </div>

      <div className="md:col-span-4">
        <Card title="Borrow markets" img="https://mintcdn.com/kamino-3d73a151/rka7pgwNfw-EvrLW/images/manage_borrow_markets.png?fit=max&auto=format&n=rka7pgwNfw-EvrLW&q=85&s=35887c5ad12f1edac63db1acbdf65a93" href="https://manage.kamino.com" target="_blank" width="1536" height="1024" data-path="images/manage_borrow_markets.png">
          Choose collateral, debt, interest rate and oracle.
        </Card>
      </div>

      <div className="md:col-span-4">
        <Card title="Incentive campaigns" img="https://mintcdn.com/kamino-3d73a151/rka7pgwNfw-EvrLW/images/manage_incentive_campaigns.png?fit=max&auto=format&n=rka7pgwNfw-EvrLW&q=85&s=c33e888858b784d04062eb14491c581d" href="https://manage.kamino.com" target="_blank" width="1536" height="1024" data-path="images/manage_incentive_campaigns.png">
          Incentive campaigns, points and more.
        </Card>
      </div>
    </div>

    <div className="flex justify-center gap-8 group-hover:opacity-[0.9] active:scale-[0.97] transition-transform duration-250">
      <a href="https://manage.kamino.com" target="_blank" className="flex items-center gap-1.5 whitespace-nowrap font-medium text-gray-600 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300">manage.kamino.com <Icon icon="arrow-up-right" iconType="regular" className="w-4 h-4" /></a>
    </div>
  </div>

  <div className="max-w-6xl mx-auto py-16">
    <div className="w-full h-px bg-gray-200 dark:bg-white/10" />
  </div>

  <div className="tools">
    <h2 className="text-2xl font-semibold mb-4 text-gray-800 dark:text-gray-100 text-center">Developer Tools</h2>

    <div className="grid grid-cols-2 gap-4 md:grid-cols-12">
      <div className="md:col-span-3">
        <Card title="TypeScript SDK" icon="book" href="https://github.com/Kamino-Finance/klend-sdk" />
      </div>

      <div className="md:col-span-3">
        <Card title="Earn Code Examples" icon="code" href="/build/earn/index" />
      </div>

      <div className="md:col-span-3">
        <Card title="Borrow Code Examples" icon="code" href="/build/borrow/index" />
      </div>

      <div className="md:col-span-3">
        <Card title="Smart Contract Repo" icon="github" href="https://github.com/Kamino-Finance/klend" />
      </div>
    </div>
  </div>
</div>

<div className="mt-16 md:mt-28" />
