Kamino Season Rewards API

The Season Rewards API from Kamino — 5 operation(s) for season rewards.

OpenAPI Specification

kamino-season-rewards-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  version: 1.0.0
  title: Kamino Public Airdrop Season Rewards API
  description: 'The Kamino API provides a comprehensive way to interact with Kamino without reading directly from the blockchain.


    The API also provides the ability to fetch data that might not be available from just reading the chain.


    The API is rate-limited for unauthenticated users. If you feel you need to make more requests or run into rate-limit issues, please reach out.

    '
servers:
- url: https://api.kamino.finance
tags:
- name: Season Rewards
paths:
  /kvaults/rewards:
    get:
      summary: Get all KVault season rewards
      description: Get all active season points rewards for each Kamino Earn Vault
      tags:
      - Season Rewards
      parameters:
      - schema:
          type: string
          description: Points source identifier
          example: Season1
          examples:
          - Season1
          - Season2
          - Season3
          - Season4
        required: false
        description: Points source identifier
        name: source
        in: query
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/KvaultRewardMetrics'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: High-level error message describing the failure
                    example: Invalid query params
                  details:
                    type: array
                    items:
                      type: object
                      additionalProperties:
                        nullable: true
                    description: Detailed validation issues (present only for validation errors)
                required:
                - error
                description: Bad request response (400)
                example:
                  error: Invalid query request
                  details:
                  - code: invalid_union
                    errors:
                    - - code: custom
                        path: []
                        message: Invalid date string
                    - - expected: number
                        code: invalid_type
                        path: []
                        message: 'Invalid input: expected number, received string'
                    path:
                    - start
                    message: Invalid input
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /users/{pubkey}/staking-boosts:
    get:
      summary: Get user staking boosts
      description: Fetches staking boost multipliers for a specific user
      tags:
      - Season Rewards
      parameters:
      - schema:
          $ref: '#/components/schemas/AddressBase58'
        required: true
        description: Valid base58-encoded address
        name: pubkey
        in: path
      - schema:
          type: string
          description: Points source identifier
          example: Season1
          examples:
          - Season1
          - Season2
          - Season3
          - Season4
        required: false
        description: Points source identifier
        name: source
        in: query
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/StakingBoost'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: High-level error message describing the failure
                    example: Invalid query params
                  details:
                    type: array
                    items:
                      type: object
                      additionalProperties:
                        nullable: true
                    description: Detailed validation issues (present only for validation errors)
                required:
                - error
                description: Bad request response (400)
                example:
                  error: Invalid query request
                  details:
                  - code: invalid_union
                    errors:
                    - - code: custom
                        path: []
                        message: Invalid date string
                    - - expected: number
                        code: invalid_type
                        path: []
                        message: 'Invalid input: expected number, received string'
                    path:
                    - start
                    message: Invalid input
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /kvaults/summary:
    get:
      summary: Get summary of the KVault program earnings
      description: Get an aggregated all-time summary of all Kamino Earn Vault rewards and interest earned, in SOL and USD
      tags:
      - Season Rewards
      parameters:
      - schema:
          type: string
          enum:
          - default
          - private-credit
          default: default
          description: Type of vaults queried
          example: default
        required: false
        description: Type of vaults queried
        name: type
        in: query
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  earnings:
                    type: object
                    properties:
                      interest:
                        type: object
                        properties:
                          usd:
                            allOf:
                            - $ref: '#/components/schemas/Decimal'
                            - description: Amount in USD denomination
                          sol:
                            allOf:
                            - $ref: '#/components/schemas/Decimal'
                            - description: Amount in SOL denomination
                        required:
                        - usd
                        - sol
                        description: Earnings from interest
                      rewards:
                        type: object
                        properties:
                          usd:
                            allOf:
                            - $ref: '#/components/schemas/Decimal'
                            - description: Amount in USD denomination
                          sol:
                            allOf:
                            - $ref: '#/components/schemas/Decimal'
                            - description: Amount in SOL denomination
                        required:
                        - usd
                        - sol
                        description: Earnings from vault farm rewards
                      reserveRewards:
                        type: object
                        properties:
                          usd:
                            allOf:
                            - $ref: '#/components/schemas/Decimal'
                            - description: Amount in USD denomination
                          sol:
                            allOf:
                            - $ref: '#/components/schemas/Decimal'
                            - description: Amount in SOL denomination
                        required:
                        - usd
                        - sol
                        description: Earnings from reserve rewards
                      total:
                        type: object
                        properties:
                          usd:
                            allOf:
                            - $ref: '#/components/schemas/Decimal'
                            - description: Amount in USD denomination
                          sol:
                            allOf:
                            - $ref: '#/components/schemas/Decimal'
                            - description: Amount in SOL denomination
                        required:
                        - usd
                        - sol
                        description: Total earnings
                    required:
                    - interest
                    - rewards
                    - reserveRewards
                    - total
                    description: Earnings summary
                required:
                - earnings
                description: KVault Summary Data
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /season-rewards/users/{pubkey}:
    get:
      summary: Get user season rewards
      description: Fetches combined season reward data from both KLend and KVault for a specific user
      tags:
      - Season Rewards
      parameters:
      - schema:
          $ref: '#/components/schemas/AddressBase58'
        required: true
        description: Valid base58-encoded address
        name: pubkey
        in: path
      - schema:
          type: string
          description: Points source identifier
          example: Season1
          examples:
          - Season1
          - Season2
          - Season3
          - Season4
        required: false
        description: Points source identifier
        name: source
        in: query
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SeasonUserReward'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: High-level error message describing the failure
                    example: Invalid query params
                  details:
                    type: array
                    items:
                      type: object
                      additionalProperties:
                        nullable: true
                    description: Detailed validation issues (present only for validation errors)
                required:
                - error
                description: Bad request response (400)
                example:
                  error: Invalid query request
                  details:
                  - code: invalid_union
                    errors:
                    - - code: custom
                        path: []
                        message: Invalid date string
                    - - expected: number
                        code: invalid_type
                        path: []
                        message: 'Invalid input: expected number, received string'
                    path:
                    - start
                    message: Invalid input
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /season-rewards/final-vesting-pool:
    get:
      summary: Get final vesting pool allocation
      description: Calculates total forfeited rewards from all users who claimed early before full vesting
      tags:
      - Season Rewards
      parameters:
      - schema:
          type: string
          description: Points source identifier
          example: Season1
          examples:
          - Season1
          - Season2
          - Season3
          - Season4
        required: false
        description: Points source identifier
        name: source
        in: query
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SeasonFinalVestingPoolAllocation'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: High-level error message describing the failure
                    example: Invalid query params
                  details:
                    type: array
                    items:
                      type: object
                      additionalProperties:
                        nullable: true
                    description: Detailed validation issues (present only for validation errors)
                required:
                - error
                description: Bad request response (400)
                example:
                  error: Invalid query request
                  details:
                  - code: invalid_union
                    errors:
                    - - code: custom
                        path: []
                        message: Invalid date string
                    - - expected: number
                        code: invalid_type
                        path: []
                        message: 'Invalid input: expected number, received string'
                    path:
                    - start
                    message: Invalid input
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    AddressBase58:
      type: string
      description: Valid base58-encoded address
      example: VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd
    StakingBoost:
      type: object
      properties:
        boost:
          allOf:
          - $ref: '#/components/schemas/Decimal'
          - description: Boost multiplier value for the staking position in decimal format (multiply by 100 to get percentage %)
        name:
          type: string
          description: Staking boost source name
          example: staking_boost
        farm:
          allOf:
          - $ref: '#/components/schemas/AddressBase58'
          - description: Optional farm identifier associated with the boost
      required:
      - boost
      - name
    Decimal:
      type: string
      description: Decimal value represented as string
      example: '1234.56789'
    Error:
      type: object
      properties:
        error:
          type: string
          description: Error message for internal server failure
          example: An internal error occurred
      required:
      - error
      description: Internal server error response (500)
      example:
        error: An internal error occurred
    KvaultRewardMetric:
      type: object
      properties:
        kvault:
          allOf:
          - $ref: '#/components/schemas/AddressBase58'
          - description: Address of the kvault
        rewardToken:
          allOf:
          - $ref: '#/components/schemas/AddressBase58'
          - description: Mint address of the reward token
        lastCalculated:
          type: string
          format: date
          description: Timestamp of the last calculation
        apy:
          allOf:
          - $ref: '#/components/schemas/Apy'
          - description: Annual Percentage Yield from rewards in the kvault
            example: '0.2'
        tokensPerSecond:
          allOf:
          - $ref: '#/components/schemas/Decimal'
          - description: Number of reward tokens distributed per second
      required:
      - kvault
      - rewardToken
      - lastCalculated
      - apy
      - tokensPerSecond
    KvaultRewardMetrics:
      type: array
      items:
        $ref: '#/components/schemas/KvaultRewardMetric'
      description: List of kvault reward metrics
    SeasonUserReward:
      type: object
      properties:
        wallet:
          allOf:
          - $ref: '#/components/schemas/AddressBase58'
          - description: Wallet address of the user
        totalRewards:
          type: object
          properties:
            amount:
              allOf:
              - $ref: '#/components/schemas/Decimal'
              - description: Total reward amount
            tokenMint:
              allOf:
              - $ref: '#/components/schemas/AddressBase58'
              - description: Token mint address of the reward
          required:
          - amount
          - tokenMint
          description: Total combined season rewards from both KLend and KVault
      required:
      - wallet
      - totalRewards
    Apy:
      type: string
      description: Borrow interest APY
      example: '0.027610992938039702'
      examples:
      - '0.123'
      - '0'
      - '1'
      - '1.23'
      - '-0.5'
      - '999999.999999'
    SeasonFinalVestingPoolAllocation:
      type: object
      properties:
        totalForfeitedRewards:
          allOf:
          - $ref: '#/components/schemas/Decimal'
          - description: Total amount of forfeited rewards from all users who claimed early
      required:
      - totalForfeitedRewards