Skip to content

Kamino-Finance/kamino-api-docs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 

Repository files navigation

📘 Kamino API

Kamino API is a TypeScript API (using Express) that serves public data of the Kamino Finance product.

Table of contents

Usage

Staking

Get staking yields v2

GET https://api.kamino.finance/v2/staking-yields

Example request: https://api.kamino.finance/v2/staking-yields

Example response:

[
  {
    "apy": "0.252619403785070711510296827413476389122",
    "tokenMint": "mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"
  },
  {
    "apy": "0.263020843260597671599388280100460408894",
    "tokenMint": "J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn"
  },
  {
    "apy": "0.24426365077443429533690036384035569496",
    "tokenMint": "bSo13r4TkiE4KumL71LsHTPpL2euBYLFx6h9HP3piy1"
  },
  {
    "apy": "0.2727867352767135230363060182415164271",
    "tokenMint": "jupSoLaHXQiZZTSfEWMTRRgpnyFm8f6sZdosWBjx93v"
  },
  {
    "apy": "0.282542463074495351542281213938801414377",
    "tokenMint": "he1iusmfkpAdwvxLNGV8Y1iSbj4rUy6yMhEA3fotn9A"
  }
]

Get median staking yields v2

GET https://api.kamino.finance/v2/staking-yields/median

Example request: https://api.kamino.finance/v2/staking-yields/median

Example response:

[
  {
    "apy": "0.252619403785070711510296827413476389122",
    "tokenMint": "mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"
  },
  {
    "apy": "0.263020843260597671599388280100460408894",
    "tokenMint": "J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn"
  },
  {
    "apy": "0.24426365077443429533690036384035569496",
    "tokenMint": "bSo13r4TkiE4KumL71LsHTPpL2euBYLFx6h9HP3piy1"
  },
  {
    "apy": "0.2727867352767135230363060182415164271",
    "tokenMint": "jupSoLaHXQiZZTSfEWMTRRgpnyFm8f6sZdosWBjx93v"
  },
  {
    "apy": "0.282542463074495351542281213938801414377",
    "tokenMint": "he1iusmfkpAdwvxLNGV8Y1iSbj4rUy6yMhEA3fotn9A"
  }
]

Get epochs

GET https://api.kamino.finance/epochs

Example request: https://api.kamino.finance/epochs

Example response:

[
    {
        "epoch": 627,
        "first_slot": 270864000,
        "last_slot": 271295999,
        "start_block_time": "2024-06-09T18:21:01.000Z",
        "end_block_time": "2024-06-11T23:21:40.000Z"
    },
    {
        "epoch": 626,
        "first_slot": 270432000,
        "last_slot": 270863999,
        "start_block_time": "2024-06-07T14:10:07.000Z",
        "end_block_time": "2024-06-09T18:21:00.000Z"
    }
]

Get staking rate history

GET https://api.kamino.finance/staking-rates/tokens/:mint/history?start={start timestamp}&end={end timestamp}&interpolate={true/false}

Example request: https://api.kamino.finance/staking-rates/tokens/mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So/history?start=2024-01-01T00:00Z&end=2024-02-01T01:00Z&interpolate=false

Example response (first item in array is epoch timestamp, second is stake rate):

[
  [
    1704067200000,
    "0.8636310820345713"
  ],
  [
    1704067500000,
    "0.8636310820345713"
  ],
  [
    1704067800000,
    "0.8636310820345713"
  ]
]

Get staking yield history

GET https://api.kamino.finance/staking-yields/tokens/:mint/history?start={start timestamp}&end={end timestamp}

Example request: https://api.kamino.finance/staking-yields/tokens/mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So/history?start=2024-01-01T00:00Z&end=2024-02-01T01:00Z

Example response:

[
  {
    "apy": "0.0685815525901495360734829436051179078079",
    "epoch": 587,
    "startBlockTime": "2024-03-11T21:37:21.000Z",
    "endBlockTime": "2024-03-14T00:25:05.000Z"
  },
  {
    "apy": "0.0772467014510651101771957924044147574663",
    "epoch": 586,
    "startBlockTime": "2024-03-09T19:55:31.000Z",
    "endBlockTime": "2024-03-11T21:37:20.000Z"
  }
]

Get median staking yield history

GET https://api.kamino.finance/staking-yields/tokens/:mint/history/median

Example request: https://api.kamino.finance/staking-yields/tokens/mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So/history

Example response:

[
  {
    "startEpoch": 502,
    "startBlockTime": "2023-09-11T05:22:50.000Z",
    "endBlockTime": "2023-10-05T01:18:02.000Z",
    "endEpoch": 512,
    "apy": 0.06882309627010348
  },
  {
    "startEpoch": 503,
    "startBlockTime": "2023-09-13T10:14:26.000Z",
    "endBlockTime": "2023-10-07T03:15:54.000Z",
    "endEpoch": 513,
    "apy": 0.06900975295240162
  }
]

Get yield history for specific source

GET https://api.kamino.finance/yields/:source/history

Example request, get JLP pool yield history: https://api.kamino.finance/yields/5BUwFW4nRbftYTDMbgxykoFWqWHPzahFSNAaaaJtVKsq/history

Example response (please note APR/APY is in decimal format, not in percentage, multiply by 100 to get percentage):

[
  {
    "createdOn": "2024-01-01T00:00:07.569Z",
    "apr": "5.16226661065975",
    "apy": "1.72282489033179"
  },
  {
    "createdOn": "2024-01-01T01:00:07.569Z",
    "apr": "5.53223063067687",
    "apy": "9.201613187495"
  }
]

Strategies Kamino

You may use the env query param for all the methods specified below (mainnet-beta[default],devnet,localnet,testnet).

Get frontend-enabled strategies:

// GET https://api.kamino.finance/strategies/enabled?env={cluster}
GET https://api.kamino.finance/strategies/enabled?env=mainnet-beta

Get specific strategy stats (tvl/pnl/shares..):

// GET https://api.kamino.finance/strategies/:strategy_pubkey/metrics?env={cluster}
GET https://api.kamino.finance/strategies/ByXB4xCxVhmUEmQj3Ut7byZ1Hbva1zhKjaVcv3jBMN7E/metrics?env=mainnet-beta

Get strategy stats for all frontend-enabled strategies (tvl/pnl/shares..):

// GET https://api.kamino.finance/strategies/metrics?env={cluster}
GET https://api.kamino.finance/strategies/metrics?env=mainnet-beta

Get strategy stats for strategies by status (tvl/pnl/shares..):

// GET https://api.kamino.finance/strategies/metrics?env={cluster}&status={status}
GET https://api.kamino.finance/strategies/metrics?env=mainnet-beta&status=IGNORED

Get strategy reward stats for all live strategies:

// GET https://api.kamino.finance/strategies/rewards?env={cluster}
GET https://api.kamino.finance/strategies/rewards?env=mainnet-beta

Example response:

[
    {
        "apr": "0.03089658127477581433161189171198501610943",
        "apy": "0.031377485860868284369015169698693427029",
        "totalReturn": "9959.75762697216",
        "totalInvestment": "322357.9184504589828735999999999999999998",
        "strategy": "2dczcMRpxWHZTcsiEjPT4YBcSseTaUmWFzw24HxYMFod",
        "token": "RAY",
        "rewardsPerDay": "137.8944",
        "rewardsPerHour": "5.7456",
        "rewardsPerSecond": "0.001596",
        "rewardIsOption": false      
    },
    {
        "apr": "0.1837059453843344336978185004649421142565",
        "apy": "0.201606883863164306468378664554523674214",
        "totalReturn": "39084.02775504",
        "totalInvestment": "212753.2000843610114423811349599999999999",
        "strategy": "6K4jM79yijUEFxdFhCFZSjav1nZji1gsxUWQE6XrC8YD",
        "token": "LDO",
        "rewardsPerDay": "48.386592",
        "rewardsPerHour": "2.016108",
        "rewardsPerSecond": "0.00056003",
        "rewardIsOption": false      
    }
]

Get strategy stats for rewards:

// GET https://api.kamino.finance/strategies/:strategy_pubkey/rewards?env={cluster}&year={year}
GET https://api.kamino.finance/strategies/ByXB4xCxVhmUEmQj3Ut7byZ1Hbva1zhKjaVcv3jBMN7E/rewards?env=mainnet-beta

Example response:

    {
        "apr": "0.03089658127477581433161189171198501610943",
        "apy": "0.031377485860868284369015169698693427029",
        "totalReturn": "9959.75762697216",
        "totalInvestment": "322357.9184504589828735999999999999999998",
        "strategy": "2dczcMRpxWHZTcsiEjPT4YBcSseTaUmWFzw24HxYMFod",
        "token": "RAY",
        "rewardsPerDay": "137.8944",
        "rewardsPerHour": "5.7456",
        "rewardsPerSecond": "0.001596",
        "rewardIsOption": false  
    }

Get rewards for eligible shareholders of a specific strategy:

This will fetch the last 14 days of data by default, you can use the start and end query parameter dates to change it.

Please note: This route is not exposed to the public and requires basic authentication.

Please use the public route to get rewards for a specific shareholder.

// GET https://api.kamino.finance/strategies/:strategy_pubkey/rewards?env={cluster}&start={start}&end={end}
GET https://api.kamino.finance/strategies/ByXB4xCxVhmUEmQj3Ut7byZ1Hbva1zhKjaVcv3jBMN7E/rewards/eligible-shareholders?env=mainnet-beta&start=2022-09-01&end=2022-09-30

Get amount of rewards for a specific Kamino shareholder (all strategies):

// GET https://api.kamino.finance/strategies/shareholders/:shareholder_pubkey/rewards/history?env={cluster}
GET https://api.kamino.finance/strategies/shareholders/GkeDRfHcACap2CM9oaWrb3QUMG7pk6F6EMYca8Lu52t8/rewards/history?env=mainnet-beta

Get strategy state history aggregated by the hour for a specific year (default current year, or use query param year):

⚠️ DEPRECATED, PLEASE USE /v2/strategies/:pubkey/history INSTEAD! ⚠️

// GET https://api.kamino.finance/strategies/:strategy_pubkey/history?env={cluster}&year={year}
GET https://api.kamino.finance/strategies/ByXB4xCxVhmUEmQj3Ut7byZ1Hbva1zhKjaVcv3jBMN7E/history?env=devnet&year=2022

Get full non-aggregated strategy state history for a specific year (default current year, or use query param year):

⚠️ DEPRECATED, PLEASE USE /v2/strategies/:pubkey/history INSTEAD! ⚠️

Please note: This route is not exposed to the public and requires basic authentication.

Please use the public route to get hourly aggregated history for a specific strategy.

// GET https://api.kamino.finance/strategies/:strategy_pubkey/full-history?env={cluster}&year={year}
GET https://api.kamino.finance/strategies/Cfuy5T6osdazUeLego5LFycBQebm9PP3H7VNdCndXXEN/full-history?env=mainnet-beta&year=2022

Get strategy state history v2:

GET https://api.kamino.finance/v2/strategies/:strategyPubkey/history?env={cluster}&start={start}&end={end}&frequency={frequency}

Query params:

  • env: solana cluster, e.g. "mainnet-beta" (default) | "devnet"
  • start: start date (inclusive), e.g. 2023-05-01T00:00:00.000Z (optional, default since beginning of strategy)
  • end: end date (exclusive), e.g. 2023-05-02T00:00:00.000Z (optional, default now)
  • frequency: frequency of the snapshots, e.g. "hour" (default) | "day"

Example requests:

Example response:

[
  {
    "timestamp": "2023-06-06T00:00:00.000Z",
    "feesCollectedCumulativeA": "4528.851182",
    "feesCollectedCumulativeB": "4388.399699",
    "rewardsCollectedCumulative0": "6816.973791",
    "rewardsCollectedCumulative1": "869.925191",
    "rewardsCollectedCumulative2": "0",
    "kaminoRewardsIssuedCumulative0": "0",
    "kaminoRewardsIssuedCumulative1": "0",
    "kaminoRewardsIssuedCumulative2": "0",
    "sharePrice": "1.009166844496339887986660123337354133388",
    "sharesIssued": "2000370.229713",
    "tokenAAmounts": "1941835.079462",
    "tokenBAmounts": "83285.638712",
    "tokenAPrice": "0.9966972458",
    "tokenBPrice": "0.99999998",
    "reward0Price": "0.042612354",
    "reward1Price": "0.6421835081",
    "reward2Price": "0.99999998",
    "kaminoReward0Price": "0",
    "kaminoReward1Price": "0",
    "kaminoReward2Price": "0",
    "totalValueLocked": "2018707.312543886771519599999999999999998983602957644",
    "solPrice": "0",
    "profitAndLoss": "0"
  }
]

Get user's shares history aggregated by the hour for a specific year (default current year, or use query param year):

// GET https://api.kamino.finance/owners/:owner_pubkey/strategies/:strategy_pubkey/shares/history?env={cluster}&year={year}
GET https://api.kamino.finance/owners/BabJ4KTDUDqaBRWLFza3Ek3zEcjXaPDmeRGRwusQyLPS/strategies/ByXB4xCxVhmUEmQj3Ut7byZ1Hbva1zhKjaVcv3jBMN7E/shares/history?env=mainnet-beta&year=2022

Get fees and rewards earned for a strategy shareholder:

// GET https://api.kamino.finance/strategies/:strategyPubkey/shareholders/:shareholderPubkey/fees-and-rewards?env={cluster}
GET https://api.kamino.finance/strategies/Cfuy5T6osdazUeLego5LFycBQebm9PP3H7VNdCndXXEN/shareholders/HZYHFagpyCqXuQjrSCN2jWrMHTVHPf9VWP79UGyvo95L/fees-and-rewards?env=mainnet-beta

Sample response:

{
    "feesAEarned": "31.32619353486741639998339868",
    "feesBEarned": "24.70081628219520072196336092",
    "feesAEarnedUsd": "31.256576407153470503340282981001181676",
    "feesBEarnedUsd": "24.698716826795158937664218970228174",
    "rewards0Earned": "0",
    "rewards1Earned": "0",
    "rewards2Earned": "0",
    "rewards0EarnedUsd": "0",
    "rewards1EarnedUsd": "0",
    "rewards2EarnedUsd": "0",
    "kaminoRewards0Earned": "712379.5022312449919715809869996",
    "kaminoRewards1Earned": "0",
    "kaminoRewards2Earned": "0",
    "kaminoRewards0EarnedUsd": "0.61236142011797819509877101642485616",
    "kaminoRewards1EarnedUsd": "0",
    "kaminoRewards2EarnedUsd": "0",
    "lastCalculated": "2023-01-12T13:10:21.212Z"
}
  • fees/rewards earned represent the amount of tokens earned from the first deposit
  • fees/rewards earned in USD represent the USD amount earned from the first deposit
  • rewards represent vault rewards, kamino rewards represent autocompounded rewards
  • last calculated refers to the last calculation date (fees and rewards are calculated every 5 minutes)

Get latest fees and rewards earned for a strategy shareholder:

Fetch strategy shareholder fees and rewards for only the latest position. This endpoint takes a look at when the user's position was last closed (fully withdrawn) and opened again and only calculates the fees and rewards after that time.

For all-time fees and rewards of a strategy shareholder use endpoint mentioned in the previous section (Get fees and rewards earned for a strategy shareholder above).

// GET https://api.kamino.finance/strategies/:strategyPubkey/shareholders/:shareholderPubkey/fees-and-rewards/latest-position?env={cluster}
GET https://api.kamino.finance/strategies/Cfuy5T6osdazUeLego5LFycBQebm9PP3H7VNdCndXXEN/shareholders/HZYHFagpyCqXuQjrSCN2jWrMHTVHPf9VWP79UGyvo95L/fees-and-rewards/latest-position?env=mainnet-beta

Example request:

https://api.kamino.finance/strategies/Cfuy5T6osdazUeLego5LFycBQebm9PP3H7VNdCndXXEN/shareholders/HZYHFagpyCqXuQjrSCN2jWrMHTVHPf9VWP79UGyvo95L/fees-and-rewards/latest-position?env=mainnet-beta

Sample response:

{
    "feesAEarned": "31.32619353486741639998339868",
    "feesBEarned": "24.70081628219520072196336092",
    "feesAEarnedUsd": "31.256576407153470503340282981001181676",
    "feesBEarnedUsd": "24.698716826795158937664218970228174",
    "rewards0Earned": "0",
    "rewards1Earned": "0",
    "rewards2Earned": "0",
    "rewards0EarnedUsd": "0",
    "rewards1EarnedUsd": "0",
    "rewards2EarnedUsd": "0",
    "kaminoRewards0Earned": "712379.5022312449919715809869996",
    "kaminoRewards1Earned": "0",
    "kaminoRewards2Earned": "0",
    "kaminoRewards0EarnedUsd": "0.61236142011797819509877101642485616",
    "kaminoRewards1EarnedUsd": "0",
    "kaminoRewards2EarnedUsd": "0",
    "lastCalculated": "2023-01-12T13:10:21.212Z"
}
  • fees/rewards earned represent the amount of tokens earned from the last deposit
  • fees/rewards earned in USD represent the USD amount earned from the last deposit
  • rewards represent vault rewards, kamino rewards represent autocompounded rewards
  • last calculated refers to the last calculation date (fees and rewards are calculated every 5 minutes)

Get fees and rewards for strategies:

GET https://api.kamino.finance/strategies/fees-and-rewards?env={cluster}&period={timePeriod}&status={strategyStatus}

Query params:

Example response:

[
  {
    "strategyPubkey": "2VQaDuSqqxeX2h9dS9WgpvN6ShaBxd8JjaaWEvbmTDY1",
    "feesAEarned": "1.037294",
    "feesBEarned": "2.753151",
    "rewards0Earned": "0",
    "rewards1Earned": "0",
    "rewards2Earned": "0",
    "kaminoRewards0Earned": "0",
    "kaminoRewards1Earned": "0",
    "kaminoRewards2Earned": "0",
    "feesAEarnedUsd": "1.0344169674816346",
    "feesBEarnedUsd": "2.75657612228428",
    "rewards0EarnedUsd": "0",
    "rewards1EarnedUsd": "0",
    "rewards2EarnedUsd": "0",
    "kaminoRewards0EarnedUsd": "0",
    "kaminoRewards1EarnedUsd": "0",
    "kaminoRewards2EarnedUsd": "0",
    "lastCalculated": "2023-03-24T14:14:13.885Z"
  },
  {
    "strategyPubkey": "2dczcMRpxWHZTcsiEjPT4YBcSseTaUmWFzw24HxYMFod",
    "feesAEarned": "1.389828787",
    "feesBEarned": "1.182662835",
    "rewards0Earned": "681.574997269",
    "rewards1Earned": "272.629657",
    "rewards2Earned": "0",
    "kaminoRewards0Earned": "351.579127",
    "kaminoRewards1Earned": "0",
    "kaminoRewards2Earned": "0",
    "feesAEarnedUsd": "29.78482623351582254",
    "feesBEarnedUsd": "27.9253762204614832164",
    "rewards0EarnedUsd": "31.2709271924846080985",
    "rewards1EarnedUsd": "66.55395386232317",
    "rewards2EarnedUsd": "0",
    "kaminoRewards0EarnedUsd": "85.68865812406762",
    "kaminoRewards1EarnedUsd": "0",
    "kaminoRewards2EarnedUsd": "0",
    "lastCalculated": "2023-03-24T14:14:13.885Z"
  }
]
  • fees/rewards earned represent the amount of tokens earned from the first deposit
  • fees/rewards earned in USD represent the USD amount earned from the first deposit
  • rewards represent vault rewards, kamino rewards represent autocompounded rewards
  • last calculated refers to the last calculation date (fees and rewards are calculated every 5 minutes)

Get PnL for a strategy shareholder position:

Caclulate profit and loss and cost basis for a Kamino strategy shareholder's latest position.

// GET https://api.kamino.finance/strategies/:strategyPubkey/shareholders/:shareholderPubkey/pnl?env={cluster}
GET https://api.kamino.finance/strategies/Cfuy5T6osdazUeLego5LFycBQebm9PP3H7VNdCndXXEN/shareholders/HZYHFagpyCqXuQjrSCN2jWrMHTVHPf9VWP79UGyvo95L/pnl?env=mainnet-beta

Example request:

https://api.kamino.finance/strategies/Cfuy5T6osdazUeLego5LFycBQebm9PP3H7VNdCndXXEN/shareholders/HZYHFagpyCqXuQjrSCN2jWrMHTVHPf9VWP79UGyvo95L/pnl?env=mainnet-beta

Sample response:

{
  "totalPnl": {
    "sol": "0.821586623506697901642320602103",
    "usd": "15.932660735531558716134077510914",
    "a": "0.821586623506697901642320602103",
    "b": "0.742615763210195652674132993392"
  },
  "totalCostBasis": {
    "sol": "1.263745586773755885725088551614",
    "usd": "24.507251109021206639863158576972",
    "a": "1.263745586773755885725088551614",
    "b": "1.142274431659923954552610113376"
  }
}

"a" and "b" properties in the response refer to the token A and token B that the strategy contains.

Get PnL history for a strategy shareholder:

Return PnL history data for strategy shareholder with mark to market analysis.

Returns hourly timeseries if user's latest position is under 15 days old, otherwise it returns daily timeseries data. This is an optimization for frontend charts.

// GET https://api.kamino.finance/strategies/:strategyPubkey/shareholders/:shareholderPubkey/pnl/history?env={cluster}&start={date}&end={date}
GET https://api.kamino.finance/strategies/Cfuy5T6osdazUeLego5LFycBQebm9PP3H7VNdCndXXEN/shareholders/HZYHFagpyCqXuQjrSCN2jWrMHTVHPf9VWP79UGyvo95L/pnl/history?env=mainnet-beta

Query params:

  • env: solana cluster, e.g. "mainnet-beta" (default) | "devnet"
  • start: start date (inclusive), e.g. 2023-05-01T00:55:00.000Z
  • end: end date (exclusive), e.g. 2023-05-01T00:55:00.000Z

Example request:

https://api.kamino.finance/strategies/Cfuy5T6osdazUeLego5LFycBQebm9PP3H7VNdCndXXEN/shareholders/HZYHFagpyCqXuQjrSCN2jWrMHTVHPf9VWP79UGyvo95L/pnl/history?env=mainnet-beta

Sample response:

{
  "history": [
    {
      "timestamp": 1672051577137,
      "type": "buy",
      "price": {
        "sol": "13.707781891346918813283886561673",
        "usd": "264.432819438594964488396234360437",
        "a": "13.707781891346918813283886561673",
        "b": "12.38943455028558047998876234889"
      },
      "quantity": "0.042891188",
      "positionPnl": {
        "sol": "0",
        "usd": "0",
        "a": "0",
        "b": "0"
      },
      "realizedPnl": {
        "sol": "0",
        "usd": "0",
        "a": "0",
        "b": "0"
      },
      "allHistoryPnl": {
        "sol": "0",
        "usd": "0",
        "a": "0",
        "b": "0"
      },
      "position": "0.042891188",
      "positionValue": {
        "sol": "0.587943050164756268041296075887",
        "usd": "11.341837771910831077725126706445",
        "a": "0.587943050164756268041296075887",
        "b": "0.531397566509994286056328243793"
      },
      "costBasis": {
        "sol": "0.587943050164756268041296075887",
        "usd": "11.341837771910831077725126706445",
        "a": "0.587943050164756268041296075887",
        "b": "0.531397566509994286056328243793"
      },
      "investment": {
        "sol": "0.587943050164756268041296075887",
        "usd": "11.341837771910831077725126706445",
        "a": "0.587943050164756268041296075887",
        "b": "0.531397566509994286056328243793"
      }
    }
  ],
  "totalPnl": {
    "sol": "0.815290185426638259315771871017",
    "usd": "15.727525000165956333285426076312",
    "a": "0.815290185426638259315771871017",
    "b": "0.736879567525786810587921709799"
  },
  "totalCostBasis": {
    "sol": "1.270417392486119200058849813594",
    "usd": "24.507251109021206639863158576972",
    "a": "1.270417392486119200058849813594",
    "b": "1.148234868376991871955894984218"
  },
  "strategy": "ByXB4xCxVhmUEmQj3Ut7byZ1Hbva1zhKjaVcv3jBMN7E",
  "wallet": "2VGzusQTEFJneuTWd7RQXx53vXiTi2qNYXx4ftj26Vvb"
}

"a" and "b" properties in the response refer to the token A and token B that the strategy contains.

Transaction type can be buy, sell or mark-to-market. Buys and sells are actual transactions of the user. Mark to market represents potential position and PnL if they bought/sold at that specific time.

Get volume for strategies:

⚠️ DEPRECATED, PLEASE USE /v2/strategies/volume INSTEAD! ⚠️

GET https://api.kamino.finance/strategies/volume?env={cluster}&status={strategyStatus}

Query params:

Example response:

[
  {
    "strategy": "6K4jM79yijUEFxdFhCFZSjav1nZji1gsxUWQE6XrC8YD",
    "kaminoVolume": [
      {
        "period": "24h",
        "amount": "0"
      },
      {
        "period": "7d",
        "amount": "4943.5832904232213864595352"
      },
      {
        "period": "30d",
        "amount": "70711922.7175338705593670146676"
      }
    ],
    "poolVolume": [
      {
        "period": "24h",
        "amount": "32449.432601658486"
      },
      {
        "period": "7d",
        "amount": "199221.15394896772"
      },
      {
        "period": "30d",
        "amount": "1493200.352996167"
      }
    ]
  }
]

Get volume for all strategies v2:

Return 24h/7d/30d volume (in USD) for every single Kamino strategy.

GET https://api.kamino.finance/v2/strategies/volume?env={cluster}

Query params:

  • env: solana cluster, e.g. "mainnet-beta" (default) | "devnet"

Example request: https://api.kamino.finance/v2/strategies/volume?env=mainnet-beta

Example response:

[
  {
    "strategy": "BfyQYYr2T9eJfMfq5gPXcq3SUkJSh2ahtk7ZNUCzkx9e",
    "kaminoVolume": [
      {
        "period": "24h",
        "amount": "110492.5009755243"
      },
      {
        "period": "7d",
        "amount": "2720522.381172522"
      },
      {
        "period": "30d",
        "amount": "5617787.72039797"
      }
    ]
  },
  {
    "strategy": "9zBNQtnenpQY6mCoRqbPpeePeSy17h34DZP82oegt1fL",
    "kaminoVolume": [
      {
        "period": "24h",
        "amount": "110492.5009755243"
      },
      {
        "period": "7d",
        "amount": "2720522.381172522"
      },
      {
        "period": "30d",
        "amount": "5617787.72039797"
      }
    ]
  }
]

Get volume for specific strategy v2:

Return 24h/7d/30d volume (in USD) for specified Kamino strategy.

GET https://api.kamino.finance/v2/strategies/:strategyPubkey/volume?env={cluster}

Query params:

  • env: solana cluster, e.g. "mainnet-beta" (default) | "devnet"

Example request: https://api.kamino.finance/v2/strategies/BfyQYYr2T9eJfMfq5gPXcq3SUkJSh2ahtk7ZNUCzkx9e/volume?env=mainnet-beta

Example response:

{
  "strategy": "BfyQYYr2T9eJfMfq5gPXcq3SUkJSh2ahtk7ZNUCzkx9e",
  "kaminoVolume": [
    {
      "period": "24h",
      "amount": "110492.5009755243"
    },
    {
      "period": "7d",
      "amount": "2720522.381172522"
    },
    {
      "period": "30d",
      "amount": "5617787.72039797"
    }
  ]
}

Get all-time Kamino volume:

GET https://api.kamino.finance/strategies/all-time-volume?env={cluster}

Query params:

  • env: solana cluster, e.g. "mainnet-beta" (default) | "devnet"

Example request:

https://api.kamino.finance/strategies/all-time-volume

Example response:

{
  "volumeUsd": "106015327.76",
  "lastCalculated": "2023-04-13T15:55:31.761Z"
}

Get all-time Kamino fees and rewards:

GET https://api.kamino.finance/strategies/all-time-fees-and-rewards?env={cluster}

Query params:

  • env: solana cluster, e.g. "mainnet-beta" (default) | "devnet"

Example request:

https://api.kamino.finance/strategies/all-time-fees-and-rewards

Example response:

{
  "feesAEarnedUsd": "59246.89656897732967689080867366185019",
  "feesBEarnedUsd": "57080.94920621374904358352501138520562",
  "rewards0EarnedUsd": "5927.1681652971537634193",
  "rewards1EarnedUsd": "4404.4392311526895494322",
  "rewards2EarnedUsd": "0",
  "kaminoRewards0EarnedUsd": "39648.8949681613351787107",
  "kaminoRewards1EarnedUsd": "1231.803977675133",
  "kaminoRewards2EarnedUsd": "0",
  "totalUsd": "167540.15211747739021203653368504705581",
  "lastCalculated": "2023-04-14T09:52:59.292Z"
}

If you want to get a breakdown of all-time Kamino fees and rewards for each strategy, you can use this endpoint instead:

GET https://api.kamino.finance/strategies/all-time-fees-and-rewards/breakdown?env={cluster}

Example request:

https://api.kamino.finance/strategies/all-time-fees-and-rewards/breakdown

Example response:

{
  "lastCalculated": "2023-06-27T13:58:16.619Z",
  "strategies": [
    {
      "strategyPubkey": "12iZna9cRnhSY85cDTvas3mav36bYE9WeDuL9uFzH2Zw",
      "feesAEarned": "0.08458176",
      "feesBEarned": "0.00064853",
      "rewards0Earned": "0",
      "rewards1Earned": "0",
      "rewards2Earned": "0",
      "kaminoRewards0Earned": "0",
      "kaminoRewards1Earned": "0",
      "kaminoRewards2Earned": "0",
      "feesAEarnedUsd": "1.492410700820064",
      "feesBEarnedUsd": "1.114493941025",
      "rewards0EarnedUsd": "0",
      "rewards1EarnedUsd": "0",
      "rewards2EarnedUsd": "0",
      "kaminoRewards0EarnedUsd": "0",
      "kaminoRewards1EarnedUsd": "0",
      "kaminoRewards2EarnedUsd": "0",
      "totalUsd": "2.606904641845064"
    },
    {
      "strategyPubkey": "13GDKPRjvK5GWtk8YNTMGj7S4PzhQ6gpQdHJpmCSmWn6",
      "feesAEarned": "0",
      "feesBEarned": "0",
      "rewards0Earned": "0",
      "rewards1Earned": "0",
      "rewards2Earned": "0",
      "kaminoRewards0Earned": "0",
      "kaminoRewards1Earned": "0",
      "kaminoRewards2Earned": "0",
      "feesAEarnedUsd": "0",
      "feesBEarnedUsd": "0",
      "rewards0EarnedUsd": "0",
      "rewards1EarnedUsd": "0",
      "rewards2EarnedUsd": "0",
      "kaminoRewards0EarnedUsd": "0",
      "kaminoRewards1EarnedUsd": "0",
      "kaminoRewards2EarnedUsd": "0",
      "totalUsd": "0"
    }
  ]
}

Get Kamino TVL:

GET https://api.kamino.finance/strategies/tvl?env={cluster}

Query params:

  • env: solana cluster, e.g. "mainnet-beta" (default) | "devnet"

Example request:

https://api.kamino.finance/strategies/tvl?env=mainnet-beta

Example response:

{
  "tvl": "8360625.990205809513007916645145375207353"
}

Get all strategies with filters

  • The current filters that are supported are:
    • strategyType which can be:

      • NON_PEGGED: e.g. SOL-BONK
      • PEGGED: e.g. BSOL-JitoSOL
      • STABLE: e.g. USDH-USDC
    • strategyCreationStatus which can be:

      • IGNORED
      • SHADOW
      • LIVE
      • DEPRECATED
      • STAGING

If no filters are provided all strategies are fetched

GET https://api.kamino.finance/strategies?env={cluster}&type={type}&status={status}

Examples:

Get all NON_PEGGED strategies

GET https://api.kamino.finance/strategies?type=NON_PEGGED

Get all STAGING strategies

GET https://api.kamino.finance/strategies?status=STAGING

Get total token amounts in live strategies

GET https://api.kamino.finance/strategies/tokens/{tokenMint}/amounts?env={cluster}

Example request to get total MSOL stored in Kamino: https://api.kamino.finance/strategies/tokens/mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So/amounts?env=mainnet-beta

Example response:

{
    "totalTokenAmount": "2643,805199154",
    "vaults": [
        {
            "address": "9zBNQtnenpQY6mCoRqbPpeePeSy17h34DZP82oegt1fL",
            "frontendUrl": "https://app.kamino.finance/liquidity/9zBNQtnenpQY6mCoRqbPpeePeSy17h34DZP82oegt1fL",
            "amount": "1641.613204799"
        },
        {
            "address": "F3v6sBb5gXL98kaMkaKm5GfEoBNUaSd3ZGErbjqgzTho",
            "frontendUrl": "https://app.kamino.finance/liquidity/F3v6sBb5gXL98kaMkaKm5GfEoBNUaSd3ZGErbjqgzTho",
            "amount": "1002.191994355"
        }
    ],
    "timestamp": "2023-02-21T12:09:21.304Z"
}

Get strategy historical ranges

GET https://api.kamino.finance/strategies/:strategyPubkey/ranges/history?env={cluster}&period={24h/7d/30d}&start={timestamp}&end={timestamp}

Example requests:

Query params:

  • env: solana cluster, e.g. "mainnet-beta" (default) | "devnet"
  • period: time period for fees and rewards "24h" (default) | "7d" | "30d"
  • start: start date (inclusive), e.g. 2023-05-01T00:55:00.000Z
  • end: end date (exclusive), e.g. 2023-05-01T00:55:00.000Z

You can either use a custom range with start/end query params, or a fixed range with period query param. Fixed range should generally be faster due to caching.

Example response:

[
  {
    "poolPrice": "0.9972366173254501385554518847257254077598",
    "priceLower": "0.9967056034608861435985512952707255012191",
    "priceUpper": "0.9991004498350494870014376094211437370195",
    "oraclePrice": "0.9971830421584632669044453843263363536864",
    "rebalanceParams": {
      "rangePriceLower": "0.9967056034608861435985512952707255012191",
      "rangePriceUpper": "0.9991004498350494870014376094211437370195"
    },
    "date": "2023-06-25T12:00:00.000Z"
  },
  {
    "poolPrice": "0.9972366173254501385554518847257254077598",
    "priceLower": "0.9967056034608861435985512952707255012191",
    "priceUpper": "0.9991004498350494870014376094211437370195",
    "oraclePrice": "0.9971830421584632669044453843263363536864",
    "rebalanceParams": {
      "rangePriceLower": "0.9967056034608861435985512952707255012191",
      "rangePriceUpper": "0.9991004498350494870014376094211437370195"
    },
    "date": "2023-06-25T13:00:00.000Z"
  }
]

Get strategy metrics history

GET https://api.kamino.finance/strategies/:strategyPubkey/metrics/history?env={cluster}&period={24h/7d/30d}&start={timestamp}&end={timestamp}

Example requests:

Query params:

  • env: solana cluster, e.g. "mainnet-beta" (default) | "devnet"
  • period: time period for fees and rewards "24h" (default) | "7d" | "30d"
  • start: start date (inclusive), e.g. 2023-05-01T00:00:00.000Z
  • end: end date (exclusive), e.g. 2023-06-01T00:00:00.000Z

You can either use a custom range with start/end query params, or a fixed range with period query param. Fixed range should generally be faster due to caching.

Example response:

[
  {
    "date": "2023-06-28T13:00:00.000Z",
    "feesAndRewards24hUsd": "6.892236874",
    "volume24hUsd": "137960909.25357357",
    "cumulativeFeesAndRewardsUsd": "65507.881823738092895",
    "apy24h": "0.001245986450885626907330639945496746179"
  },
  {
    "date": "2023-06-28T12:00:00.000Z",
    "feesAndRewards24hUsd": "6.3897214358",
    "volume24hUsd": "137922148.76631424",
    "cumulativeFeesAndRewardsUsd": "65507.881823738092895",
    "apy24h": "0.001186575692116333812242675851871094793"
  }
]

Get strategy shareholders history

GET https://api.kamino.finance/strategies/:strategyPubkey/shareholders/history?env={cluster}&start={start}&end={end}&frequency={frequency}

Query params:

  • env: solana cluster, e.g. "mainnet-beta" (default) | "devnet"
  • start: start date (inclusive), e.g. 2023-05-01T00:00:00.000Z (optional, default since beginning of strategy)
  • end: end date (exclusive), e.g. 2023-05-02T00:00:00.000Z (optional, default now)
  • frequency: frequency of the snapshots, e.g. "hour" (default) | "day"

Example requests:

Example response:

[
    {
        "timestamp": "2023-06-06T11:00:00.000Z",
        "shareholders": [
            {
                "sharesAmount": "25215.549995",
                "sharePrice": "1.067670377475403913338573081893682618365",
                "sharesUsd": "26921.89578141156925960743690845138333804",
                "tokenAAmount": "820.4214362237481540135710513269",
                "tokenAPrice": "19.98425069",
                "tokenAUsd": "16395.507652945230041231933551843626740561",
                "tokenBAmount": "0.408879105380424526340758204",
                "tokenBPrice": "25744.5",
                "tokenBUsd": "10526.388128466339218379649582878",
                "wallet": "7tH1k4PsMu3sNUYJxD5ezxhAmYYXyVVZz5c3dbaxcvUV"
            },
            {
                "sharesAmount": "0.853582",
                "sharePrice": "1.067670377475403913338573081893682618365",
                "sharesUsd": "0.9113442161462102231553658883889733967492",
                "tokenAAmount": "0.027772424972431754280993115411983",
                "tokenAPrice": "19.98425069",
                "tokenAUsd": "0.55501110291829251646784712055717090201827",
                "tokenBAmount": "0.00001384113551352396460160423028",
                "tokenBPrice": "25744.5",
                "tokenBUsd": "0.35633311322791770668600010644346",
                "wallet": "BUfcRmRPQNqMbPSKh6a7Pp3tSTneNMt2zWYr5DefW5hd"
            }
        ]
    }
]

Get strategies start date overrides

GET https://api.kamino.finance/strategies/start-date-overrides?env={cluster}

Query params:

  • env: solana cluster, e.g. "mainnet-beta" (default) | "devnet"

Example request:

Example response:

[
  {
    "strategy": "Cfuy5T6osdazUeLego5LFycBQebm9PP3H7VNdCndXXEN",
    "start": "2022-09-01T00:00:00.000Z"
  },
  {
    "strategy": "ByXB4xCxVhmUEmQj3Ut7byZ1Hbva1zhKjaVcv3jBMN7E",
    "start": "2022-09-01T00:00:00.000Z"
  },
  {
    "strategy": "98kNMp1aqWoYAaUU8m5REBAYVwhFb4aX9yoSpgq8kUFu",
    "start": "2022-09-01T00:00:00.000Z"
  }
]

Whirlpools Kamino

You may use the env query param for all the methods specified below (mainnet-beta[default],devnet,localnet,testnet).

Get Orca whirlpool history for a specific year (default current year, or use query param year):

// GET https://api.kamino.finance/whirlpools/:whirlpool_pubkey/history?env={cluster}&year={year}
GET https://api.kamino.finance/whirlpools/BabJ4KTDUDqaBRWLFza3Ek3zEcjXaPDmeRGRwusQyLPS/history?env=mainnet-beta&year=2022

Get whirlpools TVL

Get all unique Orca/Raydium pools from Kamino strategies and return their TVL:

GET https://api.kamino.finance/whirlpools/tvl?env={cluster}

Example request:

https://api.kamino.finance/whirlpools/tvl

Response example:

[
    {
        "tvl": "10628.86524130715",
        "pool": "3BScXnPjT4hut1G5yJ5UGQWhUmoYxyBFQf3juLBeMH2S"
    },
    {
        "tvl": "522635.86139358365",
        "pool": "4nFbdT7DeXATvaRZfR3WqALGJnogMjqe9vf2H6C1WXBr"
    }
]

Get whirlpool fees

Get all unique Orca/Raydium pools from Kamino strategies and return their fees:

GET https://api.kamino.finance/whirlpools/fees?env={cluster}

Example request:

https://api.kamino.finance/whirlpools/fees

Response example:

[
  {
    "fees": [
      {
        "period": "24h",
        "amount": "0.13107745873661961"
      },
      {
        "period": "7d",
        "amount": "0.4323762174032862"
      },
      {
        "period": "30d",
        "amount": "0.52013355740328621"
      }
    ],
    "pool": "H1fREbTWrkhCs2stH3tKANWJepmqeF9hww4nWRYrM7uV"
  },
  {
    "fees": [
      {
        "period": "24h",
        "amount": "437.0303313444236"
      },
      {
        "period": "7d",
        "amount": "2578.2959811239195"
      },
      {
        "period": "30d",
        "amount": "7032.52314803323"
      }
    ],
    "pool": "BVXNG6BrL2Tn3NmppnMeXHjBHTaQSnSnLE99JKwZSWPg"
  }
]

kToken metadata (Kamino)

You may use the env query param for all the methods specified below (mainnet-beta[default],devnet,localnet,testnet).

All mints must be valid kToken mints.

Get kToken metadata for mint:

// GET https://api.kamino.finance/ktokens/:mint/metadata
GET https://api.kamino.finance/ktokens/BabJ4KTDUDqaBRWLFza3Ek3zEcjXaPDmeRGRwusQyLPS/metadata

Get kToken image for mint:

// GET https://api.kamino.finance/ktokens/:mint/metadata/image.svg
GET https://api.kamino.finance/ktokens/BabJ4KTDUDqaBRWLFza3Ek3zEcjXaPDmeRGRwusQyLPS/metadata/image.svg

Prices

Get all prices:

GET https://api.kamino.finance/prices?env={cluster}&source={priceSource:scope(default)|birdeye}

Example request: https://api.kamino.finance/prices?env=mainnet-beta&source=scope Example response:

[
    {
        "usdPrice": "22.382246552631578",
        "token": "SOL",
        "mint": "So11111111111111111111111111111111111111112"
    },
    {
        "usdPrice": "1580.8847893915756",
        "token": "ETH",
        "mint": "7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"
    }
]

Get specific token price:

GET https://api.kamino.finance/prices?env={cluster}&source={priceSource:scope(default)|birdeye}&token={tokenName or mint}

Example requests:

[
    {
        "usdPrice": "22.382246552631578",
        "token": "SOL",
        "mint": "So11111111111111111111111111111111111111112"
    }
]

Get token price history:

GET https://api.kamino.finance/prices/history?env={cluster}&token={name or mint}&start={start}&end={end}&frequency={frequency}&type={type}

Query params:

  • env: solana cluster, e.g. "mainnet-beta" (default) | "devnet"
  • token: name (deprecated soon) or mint (use of mint recommended!) pubkey, e.g. "SOL" or "So11111111111111111111111111111111111111112"
  • start: start date (inclusive), e.g. 2023-05-01T00:55:00.000Z (optional, default 1 day ago)
  • end: end date (inclusive), e.g. 2023-05-01T00:55:00.000Z (optional, default now)
  • frequency: frequency of the prices, e.g. "minute" (default) | "hour" | "day" for price every minute/hour/day for the specified timeseries
  • type: price type, e.g. "spot" (default) | "TWAP"

Example requests:

Example response:

[
    [
        "17.35422124",  // <-- token price
        1668162327      // <-- seconds since epoch
    ],
    [
        "16.51238765",
        1668172327
    ]
]

Get token price moving averages:

GET https://api.kamino.finance/prices/moving-averages?env={cluster:optional, default mainnet}&token={tokenName:required}&durationInSec={duration:optional, default 3600}

Example request: https://api.kamino.finance/prices/moving-averages?env=mainnet-beta&token=SOL&durationInSec=3600

Example response:

[
    {
        "pair": "SOL/USD",
        "sma": "21.8084071408819895",
        "priceCount": "2",
        "start": "2023-02-14T15:36:42.498Z",
        "end": "2023-02-14T15:39:03.759Z",
        "ema": "21.8084071408819895",
        "source": "birdeye"
    }
]

Transactions

Get all kamino transactions v2

Get all instructions for the specified Kamino (liquidity) shareholder.

// GET https://api.kamino.finance/v2/shareholders/:shareholderPubkey/transactions?env={cluster}
GET https://api.kamino.finance/v2/shareholders/7QnXf4d1YQ6k8oTzCLXjEiikGFm3KRZgmFJmry9vZxdW/transactions?env=mainnet-beta

Example response:

{
  "transactions": [
    {
      "createdOn": "2024-02-02T12:07:19.000Z",
      "timestamp": "1706875639000",
      "transactionSignature": "DyUW9Rhkis65Y4RAoD6Xj3C2iZQigZn67ZJt5P11Uk8kZxC9Zx8r84bsAKYMgfvzows1LNPDmB3hD5kimHqjufF",
      "transactionName": "deposit",
      "strategy": "HBuYwvq67VKnLyKxPzDjzskyRMk7ps39gwHdvaPGwdmQ",
      "tokenA": "JUP",
      "tokenAMint": "JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN",
      "tokenAAmount": "1172.664445",
      "tokenAPrice": "1.4235452",
      "tokenB": "bSOL",
      "tokenBMint": "bSo13r4TkiE4KumL71LsHTPpL2euBYLFx6h9HP3piy1",
      "tokenBAmount": "6.452820291",
      "tokenBPrice": "1.55343",
      "usdValue": "1345.28593",
      "numberOfShares": "5315.114625",
      "sharePrice": "0.1248459",
      "solPrice": "90.1348745894",
      "latestPosition": true
    }
  ]
}

Kamino Lending

Get All Kamino Markets config V2

GET https://api.kamino.finance/kamino-market?programId={programId}

Example: https://api.kamino.finance/kamino-market?programId=KLend2g3cP87fffoy8q1mQqGKjrxjC8boSyAYavgmjD

Get Kamino Market config V2

GET https://api.kamino.finance/kamino-market/:marketPubkey?programId={programId}

Example: https://api.kamino.finance/kamino-market/6WVSwDQXrBZeQVnu6hpnsRZhodaJTZBUaC334SiiBKdb?programId=SLendK7ySfcEzyaFqy93gDnD3RtrpXJcnRwb6zFHJSh

Get KLend Market metrics history

GET https://api.kamino.finance/kamino-market/:marketPubkey/metrics/history?env={cluster}&start={date}&end={date}'

Example: https://api.kamino.finance/kamino-market/9pMFoVgsG2cNiUCSBEE69iWFN7c1bz9gu9TtPeXkAMTs/metrics/history?env=mainnet-beta&start=2023-01-01&end=2023-01-02

Example response:

[
  {
    "market": "9pMFoVgsG2cNiUCSBEE69iWFN7c1bz9gu9TtPeXkAMTs",
    "timestamp": "2023-06-29T15:15:26.464Z",
    "metrics": { "tvl": 234.14377328764223, "obligations": 38 }
  },
  {
    "market": "9pMFoVgsG2cNiUCSBEE69iWFN7c1bz9gu9TtPeXkAMTs",
    "timestamp": "2023-06-29T16:50:08.601Z",
    "metrics": { "tvl": "234.14377328764223401824", "obligations": 38 }
  },
  {
    "market": "9pMFoVgsG2cNiUCSBEE69iWFN7c1bz9gu9TtPeXkAMTs",
    "timestamp": "2023-06-30T18:02:39.430Z",
    "metrics": { "tvl": "234.14377328764223401824", "obligations": 38 }
  }
]

Get KLend reserve history

GET https://api.kamino.finance/kamino-market/:marketPubkey/reserves/:reservePubkey/metrics/history?env={cluster}&start={date}&end={date}&frequency={frequency}'

Query params:

  • env: solana cluster, e.g. "mainnet-beta" (default) | "devnet"
  • start: start date (inclusive), e.g. 2023-05-01T00:00:00.000Z (optional, default since beginning of strategy)
  • end: end date (exclusive), e.g. 2023-05-02T00:00:00.000Z (optional, default now)
  • frequency: frequency of the snapshots, e.g. "hour" (default) | "day"

Example: https://api.kamino.finance/kamino-market/9pMFoVgsG2cNiUCSBEE69iWFN7c1bz9gu9TtPeXkAMTs/reserves/HcHkvZEDechu7bruV8zvMN11v9yHg3iY4QHNgrYUATmm/metrics/history?env=mainnet-beta&start=2023-01-01&end=2023-01-02&frequency=hour

{
  "reserve": "5ZQCZt4UV3b7SzR3nPRgqbFE1XAUmo1yVfNanGM7qFVj",
  "market": "9pMFoVgsG2cNiUCSBEE69iWFN7c1bz9gu9TtPeXkAMTs",
  "history": [
    {
      "metrics": {
        "tvl": "21.58894844114247816444",
        "symbol": "USDH",
        "decimals": 6,
        "borrowCurve": [
          [0, 0.0001],
          [0.7, 0.1],
          [1, 1.5]
        ],
        "mintAddress": "USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX",
        "borrowFactor": 0,
        "exchangeRate": 0.9749784180009508,
        "assetPriceUSD": 0.9971944372197178,
        "mintTotalSupply": "21.833854",
        "totalSupplyWads": "22.411148742143389807977042",
        "liquidationBonus": 0,
        "loanToValueRatio": 0.75,
        "protocolTakeRate": 0.1,
        "totalBorrowsWads": "0.761460742143389807977042",
        "utilizationRatio": 0.033976872444360214,
        "borrowInterestAPY": 0.004961253732466142,
        "supplyInterestAPY": 0.00016816974038857957,
        "reserveBorrowLimit": "10000000000",
        "totalLiquidityWads": "21.649688",
        "borrowFeePercentage": 0.001,
        "reserveDepositLimit": "10000000000",
        "liquidationThreshold": 0.8,
        "borrowLimitCrossedSlot": 0,
        "flashLoanFeePercentage": 0.003,
        "accumulatedProtocolFees": "0.01695662785321651304",
        "depositLimitCrossedSlot": 0,
        "cumulativeBorrowRateWads": "1033653581204157935"
      }
    }
  ]
}

Get KLend reserve borrow APY and staking APY history

Get history of klend reserve borrow interest APY and staking APY. This will only return data for reserves that contain a LST token with staking yield.

GET https://api.kamino.finance/kamino-market/:marketPubkey/reserves/:reservePubkey/borrow-and-staking-apys/history?env={cluster}&start={date}&end={date}'

Median:

GET https://api.kamino.finance/kamino-market/:marketPubkey/reserves/:reservePubkey/borrow-and-staking-apys/history/median?env={cluster}&start={date}&end={date}'

Query params:

  • env: solana cluster, e.g. "mainnet-beta" (default) | "devnet"
  • start: start date (inclusive), e.g. 2023-05-01T00:00:00.000Z
  • end: end date (exclusive), e.g. 2023-05-02T00:00:00.000Z

Examples:

[
  {
    "createdOn": "2023-10-17T15:00:06.009Z",
    "borrowInterestApy": "0.027610992938039702",
    "stakingApy": "0.066527842899023711405366628964490454572"
  },
  {
    "createdOn": "2023-10-17T15:05:06.009Z",
    "borrowInterestApy": "0.017610992938039702",
    "stakingApy": "0.078527842899023711405366628964490454572"
  }
]

Get KLend obligation history

GET https://api.kamino.finance/kamino-market/:marketPubkey/obligations/:obligationPubkey/metrics/history?env={cluster}&start={date}&end={date}&frequency={frequency}'

Query params:

  • env: solana cluster, e.g. "mainnet-beta" (default) | "devnet"
  • start: start date (inclusive), e.g. 2023-05-01T00:00:00.000Z (optional, default since beginning of strategy)
  • end: end date (exclusive), e.g. 2023-05-02T00:00:00.000Z (optional, default now)
  • frequency: frequency of the snapshots, e.g. "hour" (default) | "day"

Example: https://api.kamino.finance/kamino-market/9pMFoVgsG2cNiUCSBEE69iWFN7c1bz9gu9TtPeXkAMTs/obligations/63QrAB1okxCc4FpsgcKYHjYTp1ua8ch6mLReyKRdc22o/metrics/history?env=mainnet-beta&start=2023-01-01&end=2023-01-02&frequency=day

Example response:

{
  "obligation": "63QrAB1okxCc4FpsgcKYHjYTp1ua8ch6mLReyKRdc22o",
  "market": "9pMFoVgsG2cNiUCSBEE69iWFN7c1bz9gu9TtPeXkAMTs",
  "history": [
    {
      "timestamp": "2023-07-11T09:51:40.498Z",
      "stats": {
        "leverage": 1.8849400779844114,
        "positions": 2,
        "borrowLimit": 0.20884206942858852,
        "loanToValue": 0.46947915656326233,
        "netAccountValue": 0.14772676109110466,
        "userTotalBorrow": 0.13072933148034668,
        "userTotalDeposit": 0.2784560925714514,
        "borrowUtilization": 0.6259722087510164,
        "liquidationThreshold": 0.22276487405716108
      },
      "deposits": [
        {
          "amount": "11442889",
          "marketValue": "0.27845609257145136",
          "mintAddress": "mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"
        }
      ],
      "borrows": [
        {
          "amount": "6024369",
          "marketValue": "0.13072933148034669",
          "mintAddress": "So11111111111111111111111111111111111111112"
        }
      ],
      "tag": 1
    }
  ]
}

Get KLend obligation history V2

GET https://api.kamino.finance/v2/kamino-market/:marketPubkey/obligations/:obligationPubkey/metrics/history?env={cluster}&start={date}&end={date}&useStakeRateForObligation={true|false}'

Query params:

  • env: solana cluster, e.g. "mainnet-beta" (default) | "devnet"
  • start: start date (inclusive), e.g. 2023-05-01T00:00:00.000Z (optional, default since beginning of strategy)
  • end: end date (exclusive), e.g. 2023-05-02T00:00:00.000Z (optional, default now)
  • useStakeRateForObligation: uses stake rate to calc net sol value

Example: https://api.kamino.finance/v2/kamino-market/9pMFoVgsG2cNiUCSBEE69iWFN7c1bz9gu9TtPeXkAMTs/obligations/63QrAB1okxCc4FpsgcKYHjYTp1ua8ch6mLReyKRdc22o/metrics/history?env=mainnet-beta&start=2023-01-01&end=2023-01-02&frequency=day&useStakeRateForObligation=true

Example response:

{
  "obligation": "63QrAB1okxCc4FpsgcKYHjYTp1ua8ch6mLReyKRdc22o",
  "market": "9pMFoVgsG2cNiUCSBEE69iWFN7c1bz9gu9TtPeXkAMTs",
  "history": [
    {
      "timestamp": "2023-07-11T09:51:40.498Z",
      "stats": {
        "leverage": 1.8849400779844114,
        "positions": 2,
        "borrowLimit": 0.20884206942858852,
        "loanToValue": 0.46947915656326233,
        "netAccountValue": 0.14772676109110466,
        "userTotalBorrow": 0.13072933148034668,
        "userTotalDeposit": 0.2784560925714514,
        "borrowUtilization": 0.6259722087510164,
        "liquidationThreshold": 0.22276487405716108
      },
      "deposits": [
        {
          "amount": "11442889",
          "marketValue": "0.27845609257145136",
          "mintAddress": "mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"
        }
      ],
      "borrows": [
        {
          "amount": "6024369",
          "marketValue": "0.13072933148034669",
          "mintAddress": "So11111111111111111111111111111111111111112"
        }
      ],
      "tag": 1
    }
  ]
}

Get all user obligations

GET https://api.kamino.finance/kamino-market/:marketPubkey/users/:userPubkey/obligations?env={cluster}'

Query params:

  • env: solana cluster, e.g. "mainnet-beta" (default) | "devnet"

Example: https://api.kamino.finance/kamino-market/7u3HeHxYDLhnCoErrtycNokbQYbWGzLs6JSDqGAv5PfF/users/AcNSmd5CxwLs21TYUmhWt7CW2v159TdYRkvQxb1iBYRj/obligations

Get KLend tx history per user (for all obligations)

GET https://api.kamino.finance/kamino-market/:marketPubkey/users/:userPubkey/transactions/

Example response:

{
  "allTransactions": {
    "8th5rmiEfHUdPRs1fFRzxisjhHMTPmotAeBsAGGvFGG": {
      "transactions": [
        {
          "createdOn": "2023-05-12T11:41:31.818Z",
          "timestamp": 1683891691818,
          "transactionSignature": "5xtF68Ra53aqYvrCZnXQ2bRVUaR2BiiKLvSsZhEXLr2F2fRbeJMR6FaxWCDRcxUzetBrod8i7kre3651L7ohxRDL",
          "transactionName": "initObligation",
          "reserve": "",
          "liquidityToken": "",
          "liquidityTokenAmount": "0",
          "liquidityTokenPrice": "0",
          "solPrice": "0",
          "liquidityUsdValue": "0",
          "isLiquidationWithdrawal": false
        },
        {
          "createdOn": "2023-05-12T11:41:31.818Z",
          "timestamp": 1683891691818,
          "transactionSignature": "5xtF68Ra53aqYvrCZnXQ2bRVUaR2BiiKLvSsZhEXLr2F2fRbeJMR6FaxWCDRcxUzetBrod8i7kre3651L7ohxRDL",
          "transactionName": "depositReserveLiquidityAndObligationCollateral",
          "reserve": "455pvamji39kgFkiZScbLFnqFuReFQJLvv8pd1nmzfRp",
          "liquidityToken": "JITOSOL",
          "liquidityTokenAmount": "2",
          "liquidityTokenPrice": "20.99153922345559845933295",
          "solPrice": "20.28813173",
          "liquidityUsdValue": "41.9830784469111969186659",
          "isLiquidationWithdrawal": false
        },
        {
          "createdOn": "2023-05-12T11:41:31.818Z",
          "timestamp": 1683891691818,
          "transactionSignature": "5xtF68Ra53aqYvrCZnXQ2bRVUaR2BiiKLvSsZhEXLr2F2fRbeJMR6FaxWCDRcxUzetBrod8i7kre3651L7ohxRDL",
          "transactionName": "initObligation",
          "reserve": "",
          "liquidityToken": "",
          "liquidityTokenAmount": "0",
          "liquidityTokenPrice": "0",
          "solPrice": "0",
          "liquidityUsdValue": "0",
          "isLiquidationWithdrawal": false
        },
        {
          "createdOn": "2023-05-12T11:41:31.818Z",
          "timestamp": 1683891691818,
          "transactionSignature": "5xtF68Ra53aqYvrCZnXQ2bRVUaR2BiiKLvSsZhEXLr2F2fRbeJMR6FaxWCDRcxUzetBrod8i7kre3651L7ohxRDL",
          "transactionName": "depositReserveLiquidityAndObligationCollateral",
          "reserve": "455pvamji39kgFkiZScbLFnqFuReFQJLvv8pd1nmzfRp",
          "liquidityToken": "JITOSOL",
          "liquidityTokenAmount": "2",
          "liquidityTokenPrice": "20.99153922345559845933295",
          "solPrice": "20.28813173",
          "liquidityUsdValue": "41.9830784469111969186659",
          "isLiquidationWithdrawal": false
        }
      ],
      "lastUpdatedOn": "2023-08-04T06:55:07.391Z"
    },
    "8th5rmiEfHUdPRs1fFRzxisjhHMTPmotAeBsAGGvFGJ": {
      "transactions": [
        {
          "createdOn": "2023-07-26T03:10:32.190Z",
          "timestamp": 1690341032190,
          "transactionSignature": "5xtF68Ra53aqYvrCZnXQ2bRVUaR2BiiKLvSsZhEXLr2F2fRbeJMR6FaxWCDRcxUzetBrod8i7kre3651L7ohxRDL",
          "transactionName": "initObligation",
          "reserve": "",
          "liquidityToken": "",
          "liquidityTokenAmount": "0",
          "liquidityTokenPrice": "0",
          "solPrice": "0",
          "liquidityUsdValue": "0",
          "isLiquidationWithdrawal": false
        },
        {
          "createdOn": "2023-07-28T00:03:15.368Z",
          "timestamp": 1690502595368,
          "transactionSignature": "5xtF68Ra53aqYvrCZnXQ2bRVUaR2BiiKLvSsZhEXLr2F2fRbeJMR6FaxWCDRcxUzetBrod8i7kre3651L7ohxRDL",
          "transactionName": "depositReserveLiquidityAndObligationCollateral",
          "reserve": "FdSLxHXZLDrAxTwQ9ztWBw6Djueu6KbCvViJvf1Ck5Av",
          "liquidityToken": "BSOL",
          "liquidityTokenAmount": "2",
          "liquidityTokenPrice": "0",
          "solPrice": "25.07601599",
          "liquidityUsdValue": "0",
          "isLiquidationWithdrawal": false
        },
        {
          "createdOn": "2023-07-26T03:10:32.190Z",
          "timestamp": 1690341032190,
          "transactionSignature": "5xtF68Ra53aqYvrCZnXQ2bRVUaR2BiiKLvSsZhEXLr2F2fRbeJMR6FaxWCDRcxUzetBrod8i7kre3651L7ohxRDL",
          "transactionName": "depositReserveLiquidityAndObligationCollateral",
          "reserve": "FdSLxHXZLDrAxTwQ9ztWBw6Djueu6KbCvViJvf1Ck5Av",
          "liquidityToken": "BSOL",
          "liquidityTokenAmount": "0.396843479",
          "liquidityTokenPrice": "0",
          "solPrice": "23.62",
          "liquidityUsdValue": "0",
          "isLiquidationWithdrawal": false
        },
        {
          "createdOn": "2023-07-26T03:10:32.190Z",
          "timestamp": 1690341032190,
          "transactionSignature": "5xtF68Ra53aqYvrCZnXQ2bRVUaR2BiiKLvSsZhEXLr2F2fRbeJMR6FaxWCDRcxUzetBrod8i7kre3651L7ohxRDL",
          "transactionName": "initObligation",
          "reserve": "",
          "liquidityToken": "",
          "liquidityTokenAmount": "0",
          "liquidityTokenPrice": "0",
          "solPrice": "0",
          "liquidityUsdValue": "0",
          "isLiquidationWithdrawal": false
        },
        {
          "createdOn": "2023-07-28T00:03:15.368Z",
          "timestamp": 1690502595368,
          "transactionSignature": "5xtF68Ra53aqYvrCZnXQ2bRVUaR2BiiKLvSsZhEXLr2F2fRbeJMR6FaxWCDRcxUzetBrod8i7kre3651L7ohxRDL",
          "transactionName": "depositReserveLiquidityAndObligationCollateral",
          "reserve": "FdSLxHXZLDrAxTwQ9ztWBw6Djueu6KbCvViJvf1Ck5Av",
          "liquidityToken": "BSOL",
          "liquidityTokenAmount": "2",
          "liquidityTokenPrice": "0",
          "solPrice": "25.07601599",
          "liquidityUsdValue": "0",
          "isLiquidationWithdrawal": false
        },
        {
          "createdOn": "2023-07-26T03:10:32.190Z",
          "timestamp": 1690341032190,
          "transactionSignature": "5xtF68Ra53aqYvrCZnXQ2bRVUaR2BiiKLvSsZhEXLr2F2fRbeJMR6FaxWCDRcxUzetBrod8i7kre3651L7ohxRDL",
          "transactionName": "depositReserveLiquidityAndObligationCollateral",
          "reserve": "FdSLxHXZLDrAxTwQ9ztWBw6Djueu6KbCvViJvf1Ck5Av",
          "liquidityToken": "BSOL",
          "liquidityTokenAmount": "0.396843479",
          "liquidityTokenPrice": "0",
          "solPrice": "23.62",
          "liquidityUsdValue": "0",
          "isLiquidationWithdrawal": false
        }
      ],
      "lastUpdatedOn": "2023-08-04T06:55:04.134Z"
    },
    "8th5rmiEfHUdPRs1fFRzxisjhHMTPmotAeBsAGGvFGH": {
      "transactions": [
        {
          "createdOn": "2023-05-12T12:10:48.695Z",
          "timestamp": 1683893448695,
          "transactionSignature": "5xtF68Ra53aqYvrCZnXQ2bRVUaR2BiiKLvSsZhEXLr2F2fRbeJMR6FaxWCDRcxUzetBrod8i7kre3651L7ohxRDL",
          "transactionName": "initObligation",
          "reserve": "",
          "liquidityToken": "",
          "liquidityTokenAmount": "0",
          "liquidityTokenPrice": "0",
          "solPrice": "0",
          "liquidityUsdValue": "0",
          "isLiquidationWithdrawal": false
        },
        {
          "createdOn": "2023-07-23T13:45:58.881Z",
          "timestamp": 1690119958881,
          "transactionSignature": "5xtF68Ra53aqYvrCZnXQ2bRVUaR2BiiKLvSsZhEXLr2F2fRbeJMR6FaxWCDRcxUzetBrod8i7kre3651L7ohxRDL",
          "transactionName": "depositReserveLiquidityAndObligationCollateral",
          "reserve": "7SsmK3wj4V6cg4hqKFrSAdRYirUU5UyJPY2oQ2Bjgvcw",
          "liquidityToken": "STSOL",
          "liquidityTokenAmount": "-0.002682361",
          "liquidityTokenPrice": "27.4789254927168",
          "solPrice": "24.57688671",
          "liquidityUsdValue": "-0.0737083980635693283648",
          "isLiquidationWithdrawal": false
        }
      ],
      "lastUpdatedOn": "2023-07-23T13:46:56.790"
    }
  }
}

Get KLend tx history per obligation

GET https://api.kamino.finance/kamino-market/:marketPubkey/obligations/:obligationPubkey/transactions/

Query params:

  • env: solana cluster, e.g. "mainnet-beta" (default) | "devnet"
  • useLogPrices: scans logs for token prices instead of using scope prices

Example response:

{
  "transactions": [
    {
      "createdOn": "2023-07-24T06:30:53.785Z",
      "timestamp": 1690180253785,
      "transactionSignature": "5AHBE2oupPNnwQnpzHSqyfW2xMKhkvR8bduBDqbRtuuLRKRMhscKAPv8pwxx75Na6KNMJUCKvhw7EXDz9XLnc4Xp",
      "transactionName": "depositReserveLiquidityAndObligationCollateral",
      "reserve": "3zqgH952VPgRWw9Xwa9q9Smt4cPwPaF5LTqHGGxYEYgi",
      "kTokenAmount": "0",
      "liquidityToken": "USDC",
      "liquidityTokenAmount": "1",
      "liquidityTokenPrice": "0.9999",
      "solPrice": "24.3694875",
      "liquidityUsdValue": "0.9999"
    },
    {
      "createdOn": "2023-07-24T06:10:43.489Z",
      "timestamp": 1690179043489,
      "transactionSignature": "2MRCGnGQcgRmzgkmp48C4ngkSwUxFSXujEVJXt4zxjb3BJ23i3QEtcZTVpe396nULHKBNXvbiGwCmkSyojLvRwgi",
      "transactionName": "depositReserveLiquidityAndObligationCollateral",
      "reserve": "3zqgH952VPgRWw9Xwa9q9Smt4cPwPaF5LTqHGGxYEYgi",
      "kTokenAmount": "0",
      "liquidityToken": "USDC",
      "liquidityTokenAmount": "2",
      "liquidityTokenPrice": "0.9999",
      "solPrice": "24.3694875",
      "liquidityUsdValue": "1.9998"
    }
  ]
}

Bulk get Klend transactions

This endpoint is not open to the public, it is private for analytical purposes only, add authorization headers to the request.

POST https://api.kamino.finance/v2/kamino-market/:marketPubkey/transactions?programId={programId}?includeRawJson={true|false, false by default}
{
    "start": "2024-01-01T00:00Z",
    "end": "2024-01-02T00:00Z",
    "instruction": "depositReserveLiquidityAndObligationCollateral",
    "paginationToken": ""
}

Example cURL request:

curl --location 'https://api.kamino.finance/v2/kamino-market/7u3HeHxYDLhnCoErrtycNokbQYbWGzLs6JSDqGAv5PfF/transactions?programId=KLend2g3cP87fffoy8q1mQqGKjrxjC8boSyAYavgmjD' --header 'Content-Type: application/json' --header 'Authorization: Basic ENTER_CREDENTIALS' --data '{
    "start": "2024-01-01",
    "end": "2024-01-02",
    "instruction": "depositReserveLiquidityAndObligationCollateral",
    "paginationToken": ""
}'

Example Python request:

import requests
import json

url = "https://api.kamino.finance/v2/kamino-market/7u3HeHxYDLhnCoErrtycNokbQYbWGzLs6JSDqGAv5PfF/transactions?programId=KLend2g3cP87fffoy8q1mQqGKjrxjC8boSyAYavgmjD"

payload = json.dumps({
  "start": "2024-01-01",
  "end": "2024-01-02",
  "instruction": "depositReserveLiquidityAndObligationCollateral",
  "paginationToken": ""
})
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Basic ADD-CREDENTIALS-HERE'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)

Example response:

{
    "result": [
        {
            "ixs": [
                {
                    "solPrice": "100.123",
                    "liquidityToken": "SOL",
                    "liquidityUsdValue": "100.123",
                    "liquidityTokenMint": "So11111111111111111111111111111111111111112",
                    "liquidityTokenPrice": "100.123",
                    "liquidityTokenAmount": "1",
                    "isLiquidationWithdrawal": false
                }
            ],
            "timestamp": "2024-02-19T00:20:45.000Z",
            "signature": "NysWUiARXCRntcCmbyyRv43aLv2m4rKF39nCTJKsaV59ASu9cDLVpxuMVWn9HujorM81iXHUYtRYw29jNnAHhTD",
            "obligation": "7vbVt9y3dtajhwgbrbSb7RR3SuainvcpLAJYGge9fRco",
            "wallet": "3YFyQwu7rSQmxvSrGawxr3fq4CyFT6NQkYry8jkCSQuk"
        }
    ],
    "paginationToken": "eyJsYXN0SWQiOjIwNzh9"
}

Get PnL per obligation v2

You can specify pnl mode with query param positionMode with one of these values: {obligation_all_time, current_obligation}. By default, pnl mode is set to current_obligation position For xSOL pairs, useStakeRate query param can be set to true to calculate the PnL using the stake rate. By default, it is set to false.

These parameters specify whether we return the current position PnL or the accumulated PnL throughout the lifetime of the user's obligation (even before they were closed).

GET https://api.kamino.finance/v2/kamino-market/:marketPubkey/obligations/:obligationPubkey/pnl/?positionMode=current_obligation&useStakeRate=true

Example response:

{
  "usd": "25.21",
  "sol": "1.0"
}

Get PnL per user

You can specify pnl mode with query param positionMode with one of these values: {user_all_time, user_all_current_positions}. By default, pnl mode is set to user_all_current_positions position

These parameters specify whether we return the current position PnL or the accumulated PnL throughout the lifetime of the user's obligation (even before they were closed).

GET https://api.kamino.finance/kamino-market/:marketPubkey/users/:userPubkey/pnl/?positionMode=user_all_current_positions

Get interest fees earned per obligation

GET https://api.kamino.finance/kamino-market/:marketPubkey/obligations/:obligationPubkey/interest-fees/

Query params:

  • env: solana cluster, e.g. "mainnet-beta" (default) | "devnet"
  • start: start date (inclusive), e.g. 2023-05-01T00:55:00.000Z
  • end: end date (exclusive), e.g. 2023-05-01T00:55:00.000Z
  • frequency: frequency of the snapshots, e.g. "hour" (default) | "day"
  • positionMode: position mode, e.g. "obligation_all_time" | "current_obligation (default)"

Example response:

{
  "totalFeesEarnedObligation": {
    "5QvxCCLUnmxgoAF8kuUsyPjKd6RV2XPGivsqq773TzjK": {
      "ts": 1695200400000,
      "solFees": "0.06313669856513711976206400769604439360579",
      "usdFees": "1.269225847264109025064706147202735158871",
      "nativeFees": "1.261001541373388353921537172595541265214"
    }
  },
  "feesObligation": {
    "5QvxCCLUnmxgoAF8kuUsyPjKd6RV2XPGivsqq773TzjK": [
      {
        "USDH": { "ts": 1695117600000, "solFees": "0", "usdFees": "0", "nativeFees": "0" },
        "STSOL": { "ts": 1695117600000, "solFees": "0", "usdFees": "0", "nativeFees": "0" },
        "UXD": { "ts": 1695117600000, "solFees": "0", "usdFees": "0", "nativeFees": "0" },
        "USDC": { "ts": 1695117600000, "solFees": "0", "usdFees": "0", "nativeFees": "0" },
        "MSOL": { "ts": 1695117600000, "solFees": "0", "usdFees": "0", "nativeFees": "0" },
        "SOL": { "ts": 1695117600000, "solFees": "0", "usdFees": "0", "nativeFees": "0" },
        "JITOSOL": { "ts": 1695117600000, "solFees": "0", "usdFees": "0", "nativeFees": "0" },
        "kUXDUSDCOrca": { "ts": 1695117600000, "solFees": "0", "usdFees": "0", "nativeFees": "0" }
      },
      {
        "USDH": {
          "ts": 1695200400000,
          "solFees": "0.009127930668530089532008568492476558595633",
          "usdFees": "0.1835061678794232293068324983297403016265",
          "nativeFees": "0.1840858688969978660085239011713265619735"
        },
        "STSOL": { "ts": 1695200400000, "solFees": "0", "usdFees": "0", "nativeFees": "0" },
        "UXD": { "ts": 1695200400000, "solFees": "0", "usdFees": "0", "nativeFees": "0" },
        "USDC": {
          "ts": 1695200400000,
          "solFees": "0.05354646057380662740920466718071105954604",
          "usdFees": "1.076487775841993410013844914006083239768",
          "nativeFees": "1.07645428734911397907795579880118253498"
        },
        "MSOL": {
          "ts": 1695200400000,
          "solFees": "0.0000000002729669118503462954743437138234390588713",
          "usdFees": "0.00000000548767445443401462031404881729929319511",
          "nativeFees": "0.0000000002409057587721427566924936757882938254622"
        },
        "SOL": {
          "ts": 1695200400000,
          "solFees": "0.00004161517214718125325688557874458751446175",
          "usdFees": "0.0008366234411376726934711156672714631160833",
          "nativeFees": "0.00004161517214718125325688557874458751446176"
        },
        "JITOSOL": {
          "ts": 1695200400000,
          "solFees": "0.00001637958277767565995674794591594066633801",
          "usdFees": "0.0003292919913773938484626639982754417744366",
          "nativeFees": "0.00001545746301911876686717846158351857411716"
        },
        "kUXDUSDCOrca": { "ts": 1695200400000, "solFees": "0", "usdFees": "0", "nativeFees": "0" }
      }
    ]
  }
}

Get interest fees earned per user

GET https://api.kamino.finance/kamino-market/:marketPubkey/users/:userPubkey/interest-fees/

Query params:

  • env: solana cluster, e.g. "mainnet-beta" (default) | "devnet"
  • start: start date (inclusive), e.g. 2023-05-01T00:55:00.000Z
  • end: end date (exclusive), e.g. 2023-05-01T00:55:00.000Z
  • frequency: frequency of the snapshots, e.g. "hour" (default) | "day"
  • positionMode: position mode, e.g. "user_all_time" | "user_all_current_positions (default)"

Example response:

{
  "totalFeesEarnedObligation": {
    "MX68wMfQRkQA13SrKnSX47wwjiV2TDBak7NMb4Qfg5g": {
      "ts": 1695200400000,
      "solFees": "0.000000001697888184902321902172852546261584381586",
      "usdFees": "0.0000000341340184992168245010582859455671467486",
      "nativeFees": "0.000000001602302340966625236782497000842808190647"
    },
    "598TqTp5HfFQcNwWhgXyxE5zFYgFUYnRJSAADdfVXm2N": {
      "ts": 1695200400000,
      "solFees": "0.00001252855751062609254654040779155507638912",
      "usdFees": "0.0002501232156778048715929059083302644728593",
      "nativeFees": "0.00001252855751062609254654040779155507638912"
    }
  },
  "feesObligation": {
    "MX68wMfQRkQA13SrKnSX47wwjiV2TDBak7NMb4Qfg5g": [
      { "JITOSOL": { "ts": 1695117600000, "solFees": "0", "usdFees": "0", "nativeFees": "0" } },
      { "JITOSOL": { "ts": 1695121200000, "solFees": "0", "usdFees": "0", "nativeFees": "0" } },
      { "JITOSOL": { "ts": 1695124800000, "solFees": "0", "usdFees": "0", "nativeFees": "0" } },
      { "JITOSOL": { "ts": 1695128400000, "solFees": "0", "usdFees": "0", "nativeFees": "0" } },
      { "JITOSOL": { "ts": 1695132000000, "solFees": "0", "usdFees": "0", "nativeFees": "0" } },
      { "JITOSOL": { "ts": 1695135600000, "solFees": "0", "usdFees": "0", "nativeFees": "0" } },
      { "JITOSOL": { "ts": 1695139200000, "solFees": "0", "usdFees": "0", "nativeFees": "0" } },
      { "JITOSOL": { "ts": 1695142800000, "solFees": "0", "usdFees": "0", "nativeFees": "0" } },
      { "JITOSOL": { "ts": 1695146400000, "solFees": "0", "usdFees": "0", "nativeFees": "0" } },
      { "JITOSOL": { "ts": 1695150000000, "solFees": "0", "usdFees": "0", "nativeFees": "0" } },
      { "JITOSOL": { "ts": 1695153600000, "solFees": "0", "usdFees": "0", "nativeFees": "0" } },
      { "JITOSOL": { "ts": 1695157200000, "solFees": "0", "usdFees": "0", "nativeFees": "0" } },
      { "JITOSOL": { "ts": 1695160800000, "solFees": "0", "usdFees": "0", "nativeFees": "0" } },
      { "JITOSOL": { "ts": 1695164400000, "solFees": "0", "usdFees": "0", "nativeFees": "0" } },
      { "JITOSOL": { "ts": 1695168000000, "solFees": "0", "usdFees": "0", "nativeFees": "0" } },
      { "JITOSOL": { "ts": 1695171600000, "solFees": "0", "usdFees": "0", "nativeFees": "0" } },
      { "JITOSOL": { "ts": 1695175200000, "solFees": "0", "usdFees": "0", "nativeFees": "0" } },
      { "JITOSOL": { "ts": 1695178800000, "solFees": "0", "usdFees": "0", "nativeFees": "0" } },
      { "JITOSOL": { "ts": 1695182400000, "solFees": "0", "usdFees": "0", "nativeFees": "0" } },
      { "JITOSOL": { "ts": 1695186000000, "solFees": "0", "usdFees": "0", "nativeFees": "0" } },
      { "JITOSOL": { "ts": 1695189600000, "solFees": "0", "usdFees": "0", "nativeFees": "0" } },
      { "JITOSOL": { "ts": 1695193200000, "solFees": "0", "usdFees": "0", "nativeFees": "0" } },
      { "JITOSOL": { "ts": 1695196800000, "solFees": "0", "usdFees": "0", "nativeFees": "0" } },
      {
        "JITOSOL": {
          "ts": 1695200400000,
          "solFees": "0.000000001697888184902321902172852546261584381586",
          "usdFees": "0.0000000341340184992168245010582859455671467486",
          "nativeFees": "0.000000001602302340966625236782497000842808190647"
        }
      }
    ],
    "598TqTp5HfFQcNwWhgXyxE5zFYgFUYnRJSAADdfVXm2N": [
      { "SOL": { "ts": 1695117600000, "solFees": "0", "usdFees": "0", "nativeFees": "0" } },
      { "SOL": { "ts": 1695121200000, "solFees": "0", "usdFees": "0", "nativeFees": "0" } },
      { "SOL": { "ts": 1695124800000, "solFees": "0", "usdFees": "0", "nativeFees": "0" } },
      {
        "SOL": {
          "ts": 1695128400000,
          "solFees": "0.000001799717797858716590338358835351733653603",
          "usdFees": "0.00003596415275114428523179196620477162156107",
          "nativeFees": "0.000001799717797858716590338358835351733653604"
        }
      },
      { "SOL": { "ts": 1695132000000, "solFees": "0", "usdFees": "0", "nativeFees": "0" } },
      { "SOL": { "ts": 1695135600000, "solFees": "0", "usdFees": "0", "nativeFees": "0" } },
      { "SOL": { "ts": 1695139200000, "solFees": "0", "usdFees": "0", "nativeFees": "0" } },
      { "SOL": { "ts": 1695142800000, "solFees": "0", "usdFees": "0", "nativeFees": "0" } },
      { "SOL": { "ts": 1695146400000, "solFees": "0", "usdFees": "0", "nativeFees": "0" } },
      { "SOL": { "ts": 1695150000000, "solFees": "0", "usdFees": "0", "nativeFees": "0" } },
      { "SOL": { "ts": 1695153600000, "solFees": "0", "usdFees": "0", "nativeFees": "0" } },
      { "SOL": { "ts": 1695157200000, "solFees": "0", "usdFees": "0", "nativeFees": "0" } },
      { "SOL": { "ts": 1695160800000, "solFees": "0", "usdFees": "0", "nativeFees": "0" } },
      { "SOL": { "ts": 1695164400000, "solFees": "0", "usdFees": "0", "nativeFees": "0" } },
      {
        "SOL": {
          "ts": 1695168000000,
          "solFees": "0.000006064101667947088381984925284168149623453",
          "usdFees": "0.0001209912293028143483368695347715114560122",
          "nativeFees": "0.000006064101667947088381984925284168149623456"
        }
      },
      { "SOL": { "ts": 1695171600000, "solFees": "0", "usdFees": "0", "nativeFees": "0" } },
      { "SOL": { "ts": 1695175200000, "solFees": "0", "usdFees": "0", "nativeFees": "0" } },
      { "SOL": { "ts": 1695178800000, "solFees": "0", "usdFees": "0", "nativeFees": "0" } },
      { "SOL": { "ts": 1695182400000, "solFees": "0", "usdFees": "0", "nativeFees": "0" } },
      { "SOL": { "ts": 1695186000000, "solFees": "0", "usdFees": "0", "nativeFees": "0" } },
      {
        "SOL": {
          "ts": 1695189600000,
          "solFees": "0.000003084857420134046011686340063997035617416",
          "usdFees": "0.00006146691096373786754851793467830291215417",
          "nativeFees": "0.000003084857420134046011686340063997035617417"
        }
      },
      {
        "SOL": {
          "ts": 1695193200000,
          "solFees": "0.0000004106794248750007481729916324997687533188",
          "usdFees": "0.000008195525933433248949303575906066025362104",
          "nativeFees": "0.0000004106794248750007481729916324997687533189"
        }
      },
      { "SOL": { "ts": 1695196800000, "solFees": "0", "usdFees": "0", "nativeFees": "0" } },
      {
        "SOL": {
          "ts": 1695200400000,
          "solFees": "0.000001169201199811240814357791975538388741346",
          "usdFees": "0.00002350539672667512152642289676961245776999",
          "nativeFees": "0.000001169201199811240814357791975538388741347"
        }
      }
    ]
  }
}

Get metrics for market reserves

GET https://api.kamino.finance/kamino-market/:marketPubkey/reserves/metrics

Query params:

  • env: solana cluster, e.g. "mainnet-beta" (default) | "devnet"

Example response:

[
    {
        "reserve": "d4A2prbA2whesmvHaL88BH6Ewn5N4bTSU2Ze8P6Bc4Q",
        "liquidityToken": "SOL",
        "liquidityTokenMint": "So11111111111111111111111111111111111111112",
        "maxLtv": "0.65",
        "borrowApy": "0.05450988511483601",
        "supplyApy": "0.038266801210808055",
        "totalSupply": "3270.370813041054416388850832278062044876",
        "totalBorrow": "2314.442149604473429941074038490263985018",
        "totalBorrowUsd": "132328.2299036357776146495065685745631077",
        "totalSupplyUsd": "186983.4512356222993385157984997158629711"
    },
    {
        "reserve": "G31zKdH2SkDZPhmoQraep5xbTSPyk3VZxAeBdC3nmq5J",
        "liquidityToken": "STEP",
        "liquidityTokenMint": "StepAscQoEioFxxWGnh2sLBDFp9d8rvKz2Yp39iDpyT",
        "maxLtv": "0",
        "borrowApy": "0.00009999925246972907",
        "supplyApy": "0",
        "totalSupply": "14.957139738",
        "totalBorrow": "0",
        "totalBorrowUsd": "0",
        "totalSupplyUsd": "0.5941041438503336806162179231"
    }
]

Get metrics for leverage/multiply vaults

GET https://api.kamino.finance/kamino-market/:marketPubkey/leverage/metrics?env={cluster}

Query params:

  • env: solana cluster, e.g. "mainnet-beta" (default) | "devnet"

Example request:

Example response:

[
  {
    "avgLeverage": "2.757170327410913560319220040749227783417",
    "totalBorrowed": "154395.1202118977930406687953589698645807",
    "totalDeposited": "193096.379305039",
    "totalBorrowedUsd": "16739712.70542562946167548855378444003952",
    "totalObligations": "1836",
    "totalDepositedUsd": "23093580.44995144380237321675219340108242",
    "tvl": "23093580.44995144380237321675219340108242",
    "updatedOn": "2023-12-29T10:29:30.896Z",
    "depositReserve": "H9vmCVd77N1HZa36eBn3UnftYmg4vQzPfm1RxabHAMER",
    "borrowReserve": "d4A2prbA2whesmvHaL88BH6Ewn5N4bTSU2Ze8P6Bc4Q",
    "tag": "Multiply"
  },
  {
    "avgLeverage": "2.604314516472810767833910368870052572746",
    "totalBorrowed": "26112.30734890929199125495560713880090385",
    "totalDeposited": "34303.490774368",
    "totalBorrowedUsd": "2831129.134758960612809682991545473977498",
    "totalObligations": "1168",
    "tvl": "23093580.44995144380237321675219340108242",
    "totalDepositedUsd": "4315255.85162694588194992120445036586528",
    "updatedOn": "2023-12-29T10:29:30.896Z",
    "depositReserve": "FBSyPnxtHKLBZ4UeeUyAnbtFuAmTHLtso9YtsqRDRWpM",
    "borrowReserve": "d4A2prbA2whesmvHaL88BH6Ewn5N4bTSU2Ze8P6Bc4Q",
    "tag": "Leverage"
  }
]

Trades

Get trade history

POST https://api.kamino.finance/trades?env=mainnet-beta&source=hellomoon

Example POST request:

# obtain the first page of 10 trades
curl --location 'https://api.kamino.finance/trades?env=mainnet-beta&source=hellomoon' --header 'Content-Type: application/json' --data '{
    "tokenAMint": "So11111111111111111111111111111111111111112",
    "tokenBMint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
    "start": "2023-01-01T00:00Z",
    "end": "2023-02-01T00:00Z"
}'
# use "paginationToken" property in response in the next request to get next 10 trades:
curl --location 'https://api.kamino.finance/trades?env=mainnet-beta&source=hellomoon' --header 'Content-Type: application/json' --data '{
    "tokenAMint": "So11111111111111111111111111111111111111112",
    "tokenBMint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
    "start": "2023-01-01T00:00Z",
    "end": "2023-02-01T00:00Z",
    "paginationToken": "MzQ3OTQzMQ=="
}' 

Query params:

  • env: solana cluster, e.g. "mainnet-beta" (default) | "devnet"
  • source: trades fetched from source"hellomoon" (default)

Body params:

  • tokenAMint: public key of the first mint, e.g. SOL mint: "So11111111111111111111111111111111111111112"
  • tokenBMint: public key of the second mint, e.g. USDC mint: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
  • start: start of the date range to fetch trades from, e.g. date ISO string: "2023-01-01T00:00Z" or epoch in ms: 1678381747854
  • end: end of the date range to fetch trades to, e.g. date ISO string: "2023-01-01T00:00Z" or epoch in ms: 1678381747854
  • paginationToken: pagination token to use for retrieving results. If the response contains a paginationToken JSON property, you can use that in the next request to fetch more data from the last trade onwards. If the property does not exist, you've reached the end.

Please note that the response will contain both "directions" (buys, sells) of the trade. For example, if you input tokenA/tokenB mints for SOL/USDC in the request body, the response will contain trades with (source = SOL, destination = USDC) or (source = USDC, destination = SOL).

Example response:

{
    "trades": [
        {
            "transactionId": "67enaV7ufBGu5quuzZFwn4B2kqpNiqRunAwXbytt6TCkVkEJzUmNRyCYnDPvPi8yP8aDpHL16oVecqrqa3rvvbv9",
            "sourceAmount": "30.202777503",
            "destinationAmount": "704.59445",
            "tradedOn": "2023-01-16T12:54:49.000Z",
            "aggregator": "Jupiter v3",
            "programId": "whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc",
            "sourceMint": "So11111111111111111111111111111111111111112",
            "destinationMint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
        },
        {
            "transactionId": "4rZRGF8P667EjprBZomP7MiwHhUDwa6Dnuw2i5MvLn8jbVfVdzBg9DcvoHpkuykrRJpf4LTbPMaFiTR13QCgMxPb",
            "sourceAmount": "30.202526264",
            "destinationAmount": "704.766755",
            "tradedOn": "2023-01-16T12:54:49.000Z",
            "aggregator": "Jupiter v3",
            "programId": "whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc",
            "sourceMint": "So11111111111111111111111111111111111111112",
            "destinationMint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"          
        },
        {
            "transactionId": "3PXDTVaYKoDcMdyyyxGu4pMLbv2ApAx9biapEJv1rjPZdePTdGgqK6LstV8MBiAWtA3zaYJDJ86fT8hveNUN2VEN",
            "sourceAmount": "0.04293291",
            "destinationAmount": "1.001095",
            "tradedOn": "2023-01-16T12:54:42.000Z",
            "aggregator": "Jupiter v3",
            "programId": "whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc",
            "sourceMint": "So11111111111111111111111111111111111111112",
            "destinationMint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
        }
    ],
    "source": "hellomoon",
    "start": "2023-01-01T00:00:00.000Z",
    "end": "2023-02-01T00:00:00.000Z",
    "paginationToken": "MTQ2MTAzMA=="
}

Simulator

Get simulator pool history processed data

// GET https://api.kamino.finance/simulator/pools/:poolPubkey/history?env={cluster}&start={start}&end={end}
GET https://api.kamino.finance/simulator/pools/7qbRF6YsyGuLUVs6Y1q64bdVrfe4ZcUUz1JRdoVNUJnm/history?env=mainnet-beta&start=2023-05-01T00%3A55%3A00.000Z&end=2023-05-03T00%3A00%3A00.000Z'

Query params:

  • env: solana cluster, e.g. "mainnet-beta" (default) | "devnet"
  • start: start date (inclusive), e.g. 2023-05-01T00:55:00.000Z
  • end: end date (exclusive), e.g. 2023-05-01T00:55:00.000Z

Example request:

https://api.kamino.finance/simulator/pools/7qbRF6YsyGuLUVs6Y1q64bdVrfe4ZcUUz1JRdoVNUJnm/history?env=mainnet-beta&start=2023-05-01T00%3A55%3A00.000Z&end=2023-05-03T00%3A00%3A00.000Z'

Sample response:

[
  {
    "date": "2023-05-01T00:00:00.000Z",
    "liquidity": "128579835037512.1296149423008288059642304",
    "tokenAPrice": "22.8225",
    "tokenBPrice": "0.999899925",
    "priceAToB": "22.80281142119161469576395863338884312471",
    "priceBToA": "0.04381507266239798735733225736404509709275",
    "sourceAmountAToB": "2254.958720845",
    "sourceAmountBToA": "127153.433494",
    "destinationAmountAToB": "51419.398474",
    "destinationAmountBToA": "5571.236927813"
  },
  {
    "date": "2023-05-01T01:00:00.000Z",
    "liquidity": "118590788019032.7258026104877490267918479",
    "tokenAPrice": "22.18812871",
    "tokenBPrice": "0.999922935",
    "priceAToB": "22.35004452461559675442332082035821547892",
    "priceBToA": "0.04489632573185525843575517883550659203986",
    "sourceAmountAToB": "25052.494904219",
    "sourceAmountBToA": "288330.780462",
    "destinationAmountAToB": "559924.376562",
    "destinationAmountBToA": "12944.992638142"
  }
]

Leaderboard

Get strategy leaderboard

GET https://api.kamino.finance/strategies/leaderboard?env={cluster}&period={24h/7d/30d/90d/180d/1y}

Example requests:

Query params:

  • env: solana cluster, e.g. "mainnet-beta" (default) | "devnet"
  • period: leaderboard time period "24h" | "7d" (default) | "30d" | "90d" | "180d" | "1y"

Example response:

{
  "period": "24h",
  "strategies": [
    {
      "strategy": "AepjvYK4QfGhV3UjSRkZviR2AJAkLGtqdyKJFCf9kpz9",
      "apy": "0.615191615489133766348795004255205034784",
      "pnl": "0.001035403769",
      "volume": "15763.8054565617",
      "fees": "35.6656098455"
    },
    {
      "strategy": "5QgwaBQzzMAHdxpaVUgb4KrpXELgNTaEYXycUvNvRxr6",
      "apy": "0.03826440591163673741072800936266385589",
      "pnl": "0.000726162458",
      "volume": "90454.9846990331",
      "fees": "8.1861761153"
    }
  ]
}

Leaderboard response is always ordered by profit and loss (PnL) descending.

APY and PNL properties are in decimal form, to convert to percentage multiply it by 100. Volume and fees are both in USD.

Get user leaderboard

GET https://api.kamino.finance/users/leaderboard?env={cluster}&period={24h/7d/30d/90d/180d/1y/all-time}

Example requests:

Query params:

  • env: solana cluster, e.g. "mainnet-beta" (default) | "devnet"
  • period: leaderboard time period "24h" | "7d" (default) | "30d" | "90d" | "180d" | "1y" | "all-time"

Example response:

{
  "period": "24h",
  "users": [
    {
      "user": "7QnXf4d1YQ6k8oTzCLXjEiikGFm3KRZgmFJmry9vZxdW",
      "totalReturns": {
        "sol": "200",
        "usd": "2000"
      },
      "pnl": {
        "sol": "0.6896551724137931034482758620689655172416",
        "usd": "0.606060606060606060606060606060606060606"
      },
      "totalPositionsValue": {
        "sol": "350",
        "usd": "3500"
      }
    },
    {
      "user": "5HDpYuGtrmdRe49r48BoasoZ66Fsz74xShc4DQYDhNii",
      "totalReturns": {
        "sol": "200",
        "usd": "2000"
      },
      "pnl": {
        "sol": "0.6896551724137931034482758620689655172416",
        "usd": "0.606060606060606060606060606060606060606"
      },
      "totalPositionsValue": {
        "sol": "350",
        "usd": "3500"
      }
    }
  ]
}

Leaderboard response is always ordered by USD profit and loss (PnL) descending.

PNL is in decimal form, to convert to percentage multiply it by 100. Total positions value and total returns are both in USD.

Raydium

These endpoints use Raydium's API directly and cache their responses to avoid rate-limits.

Get AMM Pools

GET https://api.kamino.finance/raydium/ammPools

Example request: https://api.kamino.finance/raydium/ammPools

Get pool liquidity distribution

GET https://api.kamino.finance/raydium/positionLine/:poolPubkey

Example request: https://api.kamino.finance/raydium/positionLine/2QdhepnKRTLjjSqPL1PtKNwqrUkoLee5Gqs8bvZhRdMv

Points

Get points leaderboard

GET https://api.kamino.finance/points/leaderboard?offset={offset}&limit=${limit}&source={source}

Example requests:

To implement pagination fetch the first page (offset = 0, limit = 20 for example) and then look at the property totalLeaderboardCount to calculate the amount of pages you will display.

Example response:

{
  "totalLeaderboardCount": "90129",
  "leaderboard": [
    {
      "leaderboardRank": "1",
      "ownerPubkey": "7tH1k4PsMu3sNUYJxD5ezxhAmYYXyVVZz5c3dbaxcvUV",
      "lastCalculatedStrategies": "2024-01-10T16:00:00.000Z",
      "lastCalculatedBorrowLend": "2024-01-10T15:00:00.000Z",
      "lastCalculatedMultiply": null,
      "lastCalculatedLeverage": null,
      "pointsEarnedStrategies": "122367620435.3735191599063727893014010360341",
      "pointsEarnedBorrowLend": "1267843473.82435611251081561593395418572529",
      "pointsEarnedMultiply": "0",
      "pointsEarnedLeverage": "0",
      "totalPointsEarned": "123635463909.19787527241718840523535522175939",
      "currentPointsPerSecondStrategies": "560.478391755217855861526657236069466256",
      "currentPointsPerSecondBorrowLend": "89.41877886905689864601546998888888888885",
      "currentPointsPerSecondMultiply": "0",
      "currentPointsPerSecondLeverage": "0",
      "totalCurrentPointsPerSecond": "649.89717062427475450754212722495835514485"
    },
    {
      "leaderboardRank": "2",
      "ownerPubkey": "HZYHFagpyCqXuQjrSCN2jWrMHTVHPf9VWP79UGyvo95L",
      "lastCalculatedStrategies": "2024-01-10T16:00:00.000Z",
      "lastCalculatedBorrowLend": null,
      "lastCalculatedMultiply": null,
      "lastCalculatedLeverage": null,
      "pointsEarnedStrategies": "54903470324.3054572407658617493510029034321",
      "pointsEarnedBorrowLend": "0",
      "pointsEarnedMultiply": "0",
      "pointsEarnedLeverage": "0",
      "totalPointsEarned": "54903470324.3054572407658617493510029034321",
      "currentPointsPerSecondStrategies": "6.48961815479786922528593823056190322725",
      "currentPointsPerSecondBorrowLend": "0",
      "currentPointsPerSecondMultiply": "0",
      "currentPointsPerSecondLeverage": "0",
      "totalCurrentPointsPerSecond": "6.48961815479786922528593823056190322725"
    }
  ]
}

Get points user breakdown

GET https://api.kamino.finance/points/users/:userPubkey/breakdown?env={solana cluster}&source={source}

Example requests:

Example response:

{
  "leaderboardRank": "1271",
  "updatedOnStrategies": "2024-01-10T16:00:00.000Z",
  "updatedOnBorrowLend": "2024-01-10T15:00:00.000Z",
  "updatedOnMultiply": null,
  "updatedOnLeverage": null,
  "pointsEarnedStrategies": "22761790.71117315449263523732644006896670425",
  "pointsEarnedBorrowLend": "10442477.186904250407027339999999999999982264",
  "pointsEarnedMultiply": "201389.4329133435694562408780984881999283067",
  "pointsEarnedLeverage": "0",
  "totalPointsEarned": "33405657.3309907484691188182045385571666148207",
  "currentPointsPerSecondStrategies": "2.966637247762797453716544976431414311005",
  "currentPointsPerSecondBorrowLend": "1.219000935252249471499999999999999999999",
  "currentPointsPerSecondMultiply": "0.1646297171217158133378010918910399701269",
  "currentPointsPerSecondLeverage": "0",
  "totalCurrentPointsPerSecond": "4.3502679001367627385543460683224542811309",
  "avgBoost": "1",
  "strategiesBreakdown": [
    {
      "strategy": "5EfeGn1h7m6Rx9mGEmamDoxMtdhRmUh2N9fYRiDQqteS",
      "lastCalculated": "2023-08-10T12:00:00.000Z",
      "pointsEarned": "3038.752099688225508715680139338092961558",
      "currentPointsPerSecond": "0",
      "boost": "0"
    },
    {
      "strategy": "5QgwaBQzzMAHdxpaVUgb4KrpXELgNTaEYXycUvNvRxr6",
      "lastCalculated": "2024-01-10T16:00:00.000Z",
      "pointsEarned": "2184181.274912947035496797367836501158876",
      "currentPointsPerSecond": "1.673149451222033829527709343420742693505",
      "boost": "1"
    },
    {
      "strategy": "8DRToyNBUTR4MxqkKAP49s9z1JhotQWy3rMQKEw1HHdu",
      "lastCalculated": "2024-01-10T16:00:00.000Z",
      "pointsEarned": "723051.1325021971074900781555286204179783",
      "currentPointsPerSecond": "0.2045374909997805147118103015547306358167",
      "boost": "1"
    }
  ],
  "klendBreakdown": [
    {
      "lastCalculated": "2024-01-10T15:00:00.000Z",
      "pointsEarned": "4196615.002722601454031089999999999999992",
      "currentPointsPerSecond": "1.219000935252249471499999999999999999999",
      "boost": "1",
      "obligationTag": "Vanilla",
      "obligation": "J3UBd95TrkWVb9d6moomMwEoAsHYcrRPprZX2vf3YG75",
      "market": "7u3HeHxYDLhnCoErrtycNokbQYbWGzLs6JSDqGAv5PfF"
    },
    {
      "lastCalculated": "2024-01-10T15:00:00.000Z",
      "pointsEarned": "200704.9350075835765854408408010038433802",
      "currentPointsPerSecond": "0.1646297171217158133378010918910399701269",
      "boost": "1",
      "obligationTag": "Multiply",
      "obligation": "BnNMMQdhytPsQYambAeX8LZCDfcA3Q72Uo7tV5TWvYcR",
      "market": "7u3HeHxYDLhnCoErrtycNokbQYbWGzLs6JSDqGAv5PfF"
    }
  ],
  "boosts": [
    {
      "boost": "0.07",
      "name": "loyalty_bonus"
    }
  ]
}

Get rules for points

GET https://api.kamino.finance/points/rules?env={solana cluster}

Example request:

Example response:

{
    "strategies": {
        "defaultRate": 2,
        "defaultBoost": 2,
        "strategyRates": {
            "Cfuy5T6osdazUeLego5LFycBQebm9PP3H7VNdCndXXEN": 2
        },
        "strategyBoosts": {
            "Cfuy5T6osdazUeLego5LFycBQebm9PP3H7VNdCndXXEN": 2
        },
        "tokenRates": {
            "So11111111111111111111111111111111111111112": 2
        },
        "tokenBoosts": {
            "So11111111111111111111111111111111111111112": 2
        }
    },
    "lending": [
        {
            "market": "7u3HeHxYDLhnCoErrtycNokbQYbWGzLs6JSDqGAv5PfF",
            "defaultRates": {
                "borrowRate": 2,
                "depositRate": 2
            },
            "defaultBoosts": {
                "borrowBoost": 2,
                "depositBoost": 2
            },
            "tokenRates": {
                "So11111111111111111111111111111111111111112": {
                    "depositRate": 1,
                    "borrowRate": 3
                }
            },
            "tokenBoosts": {
                "So11111111111111111111111111111111111111112": {
                    "depositBoost": 1,
                    "borrowBoost": 3
                }
            }
        }
    ]
}

Get metrics for points

GET https://api.kamino.finance/points/metrics?source={source}

Example request:

Example response:

{
  "totalPointsEarned": "5984999924.493912541433019214995884898855713422508120471697",
  "totalCurrentPointsPerSecond": "3578.637988920129679710443661281444597259705465236233671",
  "currentPointsPerSecondLeverage": "52.040770416817290492365834856421461150509848186708961",
  "currentPointsPerSecondBorrowLend": "2891.05947353323817434578242345116583467662686554546471",
  "currentPointsPerSecondMultiply": "635.53774497007421487229540297385730143256875150406",
  "currentPointsPerSecondStrategies": "12354.58",
  "updatedOnLeverage": "2024-01-10T15:00:00.000Z",
  "updatedOnMultiply": "2024-01-10T15:00:00.000Z",
  "updatedOnStrategies": "2024-01-10T15:00:00.000Z",
  "updatedOnBorrowLend": "2024-01-10T15:00:00.000Z",
  "numberOfUsers": "91309"
}

Airdrop

Get user airdrop allocation

GET https://api.kamino.finance/airdrop/users/:pubkey/allocations?source={source}

Example requests:

Example response:

[
  {
    "quantity": "0.38493976366798",
    "name": "main_allocation"
  },
  {
    "quantity": "5.2414259465036",
    "name": "OG_allocation"
  }
]

Example empty response when user has 0 airdrop allocations to claim:

[]

Get airdrop metrics

GET https://api.kamino.finance/airdrop/metrics?source={source}

Example requests:

Example response:

{
  "totalAllocation": "800000000",
  "totalUsers": "251284",
  "claimDate": "2024-04-15T00:00:00.000Z"
}

Example response when no metrics are found (404 Not Found):

{
  "metadata": "Airdrop metrics for source not found"
}

Tokens

Get solflare token infos

Fetches all token infos from Solflare that are used by Kamino Liquidity/Lending/Farms.

GET https://api.kamino.finance/tokens

Example request:

Example response:

[
    {
      "address": "27G8MtK7VtTcCHkpASjSDdkWWYfoqT6ggEuKidVJidD4",
      "chainId": 101,
      "name": "Jupiter Perpetuals Liquidity Provider Token",
      "symbol": "JLP",
      "verified": true,
      "decimals": 6,
      "holders": null,
      "logoURI": "https://assets.coingecko.com/coins/images/33094/large/jlp.png?1700631386",
      "tags": [],
      "extensions": {
        "coingeckoId": "jupiter-perpetuals-liquidity-provider-token"
      }
    }
]

Example empty response when user has 0 airdrop allocations to claim:

[]

KVaults

Get all kvault user transactions

Get all instructions for the specified KVault shareholder.

// GET https://api.kamino.finance/kvaults/shareholders/:shareholderPubkey/transactions?env={cluster}

Example request:

Example response:

[
  {
    "createdOn": "2024-10-30T11:49:03.000Z",
    "instruction": "invest",
    "tokenMint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
    "tokenAmount": "1.531763",
    "usdValue": "1.53167261066537",
    "transaction": "3w1DghgGN8jJ2nhdYMXtjPPqBS3qf7ohcfazWwQH9qfeq53Gh7RNkJZwvezxqUg68PYnscqVz1xtMvZR4j2HboCZ"
  },
  {
    "createdOn": "2024-10-30T08:49:57.000Z",
    "instruction": "deposit",
    "tokenMint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
    "tokenAmount": "1",
    "usdValue": "0.99994099",
    "transaction": "57KvZHPjcRunvw3HHBgCPbDyxaZubyfFhAGr5idkQiEmtQuNu9nJyoyJ7KBdHkZTVxXUPVSuD3vWQqgaMgoepCLC"
  },
  {
    "createdOn": "2024-10-30T08:04:58.000Z",
    "instruction": "withdraw",
    "tokenMint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
    "tokenAmount": "6.09",
    "usdValue": "6.0896406291",
    "transaction": "3YhSNJPqpmXYUw76fr7ZkWSkgXcTkgKLNTxKhb4dMhXmZi69NTP8BTdZ96Z6fvMqK5GdFMbR1nUDbjLg6edNAEYw"
  }
]

Get kvault metrics

GET https://api.kamino.finance/kvaults/:vaultPubkey/metrics

Example request:

Example response:

{
  "apy7d": "0.12",
  "apy24h": "0.1",
  "apy30d": "0.11",
  "apy90d": "0.15",
  "apy180d": "0.12525",
  "apy365d": "0.12458939831489045",
  "tokenPrice": "0.99951785",
  "solPrice": "176.16243353",
  "tokensAvailable": "5",
  "tokensAvailableUsd": "4.99758925",
  "tokensInvested": "0",
  "tokensInvestedUsd": "0",
  "sharePrice": "0.99951785",
  "tokensPerShare": "1",
  "apy": "0.060121900226019375",
  "numberOfHolders": 1,
  "sharesIssued": "5",
  "cumulativeInterestEarned": "8",
  "cumulativeInterestEarnedUsd": "6",
  "cumulativeInterestEarnedSol": "4",
  "interestEarnedPerSecond": "10",
  "interestEarnedPerSecondUsd": "2",
  "interestEarnedPerSecondSol": "11",
  "cumulativePerformanceFees": "1",
  "cumulativePerformanceFeesUsd": "7",
  "cumulativePerformanceFeesSol": "5",
  "cumulativeManagementFees": "12",
  "cumulativeManagementFeesUsd": "9",
  "cumulativeManagementFeesSol": "3"
}

Get kvault metrics history

GET https://api.kamino.finance/kvaults/:vaultPubkey/metrics/history?start={date}&end=${date}

Example request:

Example response:

[
  {
    "timestamp": "2024-10-20T11:30:00.000Z",
    "tvl": "4.99758925",
    "apy": "0.060121900226019375"
  },
  {
    "timestamp": "2024-10-20T11:35:00.000Z",
    "tvl": "5.23758925",
    "apy": "0.070121900226019375"
  }
]

Limo

Get all limo user transactions

Get all instructions for the specified Limo user (maker).

// GET https://api.kamino.finance/limo/makers/:makerPubkey/transactions?env={cluster}&in={inTokenMint}&out={outTokenMint}

Query params:

  • env: solana cluster, e.g. "mainnet-beta" (default) | "devnet"
  • in: input token mint of the order, e.g. So11111111111111111111111111111111111111112
  • out: output token mint of the order, e.g. EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v

Example requests:

Example response:

[
  {
    "transactionSignature": "3DA1t96dsHaTjvDm9w6Z1dnBL5G21uq21wYK1mYxbDaBfxQnau2yCEkinn5LoaJPW3Ud12iPBQdfj7cuNtXzJ7qQ",
    "ixName": "closeOrderAndClaimTip",
    "order": "Bh5fXLmfh9WNZPfL3sp1RCa7itrV1BXQGoJcqRfkz3Hh",
    "orderStatus": "Cancelled",
    "orderType": "ExactIn",
    "updatedOn": "2024-11-19T19:12:22.000Z",
    "inMint": "So11111111111111111111111111111111111111112",
    "outMint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
    "initialInAmount": "0.01",
    "remainingInAmount": "0.01",
    "expectedOutAmount": "2.41",
    "filledOutAmount": "0",
    "numberOfFills": "0",
    "totalFilled": "0",
    "orderPriceInOut": "0.00414937759336099585",
    "orderPriceOutIn": "241",
    "executionPriceInOut": "0",
    "executionPriceOutIn": "0",
    "surplus": "0",
    "tipAmount": "0",
    "networkFee": "0.001138901",
    "solPrice": "240.123"
  },
  {
    "transactionSignature": "5Szg5BFsF8XCRCCN6NobRzSxBqoKEJXzkFs9L9473GRN21fm9d5zsdHpT4saPDgjuj4gxRW7CrJC3aFgvPDYdEAN",
    "ixName": "createOrder",
    "order": "Bh5fXLmfh9WNZPfL3sp1RCa7itrV1BXQGoJcqRfkz3Hh",
    "orderStatus": "Active",
    "orderType": "ExactIn",
    "updatedOn": "2024-11-19T19:12:22.000Z",
    "inMint": "So11111111111111111111111111111111111111112",
    "outMint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
    "initialInAmount": "0.01",
    "remainingInAmount": "0.01",
    "expectedOutAmount": "2.41",
    "filledOutAmount": "0",
    "numberOfFills": "0",
    "totalFilled": "0",
    "orderPriceInOut": "0.00414937759336099585",
    "orderPriceOutIn": "241",
    "executionPriceInOut": "0",
    "executionPriceOutIn": "0",
    "surplus": "0",
    "tipAmount": "0",
    "networkFee": "0.001125865",
    "solPrice": "240.123"
  }
]

Get limo maker metrics

// GET https://api.kamino.finance/limo/makers/:makerPubkey/metrics

Example request:

Example response:

{
  "totalVolumeUsd": "500.123",
  "totalOrders": 3,
  "totalTipsSol": "0.000043296",
  "totalTipsUsd": "1.24585",
  "totalSurplusUsd": "38.385940",
  "favoritePair": {
    "inTokenPubkey": "So11111111111111111111111111111111111111112",
    "outTokenPubkey": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
    "tradeCount": 6
  }
}

Get limo maker pair metrics

// GET https://api.kamino.finance/limo/makers/:makerPubkey/metrics/pair?in={inTokenMint}&out={outTokenMint}

Query params:

  • in: input token mint of the order, e.g. So11111111111111111111111111111111111111112
  • out: output token mint of the order, e.g. EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v

Example request:

Example response:

{
  "totalVolumeUsd": "100.123",
  "totalOrders": 2,
  "totalTipsSol": "0.000043296",
  "totalTipsUsd": "0.3248",
  "totalSurplusUsd": "0.1"
}

Get limo global metrics

Get metrics for all trades

// GET https://api.kamino.finance/limo/metrics

Example request:

Example response:

{
  "allTime": {
    "totalVolumeUsd": "32179.204554150009005121121",
    "totalSurplus": "0.01794400389018700094",
    "totalSurplusUsd": "4.3134619210239461983798395146",
    "totalTipAmount": "0.002224553",
    "totalTipAmountUsd": "0.5417640091257365",
    "totalTrades": "10"
  },
  "daily": {
    "totalVolumeUsd": "1.598927244",
    "totalSurplus": "0",
    "totalSurplusUsd": "0",
    "totalTipAmount": "0.000730568",
    "totalTipAmountUsd": "0.182642",
    "totalTrades": "1"
  }
}

Get limo pair metrics

Get metrics for a specific token pair

// GET https://api.kamino.finance/limo/metrics/pair?in={inTokenMint}&out={outTokenMint}

Query params:

  • in: input token mint of the order, e.g. So11111111111111111111111111111111111111112
  • out: output token mint of the order, e.g. EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v

Example request:

Example response:

{
  "allTime": {
    "totalVolumeUsd": "32179.204554150009005121121",
    "totalSurplus": "0.01794400389018700094",
    "totalSurplusUsd": "4.3134619210239461983798395146",
    "totalTipAmount": "0.002224553",
    "totalTipAmountUsd": "0.5417640091257365",
    "totalTrades": "10"
  },
  "daily": {
    "totalVolumeUsd": "1.598927244",
    "totalSurplus": "0",
    "totalSurplusUsd": "0",
    "totalTipAmount": "0.000730568",
    "totalTipAmountUsd": "0.182642",
    "totalTrades": "1"
  }
}

Get limo weekly leaderboard metrics

// GET https://api.kamino.finance/limo/leaderboard/weekly/metrics

Example request:

Example response:

{
  "weeklyVolumeUsd": "1.598927244",
  "weeklyTickets": "0.001598927244",
  "weeklyTipsUsd": "0.182642",
  "weeklySurplusUsd": "0"
}

Get limo weekly leaderboard

GET https://api.kamino.finance/limo/weekly/leaderboard?offset={offset}&limit=${limit}

Example requests:

To implement pagination fetch the first page (offset = 0, limit = 20 for example) and then look at the property totalLeaderboardCount to calculate the amount of pages you will display.

Example response:

{
  "totalLeaderboardCount": 9,
  "leaderboard": [
    {
      "rank": 1,
      "maker": "tsTSFNQsjqKArV5SvtEVePkZ6Crbkf65KhgmniyrFkV",
      "volumeUsd": "23.57484499976425155",
      "tickets": "0.02357484499976425155",
      "tipsUsd": "0",
      "surplusUsd": "0"
    },
    {
      "rank": 2,
      "maker": "4RHjaQ2c6mFVsjyu7nR4o69QTVn8hS6yn4WTspwR2R19",
      "volumeUsd": "1.59892724398401072756",
      "tickets": "0.00159892724398401073",
      "tipsUsd": "0.1754275283464144",
      "surplusUsd": "0"
    },
    {
      "rank": 3,
      "maker": "AoDMpV5zPYP9trk6d52ZU5nqpYRKHtHYmnoABxapDXQR",
      "volumeUsd": "0.09549704199904502958",
      "tickets": "0.00009549704199904502958",
      "tipsUsd": "0.0044768876250952",
      "surplusUsd": "0.000000003151099999968489"
    }
  ]
}

Get last 500 limo trades

Get last 500 limo trades (fills)

// GET https://api.kamino.finance/limo/trades?in={inTokenMint:optional}&out={outTokenMint:optional}

Query params:

  • in (optional): input token mint of the order, e.g. So11111111111111111111111111111111111111112
  • out (optional): output token mint of the order, e.g. EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v

If no query params are used, it will return trades for all pairs.

Example request:

Example response:

[
  {
    "updatedOn": "2024-11-26T09:30:33.000Z",
    "inMint": "So11111111111111111111111111111111111111112",
    "outMint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
    "sizeUsd": "23.94585489",
    "tipAmountUsd": "0.001",
    "surplusUsd": "0.01",
    "order": "FqWpdGoN1CS21FVQG4weL9ndon9cfzhWDZmrScfALN8x"
  },
  {
    "updatedOn": "2024-11-22T14:44:18.000Z",
    "inMint": "So11111111111111111111111111111111111111112",
    "outMint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
    "sizeUsd": "119.72927445",
    "tipAmountUsd": "0.0021632847358122",
    "surplusUsd": "0.48982",
    "order": "G1VtPA6y7EMWQSgRUv13L9LSTSgFtcZYij8cXNQddXue"
  }
]

Bulk get Limo transactions

This endpoint is not open to the public, it is private for analytical purposes only, add authorization headers to the request.

POST https://api.kamino.finance/limo/transactions
{
    "start": "2024-01-01T00:00Z",
    "end": "2024-01-02T00:00Z",
    "paginationToken": ""
}

Example cURL request:

curl --location 'https://api.kamino.finance/limo/transactions' --header 'Content-Type: application/json' --header 'Authorization: Basic ENTER_CREDENTIALS' --data '{
    "start": "2024-01-01",
    "end": "2024-01-02",
    "paginationToken": ""
}'

Example Python request:

import requests
import json

url = "https://api.kamino.finance/limo/transactions"

payload = json.dumps({
  "start": "2024-01-01",
  "end": "2024-01-02",
  "paginationToken": ""
})
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Basic ADD-CREDENTIALS-HERE'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)

Example response:

{
  "result": [
    {
      "maker": "DAnimibJrqNQd8NEjEWKwcB8VZzTKT3DWvFvfHjufDF",
      "taker": null,
      "transactionSignature": "3DYGcEUzzzyYXX7sHEM5Ras7CDzdRdEnMdzEjayqZXJMH6a7KGqaV8jw6SN15PAkM2pPBhqGT7N5DRSDXhyqcfUL",
      "ixName": "createOrder",
      "initialInAmount": "0.001",
      "remainingInAmount": "0.001",
      "expectedOutAmount": "0.000004062",
      "cumulativeFilledOutAmount": "0",
      "lastFilledOutAmount": "0",
      "numberOfFills": "0",
      "volumeUsd": "0",
      "fillRatio": "0",
      "orderPriceInOut": "246.1841457410142787",
      "orderPriceOutIn": "0.004062",
      "executionPriceInOut": "0",
      "executionPriceOutIn": "0",
      "surplus": "0",
      "tipAmount": "0",
      "networkFee": "0.000288189",
      "solPrice": "0",
      "inTokenPrice": "0",
      "outTokenPrice": "0",
      "updatedOn": "2024-11-28T12:01:25.000Z",
      "orderStatus": "Active",
      "inMint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
      "outMint": "So11111111111111111111111111111111111111112",
      "orderPubkey": "BvaSkA7RN3XW3ApxxouZtZNCb6yKdBtSir3xncCsCMCV",
      "orderType": "ExactIn"
    },
    {
      "maker": "DAnimibJrqNQd8NEjEWKwcB8VZzTKT3DWvFvfHjufDF",
      "taker": "76qh9UEKv8We4Um5bznSPvn2jkNrckq2hKeNQt8JNNKQ",
      "transactionSignature": "5tPfMkqgZd6QA8sCnR9mmcnFMu9z1qCLwevUmkAszN61QxPMepSdBeEX39pZqKJvhAXtNi2A7SKgQrJiQSdv1WQt",
      "ixName": "takeOrder",
      "initialInAmount": "0.001",
      "remainingInAmount": "0",
      "expectedOutAmount": "0.000004062",
      "cumulativeFilledOutAmount": "0.000004062",
      "lastFilledOutAmount": "0.000004062",
      "numberOfFills": "1",
      "volumeUsd": "0",
      "fillRatio": "1",
      "orderPriceInOut": "246.1841457410142787",
      "orderPriceOutIn": "0.004062",
      "executionPriceInOut": "246.1841457410142787",
      "executionPriceOutIn": "0.004062",
      "surplus": "0",
      "tipAmount": "0.000000047",
      "networkFee": "0.00025",
      "solPrice": "0",
      "inTokenPrice": "0",
      "outTokenPrice": "0",
      "updatedOn": "2024-11-28T13:03:36.000Z",
      "orderStatus": "Filled",
      "inMint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
      "outMint": "So11111111111111111111111111111111111111112",
      "orderPubkey": "HtT3sFFRC1ScVzxLfXURu3sRha8TBwZbuYVrV8EBSn18",
      "orderType": "ExactIn"
    }
  ],
  "paginationToken": "eyJsYXN0SWQiOjEwNjU3fQ=="
}