{
  "openapi": "3.1.0",
  "info": {
    "title": "DeFi Orbit API",
    "version": "1.0.0",
    "description": "Public REST API for DeFi Orbit positions, lending, portfolio, and usage."
  },
  "servers": [
    {
      "url": "https://api.defiorbit.xyz"
    }
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "tags": [
    {
      "name": "Portfolio"
    },
    {
      "name": "Snapshots"
    },
    {
      "name": "Uniswap V3"
    },
    {
      "name": "Aerodrome V3"
    },
    {
      "name": "Orca"
    },
    {
      "name": "Aave V3"
    },
    {
      "name": "Morpho"
    },
    {
      "name": "Kamino"
    },
    {
      "name": "Usage"
    }
  ],
  "paths": {
    "/v1/lending/aavev3/batch": {
      "post": {
        "tags": [
          "Aave V3"
        ],
        "operationId": "post_v1_lending_aavev3_batch",
        "summary": "Batch Get Aave V3 Positions",
        "description": "Same as the list endpoint, but accepts multiple wallets in one POST. Returns an array in the same shape as the list endpoint, one entry per wallet/chain pair. Optional `market_id` and `target_health_factor` in the body.\n\n**Credits:** 15 per matching wallet/chain result when fewer than 100 match; 12 per result at 100 or more. Billing uses the matching count before pagination.",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Page. Default: 1.",
              "default": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Maximum 25. Default: 10.",
              "default": 10,
              "maximum": 25
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/RequestId"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "chain_id": {
                                "type": "integer"
                              },
                              "wallet": {
                                "type": "string"
                              },
                              "positions": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "marketId": {
                                      "type": "string"
                                    },
                                    "healthFactor": {
                                      "type": "string",
                                      "description": "String. Aave divides liquidation-threshold-weighted collateral by debt. Morpho divides collateral \u00d7 oracle price \u00d7 LLTV by debt, to four decimals. Kamino divides liquidation LTV by LTV. MAX or \u221e when there is no debt."
                                    },
                                    "netWorthUSD": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "marketId",
                                    "healthFactor",
                                    "netWorthUSD"
                                  ]
                                }
                              },
                              "calculations": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "healthFactor": {
                                      "type": "string",
                                      "description": "String. Aave divides liquidation-threshold-weighted collateral by debt. Morpho divides collateral \u00d7 oracle price \u00d7 LLTV by debt, to four decimals. Kamino divides liquidation LTV by LTV. MAX or \u221e when there is no debt."
                                    },
                                    "netAPY": {
                                      "type": "string"
                                    },
                                    "targetHealthFactor": {
                                      "type": "number",
                                      "description": "Health factor used for safe-borrow and safe-withdraw figures. Default 1.5."
                                    }
                                  },
                                  "required": [
                                    "healthFactor",
                                    "netAPY",
                                    "targetHealthFactor"
                                  ]
                                }
                              }
                            },
                            "required": [
                              "chain_id",
                              "wallet",
                              "positions",
                              "calculations"
                            ]
                          }
                        },
                        "pagination": {
                          "$ref": "#/components/schemas/Pagination"
                        }
                      },
                      "required": [
                        "data",
                        "pagination"
                      ]
                    }
                  ]
                },
                "example": {
                  "data": [
                    {
                      "chain_id": 8453,
                      "wallet": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495",
                      "positions": [
                        {
                          "marketId": "main",
                          "healthFactor": "1.42",
                          "netWorthUSD": "2231.51"
                        }
                      ],
                      "calculations": [
                        {
                          "healthFactor": "1.42",
                          "netAPY": "-4.47",
                          "targetHealthFactor": 1.5
                        }
                      ]
                    }
                  ],
                  "pagination": {
                    "page": 1,
                    "limit": 10,
                    "total": 1,
                    "next_page": null,
                    "prev_page": null
                  },
                  "request_id": "req_..."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-mint": {
          "href": "/api-reference/aave-v3/batch",
          "metadata": {
            "sidebarTitle": "Batch Get Aave V3 Positions"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "wallets": {
                    "type": "array",
                    "description": "Wallet addresses (comma-separated in the explorer; JSON array in the request body).",
                    "items": {
                      "type": "string"
                    },
                    "example": [
                      "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495"
                    ],
                    "x-default": [
                      "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495"
                    ]
                  },
                  "chain_id": {
                    "type": "integer",
                    "description": "Chain ID."
                  },
                  "market_id": {
                    "type": "string",
                    "enum": [
                      "main",
                      "lido",
                      "horizon"
                    ],
                    "description": "Omit for all markets. Values: `main`, `lido`, `horizon`."
                  },
                  "target_health_factor": {
                    "type": "number",
                    "description": "Target health factor. Default: 1.5.",
                    "default": 1.5
                  }
                },
                "required": [
                  "wallets"
                ]
              },
              "example": {
                "wallets": [
                  "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495"
                ]
              }
            }
          }
        }
      }
    },
    "/v1/lending/aavev3": {
      "get": {
        "tags": [
          "Aave V3"
        ],
        "operationId": "get_v1_lending_aavev3",
        "summary": "List Aave V3 Positions",
        "description": "Live Aave V3 lending/borrowing positions for a wallet from the lending indexer, one entry per chain, with calculations. Optional `market_id` and `target_health_factor` (default 1.5).\n\n**Credits:** 15 per matching wallet/chain result, before pagination.",
        "parameters": [
          {
            "name": "wallet",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Wallet address.",
              "example": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495",
              "x-default": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495"
            }
          },
          {
            "name": "market_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "main",
                "lido",
                "horizon"
              ],
              "description": "Omit for all markets. Values: `main`, `lido`, `horizon`."
            }
          },
          {
            "name": "target_health_factor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number",
              "description": "Target health factor. Default: 1.5.",
              "default": 1.5
            }
          },
          {
            "name": "chain_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Chain ID."
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Page. Default: 1.",
              "default": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Maximum 25. Default: 10.",
              "default": 10,
              "maximum": 25
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/RequestId"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "chain_id": {
                                "type": "integer"
                              },
                              "wallet": {
                                "type": "string"
                              },
                              "positions": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "marketId": {
                                      "type": "string"
                                    },
                                    "healthFactor": {
                                      "type": "string",
                                      "description": "String. Aave divides liquidation-threshold-weighted collateral by debt. Morpho divides collateral \u00d7 oracle price \u00d7 LLTV by debt, to four decimals. Kamino divides liquidation LTV by LTV. MAX or \u221e when there is no debt."
                                    },
                                    "totalCollateralUSD": {
                                      "type": "string"
                                    },
                                    "totalDebtUSD": {
                                      "type": "string"
                                    },
                                    "netWorthUSD": {
                                      "type": "string"
                                    },
                                    "suppliedAssets": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "symbol": {
                                            "type": "string"
                                          },
                                          "amountSuppliedUSD": {
                                            "type": "string"
                                          },
                                          "supplyAPY": {
                                            "type": "string"
                                          },
                                          "isCollateral": {
                                            "type": "boolean"
                                          }
                                        },
                                        "required": [
                                          "symbol",
                                          "amountSuppliedUSD",
                                          "supplyAPY",
                                          "isCollateral"
                                        ]
                                      }
                                    },
                                    "borrowedAssets": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "symbol": {
                                            "type": "string"
                                          },
                                          "amountBorrowedUSD": {
                                            "type": "string"
                                          },
                                          "borrowAPY": {
                                            "type": "string"
                                          }
                                        },
                                        "required": [
                                          "symbol",
                                          "amountBorrowedUSD",
                                          "borrowAPY"
                                        ]
                                      }
                                    }
                                  },
                                  "required": [
                                    "marketId",
                                    "healthFactor",
                                    "totalCollateralUSD",
                                    "totalDebtUSD",
                                    "netWorthUSD",
                                    "suppliedAssets",
                                    "borrowedAssets"
                                  ]
                                }
                              },
                              "calculations": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "targetHealthFactor": {
                                      "type": "number",
                                      "description": "Health factor used for safe-borrow and safe-withdraw figures. Default 1.5."
                                    },
                                    "healthFactor": {
                                      "type": "string",
                                      "description": "String. Aave divides liquidation-threshold-weighted collateral by debt. Morpho divides collateral \u00d7 oracle price \u00d7 LLTV by debt, to four decimals. Kamino divides liquidation LTV by LTV. MAX or \u221e when there is no debt."
                                    },
                                    "dailySupplyInterestUSD": {
                                      "type": "string"
                                    },
                                    "dailyBorrowInterestUSD": {
                                      "type": "string"
                                    },
                                    "netDailyInterestUSD": {
                                      "type": "string"
                                    },
                                    "safeBorrowAmountUSD": {
                                      "type": "string"
                                    },
                                    "safeWithdrawAmountUSD": {
                                      "type": "string"
                                    },
                                    "currentLtvPercentage": {
                                      "type": "string"
                                    },
                                    "netAPY": {
                                      "type": "string"
                                    },
                                    "positionLeverage": {
                                      "type": "string"
                                    },
                                    "weightedSupplyAPY": {
                                      "type": "string"
                                    },
                                    "weightedBorrowAPY": {
                                      "type": "string"
                                    },
                                    "borrowUtilizationRate": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "targetHealthFactor",
                                    "healthFactor",
                                    "dailySupplyInterestUSD",
                                    "dailyBorrowInterestUSD",
                                    "netDailyInterestUSD",
                                    "safeBorrowAmountUSD",
                                    "safeWithdrawAmountUSD",
                                    "currentLtvPercentage",
                                    "netAPY",
                                    "positionLeverage",
                                    "weightedSupplyAPY",
                                    "weightedBorrowAPY",
                                    "borrowUtilizationRate"
                                  ]
                                }
                              }
                            },
                            "required": [
                              "chain_id",
                              "wallet",
                              "positions",
                              "calculations"
                            ]
                          }
                        },
                        "pagination": {
                          "$ref": "#/components/schemas/Pagination"
                        }
                      },
                      "required": [
                        "data",
                        "pagination"
                      ]
                    }
                  ]
                },
                "example": {
                  "data": [
                    {
                      "chain_id": 8453,
                      "wallet": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495",
                      "positions": [
                        {
                          "marketId": "main",
                          "healthFactor": "1.42",
                          "totalCollateralUSD": "5085.89",
                          "totalDebtUSD": "2854.38",
                          "netWorthUSD": "2231.51",
                          "suppliedAssets": [
                            {
                              "symbol": "WETH",
                              "amountSuppliedUSD": "1706.67",
                              "supplyAPY": "1.63",
                              "isCollateral": true
                            }
                          ],
                          "borrowedAssets": [
                            {
                              "symbol": "USDC",
                              "amountBorrowedUSD": "2854.38",
                              "borrowAPY": "4.48"
                            }
                          ]
                        }
                      ],
                      "calculations": [
                        {
                          "targetHealthFactor": 1.5,
                          "healthFactor": "1.42",
                          "dailySupplyInterestUSD": "0.08",
                          "dailyBorrowInterestUSD": "0.35",
                          "netDailyInterestUSD": "-0.27",
                          "safeBorrowAmountUSD": "200.00",
                          "safeWithdrawAmountUSD": "500.00",
                          "currentLtvPercentage": "56.12",
                          "netAPY": "-4.47",
                          "positionLeverage": "1.28",
                          "weightedSupplyAPY": "1.63",
                          "weightedBorrowAPY": "4.48",
                          "borrowUtilizationRate": "74.24"
                        }
                      ]
                    }
                  ],
                  "pagination": {
                    "page": 1,
                    "limit": 10,
                    "total": 1,
                    "next_page": null,
                    "prev_page": null
                  },
                  "request_id": "req_..."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-mint": {
          "href": "/api-reference/aave-v3/bundle",
          "metadata": {
            "sidebarTitle": "List Aave V3 Positions"
          }
        }
      }
    },
    "/v1/lending/aavev3/position/{chain_id}/events": {
      "get": {
        "tags": [
          "Aave V3"
        ],
        "operationId": "get_v1_lending_aavev3_position_chain_id_events",
        "summary": "Get Position Events",
        "description": "Position history: supply, borrow, withdraw, repay, and liquidation for one chain. Optional `market_id` (default main). Each event has type, amount, amountUSD, priceUSD, asset details, and transactionHash. Newest first.\n\n**Credits:** 1 per successful call.",
        "parameters": [
          {
            "name": "chain_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Chain ID.",
              "example": 8453,
              "x-default": 8453
            }
          },
          {
            "name": "wallet",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Wallet address.",
              "example": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495",
              "x-default": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495"
            }
          },
          {
            "name": "market_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "main",
                "lido",
                "horizon"
              ],
              "description": "Default: `main`. Values: `main`, `lido`, `horizon`.",
              "default": "main"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Page. Default: 1.",
              "default": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Maximum 25. Default: 10.",
              "default": 10,
              "maximum": 25
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/RequestId"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "type": {
                                "type": "string"
                              },
                              "blockNumber": {
                                "type": "integer"
                              },
                              "logIndex": {
                                "type": "number"
                              },
                              "timestamp": {
                                "type": "number",
                                "description": "Unix seconds."
                              },
                              "transactionHash": {
                                "type": "string"
                              },
                              "asset": {
                                "type": "object",
                                "properties": {
                                  "address": {
                                    "type": "string"
                                  },
                                  "symbol": {
                                    "type": "string"
                                  },
                                  "name": {
                                    "type": "string"
                                  },
                                  "decimals": {
                                    "type": "integer"
                                  },
                                  "logoURI": {
                                    "type": "string",
                                    "description": "Token logo URL, or null when none is available."
                                  }
                                },
                                "required": [
                                  "address",
                                  "symbol",
                                  "name",
                                  "decimals",
                                  "logoURI"
                                ]
                              },
                              "amount": {
                                "type": "string"
                              },
                              "amountUSD": {
                                "type": "string"
                              },
                              "priceUSD": {
                                "type": "string"
                              },
                              "counterparty": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "type",
                              "blockNumber",
                              "logIndex",
                              "timestamp",
                              "transactionHash",
                              "asset",
                              "amount",
                              "amountUSD",
                              "priceUSD",
                              "counterparty"
                            ]
                          }
                        },
                        "pagination": {
                          "$ref": "#/components/schemas/Pagination"
                        }
                      },
                      "required": [
                        "data",
                        "pagination"
                      ]
                    }
                  ]
                },
                "example": {
                  "data": [
                    {
                      "type": "withdraw",
                      "blockNumber": 18000000,
                      "logIndex": 12,
                      "timestamp": 1730567927,
                      "transactionHash": "0xabc",
                      "asset": {
                        "address": "0xusdc",
                        "symbol": "USDC",
                        "name": "USD Coin",
                        "decimals": 6,
                        "logoURI": ""
                      },
                      "amount": "4942.07",
                      "amountUSD": "4942.07",
                      "priceUSD": "1.00",
                      "counterparty": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495"
                    }
                  ],
                  "pagination": {
                    "page": 1,
                    "limit": 10,
                    "total": 23,
                    "next_page": "https://api.defiorbit.xyz/path?page=2&limit=10",
                    "prev_page": null
                  },
                  "request_id": "req_..."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-mint": {
          "href": "/api-reference/aave-v3/events",
          "metadata": {
            "sidebarTitle": "Get Position Events"
          }
        }
      }
    },
    "/v1/lending/aavev3/position": {
      "get": {
        "tags": [
          "Aave V3"
        ],
        "operationId": "get_v1_lending_aavev3_position",
        "summary": "Get Aave V3 Position (all chains)",
        "description": "Live Aave V3 positions from the lending indexer, one entry per chain, without calculation fields. Optional `market_id` to filter main / lido / horizon.\n\n**Credits:** 3 per matching wallet/chain result, before pagination.",
        "parameters": [
          {
            "name": "wallet",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Wallet address.",
              "example": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495",
              "x-default": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495"
            }
          },
          {
            "name": "market_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "main",
                "lido",
                "horizon"
              ],
              "description": "Omit for all markets. Values: `main`, `lido`, `horizon`."
            }
          },
          {
            "name": "chain_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Chain ID."
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Page. Default: 1.",
              "default": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Maximum 25. Default: 10.",
              "default": 10,
              "maximum": 25
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/RequestId"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "chain_id": {
                                "type": "integer"
                              },
                              "wallet": {
                                "type": "string"
                              },
                              "positions": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "marketId": {
                                      "type": "string"
                                    },
                                    "healthFactor": {
                                      "type": "string",
                                      "description": "String. Aave divides liquidation-threshold-weighted collateral by debt. Morpho divides collateral \u00d7 oracle price \u00d7 LLTV by debt, to four decimals. Kamino divides liquidation LTV by LTV. MAX or \u221e when there is no debt."
                                    },
                                    "totalCollateralUSD": {
                                      "type": "string"
                                    },
                                    "totalDebtUSD": {
                                      "type": "string"
                                    },
                                    "availableBorrowsUSD": {
                                      "type": "string"
                                    },
                                    "currentLiquidationThreshold": {
                                      "type": "string"
                                    },
                                    "ltv": {
                                      "type": "string"
                                    },
                                    "netWorthUSD": {
                                      "type": "string"
                                    },
                                    "suppliedAssets": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "tokenAddress": {
                                            "type": "string"
                                          },
                                          "symbol": {
                                            "type": "string"
                                          },
                                          "name": {
                                            "type": "string"
                                          },
                                          "decimals": {
                                            "type": "integer"
                                          },
                                          "logoURI": {
                                            "type": "string",
                                            "description": "Token logo URL, or null when none is available."
                                          },
                                          "amountSupplied": {
                                            "type": "string"
                                          },
                                          "currentPriceUSD": {
                                            "type": "string"
                                          },
                                          "amountSuppliedUSD": {
                                            "type": "string"
                                          },
                                          "supplyAPY": {
                                            "type": "string"
                                          },
                                          "isCollateral": {
                                            "type": "boolean"
                                          },
                                          "ltv": {
                                            "type": "string"
                                          },
                                          "liquidationThreshold": {
                                            "type": "string"
                                          },
                                          "liquidationBonus": {
                                            "type": "string"
                                          },
                                          "utilizationRate": {
                                            "type": "string"
                                          },
                                          "totalSupply": {
                                            "type": "string"
                                          },
                                          "totalBorrow": {
                                            "type": "string"
                                          }
                                        },
                                        "required": [
                                          "tokenAddress",
                                          "symbol",
                                          "name",
                                          "decimals",
                                          "logoURI",
                                          "amountSupplied",
                                          "currentPriceUSD",
                                          "amountSuppliedUSD",
                                          "supplyAPY",
                                          "isCollateral",
                                          "ltv",
                                          "liquidationThreshold",
                                          "liquidationBonus",
                                          "utilizationRate",
                                          "totalSupply",
                                          "totalBorrow"
                                        ]
                                      }
                                    },
                                    "borrowedAssets": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "tokenAddress": {
                                            "type": "string"
                                          },
                                          "symbol": {
                                            "type": "string"
                                          },
                                          "name": {
                                            "type": "string"
                                          },
                                          "decimals": {
                                            "type": "integer"
                                          },
                                          "logoURI": {
                                            "type": "string",
                                            "description": "Token logo URL, or null when none is available."
                                          },
                                          "amountBorrowed": {
                                            "type": "string"
                                          },
                                          "currentPriceUSD": {
                                            "type": "string"
                                          },
                                          "amountBorrowedUSD": {
                                            "type": "string"
                                          },
                                          "stableDebt": {
                                            "type": "string"
                                          },
                                          "variableDebt": {
                                            "type": "string"
                                          },
                                          "borrowAPY": {
                                            "type": "string"
                                          },
                                          "stableBorrowAPY": {
                                            "type": "string"
                                          },
                                          "variableBorrowAPY": {
                                            "type": "string"
                                          },
                                          "borrowRateMode": {
                                            "type": "string"
                                          },
                                          "interestAccrued": {
                                            "type": "string"
                                          },
                                          "interestAccruedUSD": {
                                            "type": "string"
                                          }
                                        },
                                        "required": [
                                          "tokenAddress",
                                          "symbol",
                                          "name",
                                          "decimals",
                                          "logoURI",
                                          "amountBorrowed",
                                          "currentPriceUSD",
                                          "amountBorrowedUSD",
                                          "stableDebt",
                                          "variableDebt",
                                          "borrowAPY",
                                          "stableBorrowAPY",
                                          "variableBorrowAPY",
                                          "borrowRateMode",
                                          "interestAccrued",
                                          "interestAccruedUSD"
                                        ]
                                      }
                                    },
                                    "riskMetrics": {
                                      "type": "object",
                                      "properties": {
                                        "maxBorrowCapacityUSD": {
                                          "type": "string"
                                        },
                                        "borrowUtilization": {
                                          "type": "string"
                                        }
                                      },
                                      "required": [
                                        "maxBorrowCapacityUSD",
                                        "borrowUtilization"
                                      ]
                                    }
                                  },
                                  "required": [
                                    "marketId",
                                    "healthFactor",
                                    "totalCollateralUSD",
                                    "totalDebtUSD",
                                    "availableBorrowsUSD",
                                    "currentLiquidationThreshold",
                                    "ltv",
                                    "netWorthUSD",
                                    "suppliedAssets",
                                    "borrowedAssets",
                                    "riskMetrics"
                                  ]
                                }
                              }
                            },
                            "required": [
                              "chain_id",
                              "wallet",
                              "positions"
                            ]
                          }
                        },
                        "pagination": {
                          "$ref": "#/components/schemas/Pagination"
                        }
                      },
                      "required": [
                        "data",
                        "pagination"
                      ]
                    }
                  ]
                },
                "example": {
                  "data": [
                    {
                      "chain_id": 8453,
                      "wallet": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495",
                      "positions": [
                        {
                          "marketId": "main",
                          "healthFactor": "1.42",
                          "totalCollateralUSD": "5085.89",
                          "totalDebtUSD": "2854.38",
                          "availableBorrowsUSD": "990.28",
                          "currentLiquidationThreshold": "79.80",
                          "ltv": "75.00",
                          "netWorthUSD": "2231.51",
                          "suppliedAssets": [
                            {
                              "tokenAddress": "0xweth",
                              "symbol": "WETH",
                              "name": "Wrapped Ether",
                              "decimals": 18,
                              "logoURI": "",
                              "amountSupplied": "0.50",
                              "currentPriceUSD": "3413.34",
                              "amountSuppliedUSD": "1706.67",
                              "supplyAPY": "1.63",
                              "isCollateral": true,
                              "ltv": "80.00",
                              "liquidationThreshold": "83.00",
                              "liquidationBonus": "5.00",
                              "utilizationRate": "40.00",
                              "totalSupply": "1000",
                              "totalBorrow": "400"
                            }
                          ],
                          "borrowedAssets": [
                            {
                              "tokenAddress": "0xusdc",
                              "symbol": "USDC",
                              "name": "USD Coin",
                              "decimals": 6,
                              "logoURI": "",
                              "amountBorrowed": "2854.38",
                              "currentPriceUSD": "1.00",
                              "amountBorrowedUSD": "2854.38",
                              "stableDebt": "0",
                              "variableDebt": "2854.38",
                              "borrowAPY": "4.48",
                              "stableBorrowAPY": "0",
                              "variableBorrowAPY": "4.48",
                              "borrowRateMode": "variable",
                              "interestAccrued": "0",
                              "interestAccruedUSD": "0"
                            }
                          ],
                          "riskMetrics": {
                            "maxBorrowCapacityUSD": "3844.66",
                            "borrowUtilization": "74.24"
                          }
                        }
                      ]
                    }
                  ],
                  "pagination": {
                    "page": 1,
                    "limit": 10,
                    "total": 1,
                    "next_page": null,
                    "prev_page": null
                  },
                  "request_id": "req_..."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-mint": {
          "href": "/api-reference/aave-v3/position",
          "metadata": {
            "sidebarTitle": "Get Aave V3 Position (all chains)"
          }
        }
      }
    },
    "/v1/lending/aavev3/position/{chain_id}/risk": {
      "get": {
        "tags": [
          "Aave V3"
        ],
        "operationId": "get_v1_lending_aavev3_position_chain_id_risk",
        "summary": "Get Position Risk",
        "description": "Liquidation distance, LTV, and per-asset risk breakdown for one chain's live position. Optional `market_id` (default main) and `target_health_factor` (default 1.5) for the safe borrow/withdraw slider.\n\n**Credits:** 8 per successful call.",
        "parameters": [
          {
            "name": "chain_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Chain ID.",
              "example": 8453,
              "x-default": 8453
            }
          },
          {
            "name": "wallet",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Wallet address.",
              "example": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495",
              "x-default": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495"
            }
          },
          {
            "name": "market_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "main",
                "lido",
                "horizon"
              ],
              "description": "Default: `main`. Values: `main`, `lido`, `horizon`.",
              "default": "main"
            }
          },
          {
            "name": "target_health_factor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number",
              "description": "Target health factor. Default: 1.5.",
              "default": 1.5
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/RequestId"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "type": "object",
                          "properties": {
                            "chain_id": {
                              "type": "integer"
                            },
                            "wallet": {
                              "type": "string"
                            },
                            "market_id": {
                              "type": "string"
                            },
                            "health_factor": {
                              "type": "string",
                              "description": "String. Aave divides liquidation-threshold-weighted collateral by debt. Morpho divides collateral \u00d7 oracle price \u00d7 LLTV by debt, to four decimals. Kamino divides liquidation LTV by LTV. MAX or \u221e when there is no debt."
                            },
                            "current_ltv_percentage": {
                              "type": "string"
                            },
                            "safe_borrow_amount_usd": {
                              "type": "string"
                            },
                            "safe_withdraw_amount_usd": {
                              "type": "string"
                            },
                            "risk_metrics": {
                              "type": "object",
                              "properties": {
                                "priceDropToLiquidation": {
                                  "type": "string"
                                },
                                "borrowCapacityUtilization": {
                                  "type": "string"
                                },
                                "interestCoverageRatio": {
                                  "type": "string"
                                },
                                "maxBorrowCapacityUSD": {
                                  "type": "string"
                                },
                                "liquidationThreshold": {
                                  "type": "string"
                                },
                                "ltv": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "priceDropToLiquidation",
                                "borrowCapacityUtilization",
                                "interestCoverageRatio",
                                "maxBorrowCapacityUSD",
                                "liquidationThreshold",
                                "ltv"
                              ]
                            },
                            "asset_metrics": {
                              "type": "object",
                              "properties": {
                                "suppliedAssets": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "symbol": {
                                        "type": "string"
                                      },
                                      "suppliedUSD": {
                                        "type": "string"
                                      },
                                      "weightInPortfolio": {
                                        "type": "string"
                                      },
                                      "dailyEarnings": {
                                        "type": "string"
                                      },
                                      "liquidation": {
                                        "type": "object",
                                        "properties": {
                                          "direction": {
                                            "type": "string"
                                          },
                                          "currentPrice": {
                                            "type": "number"
                                          },
                                          "liquidationPricePerTokenUSD": {
                                            "type": "string"
                                          },
                                          "liquidationNotionalUSD": {
                                            "type": "string"
                                          },
                                          "priceDropToLiquidationPct": {
                                            "type": "string"
                                          }
                                        },
                                        "required": [
                                          "direction",
                                          "currentPrice",
                                          "liquidationPricePerTokenUSD",
                                          "liquidationNotionalUSD",
                                          "priceDropToLiquidationPct"
                                        ]
                                      }
                                    },
                                    "required": [
                                      "symbol",
                                      "suppliedUSD",
                                      "weightInPortfolio",
                                      "dailyEarnings",
                                      "liquidation"
                                    ]
                                  }
                                },
                                "borrowedAssets": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "symbol": {
                                        "type": "string"
                                      },
                                      "borrowedUSD": {
                                        "type": "string"
                                      },
                                      "weightInDebt": {
                                        "type": "string"
                                      },
                                      "dailyCost": {
                                        "type": "string"
                                      },
                                      "liquidation": {
                                        "type": "object",
                                        "properties": {
                                          "direction": {
                                            "type": "string"
                                          },
                                          "currentPrice": {
                                            "type": "number"
                                          },
                                          "liquidationPricePerTokenUSD": {
                                            "type": "string"
                                          },
                                          "liquidationNotionalUSD": {
                                            "type": "string"
                                          },
                                          "priceIncreaseToLiquidationPct": {
                                            "type": "string"
                                          }
                                        },
                                        "required": [
                                          "direction",
                                          "currentPrice",
                                          "liquidationPricePerTokenUSD",
                                          "liquidationNotionalUSD",
                                          "priceIncreaseToLiquidationPct"
                                        ]
                                      }
                                    },
                                    "required": [
                                      "symbol",
                                      "borrowedUSD",
                                      "weightInDebt",
                                      "dailyCost",
                                      "liquidation"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "suppliedAssets",
                                "borrowedAssets"
                              ]
                            }
                          },
                          "required": [
                            "chain_id",
                            "wallet",
                            "market_id",
                            "health_factor",
                            "current_ltv_percentage",
                            "safe_borrow_amount_usd",
                            "safe_withdraw_amount_usd",
                            "risk_metrics",
                            "asset_metrics"
                          ]
                        }
                      },
                      "required": [
                        "data"
                      ]
                    }
                  ]
                },
                "example": {
                  "data": {
                    "chain_id": 8453,
                    "wallet": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495",
                    "market_id": "main",
                    "health_factor": "1.42",
                    "current_ltv_percentage": "56.12",
                    "safe_borrow_amount_usd": "200.00",
                    "safe_withdraw_amount_usd": "500.00",
                    "risk_metrics": {
                      "priceDropToLiquidation": "29.67",
                      "borrowCapacityUtilization": "74.24",
                      "interestCoverageRatio": "0.36",
                      "maxBorrowCapacityUSD": "3844.66",
                      "liquidationThreshold": "79.80",
                      "ltv": "75.00"
                    },
                    "asset_metrics": {
                      "suppliedAssets": [
                        {
                          "symbol": "WETH",
                          "suppliedUSD": "1706.67",
                          "weightInPortfolio": "33.56",
                          "dailyEarnings": "0.08",
                          "liquidation": {
                            "direction": "decrease",
                            "currentPrice": 3413.34,
                            "liquidationPricePerTokenUSD": "2400.00",
                            "liquidationNotionalUSD": "1200.00",
                            "priceDropToLiquidationPct": "29.67"
                          }
                        }
                      ],
                      "borrowedAssets": [
                        {
                          "symbol": "USDC",
                          "borrowedUSD": "2854.38",
                          "weightInDebt": "100.00",
                          "dailyCost": "0.35",
                          "liquidation": {
                            "direction": "increase",
                            "currentPrice": 1,
                            "liquidationPricePerTokenUSD": "1.42",
                            "liquidationNotionalUSD": "4050.00",
                            "priceIncreaseToLiquidationPct": "42.00"
                          }
                        }
                      ]
                    }
                  },
                  "request_id": "req_..."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-mint": {
          "href": "/api-reference/aave-v3/risk",
          "metadata": {
            "sidebarTitle": "Get Position Risk"
          }
        }
      }
    },
    "/v1/lending/aavev3/position/{chain_id}/snapshots": {
      "get": {
        "tags": [
          "Aave V3"
        ],
        "operationId": "get_v1_lending_aavev3_position_chain_id_snapshots",
        "summary": "Get Position Historical Performance",
        "description": "Historical performance: daily Aave V3 position snapshots for the history chart. `max_snapshots` is a day count; omit it for the full indexed series. Optional `market_id` (default main).\n\n**Credits:** 2 per successful call.",
        "parameters": [
          {
            "name": "chain_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Chain ID.",
              "example": 8453,
              "x-default": 8453
            }
          },
          {
            "name": "wallet",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Wallet address.",
              "example": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495",
              "x-default": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495"
            }
          },
          {
            "name": "market_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "main",
                "lido",
                "horizon"
              ],
              "description": "Default: `main`. Values: `main`, `lido`, `horizon`.",
              "default": "main"
            }
          },
          {
            "name": "max_snapshots",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Max snapshots (days)."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/RequestId"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "timestamp": {
                                "type": "number",
                                "description": "Unix seconds."
                              },
                              "collateral_usd": {
                                "type": "string"
                              },
                              "debt_usd": {
                                "type": "string"
                              },
                              "net_worth_usd": {
                                "type": "string"
                              },
                              "health_factor": {
                                "type": "string",
                                "description": "String. Aave divides liquidation-threshold-weighted collateral by debt. Morpho divides collateral \u00d7 oracle price \u00d7 LLTV by debt, to four decimals. Kamino divides liquidation LTV by LTV. MAX or \u221e when there is no debt."
                              }
                            },
                            "required": [
                              "timestamp",
                              "collateral_usd",
                              "debt_usd",
                              "net_worth_usd",
                              "health_factor"
                            ]
                          }
                        }
                      },
                      "required": [
                        "data"
                      ]
                    }
                  ]
                },
                "example": {
                  "data": [
                    {
                      "timestamp": 1717200000,
                      "collateral_usd": "5085.89",
                      "debt_usd": "2854.38",
                      "net_worth_usd": "2231.51",
                      "health_factor": "1.42"
                    }
                  ],
                  "request_id": "req_..."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-mint": {
          "href": "/api-reference/aave-v3/snapshots",
          "metadata": {
            "sidebarTitle": "Get Position Historical Performance"
          }
        }
      }
    },
    "/v1/lending/aavev3/summary": {
      "get": {
        "tags": [
          "Aave V3"
        ],
        "operationId": "get_v1_lending_aavev3_summary",
        "summary": "Get Aave V3 Summary",
        "description": "Lightweight per-chain \"is this wallet at risk anywhere\" check from the lending indexer \u2014 no position detail, just chain IDs and an `at_risk` flag (health factor below 1.5). Optional `market_id` (main / lido / horizon) to scope one market.\n\n**Credits:** 3 per successful call.",
        "parameters": [
          {
            "name": "wallet",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Wallet address.",
              "example": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495",
              "x-default": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495"
            }
          },
          {
            "name": "chain_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Chain ID."
            }
          },
          {
            "name": "market_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "main",
                "lido",
                "horizon"
              ],
              "description": "Omit for all markets. Values: `main`, `lido`, `horizon`."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/RequestId"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "type": "object",
                          "properties": {
                            "chains": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "chain_id": {
                                    "type": "integer"
                                  },
                                  "at_risk": {
                                    "type": "boolean",
                                    "description": "True when health factor is a finite number below 1.5. MAX and \u221e are not at risk."
                                  }
                                },
                                "required": [
                                  "chain_id",
                                  "at_risk"
                                ]
                              }
                            },
                            "total": {
                              "type": "number"
                            },
                            "total_at_risk": {
                              "type": "integer",
                              "description": "Count of chains or obligations currently at risk."
                            }
                          },
                          "required": [
                            "chains",
                            "total",
                            "total_at_risk"
                          ]
                        }
                      },
                      "required": [
                        "data"
                      ]
                    }
                  ]
                },
                "example": {
                  "data": {
                    "chains": [
                      {
                        "chain_id": 8453,
                        "at_risk": true
                      }
                    ],
                    "total": 1,
                    "total_at_risk": 1
                  },
                  "request_id": "req_..."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-mint": {
          "href": "/api-reference/aave-v3/summary",
          "metadata": {
            "sidebarTitle": "Get Aave V3 Summary"
          }
        }
      }
    },
    "/v1/lending/aavev3/position/{chain_id}/yield": {
      "get": {
        "tags": [
          "Aave V3"
        ],
        "operationId": "get_v1_lending_aavev3_position_chain_id_yield",
        "summary": "Get Position Yield",
        "description": "Daily/weekly/monthly/yearly interest earned vs. paid, plus net APY. Optional `market_id` (default main) and `target_health_factor` (default 1.5).\n\n**Credits:** 8 per successful call.",
        "parameters": [
          {
            "name": "chain_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Chain ID.",
              "example": 8453,
              "x-default": 8453
            }
          },
          {
            "name": "wallet",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Wallet address.",
              "example": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495",
              "x-default": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495"
            }
          },
          {
            "name": "market_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "main",
                "lido",
                "horizon"
              ],
              "description": "Default: `main`. Values: `main`, `lido`, `horizon`.",
              "default": "main"
            }
          },
          {
            "name": "target_health_factor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number",
              "description": "Target health factor. Default: 1.5.",
              "default": 1.5
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/RequestId"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "type": "object",
                          "properties": {
                            "chain_id": {
                              "type": "integer"
                            },
                            "wallet": {
                              "type": "string"
                            },
                            "market_id": {
                              "type": "string"
                            },
                            "daily_supply_interest_usd": {
                              "type": "string"
                            },
                            "daily_borrow_interest_usd": {
                              "type": "string"
                            },
                            "net_daily_interest_usd": {
                              "type": "string"
                            },
                            "net_apy": {
                              "type": "string"
                            },
                            "position_leverage": {
                              "type": "string"
                            },
                            "weighted_supply_apy": {
                              "type": "string"
                            },
                            "weighted_borrow_apy": {
                              "type": "string"
                            },
                            "projected_earnings_detailed": {
                              "type": "object",
                              "properties": {
                                "simple": {
                                  "type": "object",
                                  "properties": {
                                    "oneDay": {
                                      "type": "string"
                                    },
                                    "sevenDays": {
                                      "type": "string"
                                    },
                                    "thirtyDays": {
                                      "type": "string"
                                    },
                                    "oneYear": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "oneDay",
                                    "sevenDays",
                                    "thirtyDays",
                                    "oneYear"
                                  ]
                                },
                                "compounding": {
                                  "type": "object",
                                  "properties": {
                                    "sevenDays": {
                                      "type": "string"
                                    },
                                    "thirtyDays": {
                                      "type": "string"
                                    },
                                    "oneYear": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "sevenDays",
                                    "thirtyDays",
                                    "oneYear"
                                  ]
                                }
                              },
                              "required": [
                                "simple",
                                "compounding"
                              ]
                            }
                          },
                          "required": [
                            "chain_id",
                            "wallet",
                            "market_id",
                            "daily_supply_interest_usd",
                            "daily_borrow_interest_usd",
                            "net_daily_interest_usd",
                            "net_apy",
                            "position_leverage",
                            "weighted_supply_apy",
                            "weighted_borrow_apy",
                            "projected_earnings_detailed"
                          ]
                        }
                      },
                      "required": [
                        "data"
                      ]
                    }
                  ]
                },
                "example": {
                  "data": {
                    "chain_id": 8453,
                    "wallet": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495",
                    "market_id": "main",
                    "daily_supply_interest_usd": "0.08",
                    "daily_borrow_interest_usd": "0.35",
                    "net_daily_interest_usd": "-0.27",
                    "net_apy": "-4.47",
                    "position_leverage": "1.28",
                    "weighted_supply_apy": "1.63",
                    "weighted_borrow_apy": "4.48",
                    "projected_earnings_detailed": {
                      "simple": {
                        "oneDay": "-0.27",
                        "sevenDays": "-1.89",
                        "thirtyDays": "-7.99",
                        "oneYear": "-97.22"
                      },
                      "compounding": {
                        "sevenDays": "-1.89",
                        "thirtyDays": "-8.10",
                        "oneYear": "-99.40"
                      }
                    }
                  },
                  "request_id": "req_..."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-mint": {
          "href": "/api-reference/aave-v3/yield",
          "metadata": {
            "sidebarTitle": "Get Position Yield"
          }
        }
      }
    },
    "/v1/positions/aerodromev3/batch": {
      "post": {
        "tags": [
          "Aerodrome V3"
        ],
        "operationId": "post_v1_positions_aerodromev3_batch",
        "summary": "Batch Get Aerodrome V3 Positions",
        "description": "Same as the list endpoint, multiple wallets in one POST. Returns the same shape as ?full=true on the list endpoint \u2014 for scanning many addresses at once on Base.\n\n**Credits:** 12 per position returned on this page.",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Page. Default: 1.",
              "default": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Maximum 25. Default: 10.",
              "default": 10,
              "maximum": 25
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/RequestId"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "token_id": {
                                "type": "string"
                              },
                              "chain_id": {
                                "type": "integer"
                              },
                              "wallet": {
                                "type": "string"
                              },
                              "is_active": {
                                "type": "boolean"
                              },
                              "position": {
                                "type": "object",
                                "properties": {
                                  "positionData": {
                                    "type": "object",
                                    "properties": {
                                      "id": {
                                        "type": "string"
                                      },
                                      "owner": {
                                        "type": "string"
                                      },
                                      "tickLower": {
                                        "type": "string"
                                      },
                                      "tickUpper": {
                                        "type": "string"
                                      },
                                      "token0": {
                                        "type": "object",
                                        "properties": {
                                          "symbol": {
                                            "type": "string"
                                          }
                                        },
                                        "required": [
                                          "symbol"
                                        ]
                                      },
                                      "token1": {
                                        "type": "object",
                                        "properties": {
                                          "symbol": {
                                            "type": "string"
                                          }
                                        },
                                        "required": [
                                          "symbol"
                                        ]
                                      },
                                      "pool": {
                                        "type": "object",
                                        "properties": {
                                          "id": {
                                            "type": "string"
                                          },
                                          "feeTier": {
                                            "type": "string"
                                          }
                                        },
                                        "required": [
                                          "id",
                                          "feeTier"
                                        ]
                                      },
                                      "chain": {
                                        "type": "object",
                                        "properties": {
                                          "id": {
                                            "type": "number"
                                          }
                                        },
                                        "required": [
                                          "id"
                                        ]
                                      },
                                      "protocol": {
                                        "type": "object",
                                        "properties": {
                                          "code": {
                                            "type": "string"
                                          }
                                        },
                                        "required": [
                                          "code"
                                        ]
                                      },
                                      "managerAddress": {
                                        "type": "string"
                                      }
                                    },
                                    "required": [
                                      "id",
                                      "owner",
                                      "tickLower",
                                      "tickUpper",
                                      "token0",
                                      "token1",
                                      "pool",
                                      "chain",
                                      "protocol",
                                      "managerAddress"
                                    ]
                                  },
                                  "calculations": {
                                    "type": "object",
                                    "properties": {
                                      "inRange": {
                                        "type": "boolean",
                                        "description": "True when the pool price is inside the position tick range."
                                      },
                                      "positionUsdValue": {
                                        "type": "string",
                                        "description": "USD string. Token principal plus unclaimed fees and rewards."
                                      },
                                      "isClosed": {
                                        "type": "boolean",
                                        "description": "True when the position liquidity is zero."
                                      }
                                    },
                                    "required": [
                                      "inRange",
                                      "positionUsdValue",
                                      "isClosed"
                                    ]
                                  }
                                },
                                "required": [
                                  "positionData",
                                  "calculations"
                                ]
                              }
                            },
                            "required": [
                              "token_id",
                              "chain_id",
                              "wallet",
                              "is_active",
                              "position"
                            ]
                          }
                        },
                        "pagination": {
                          "$ref": "#/components/schemas/Pagination"
                        },
                        "counts": {
                          "type": "object",
                          "properties": {
                            "totalActive": {
                              "type": "number"
                            },
                            "totalInactive": {
                              "type": "number"
                            },
                            "total": {
                              "type": "number"
                            },
                            "filtered": {
                              "type": "number"
                            },
                            "errors": {
                              "type": "number"
                            },
                            "spams": {
                              "type": "array",
                              "items": {
                                "type": "object"
                              }
                            }
                          },
                          "required": [
                            "totalActive",
                            "totalInactive",
                            "total",
                            "filtered",
                            "errors",
                            "spams"
                          ]
                        }
                      },
                      "required": [
                        "data",
                        "pagination",
                        "counts"
                      ]
                    }
                  ]
                },
                "example": {
                  "data": [
                    {
                      "token_id": "1",
                      "chain_id": 8453,
                      "wallet": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495",
                      "is_active": true,
                      "position": {
                        "positionData": {
                          "id": "1",
                          "owner": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495",
                          "tickLower": "-887220",
                          "tickUpper": "887220",
                          "token0": {
                            "symbol": "WETH"
                          },
                          "token1": {
                            "symbol": "USDC"
                          },
                          "pool": {
                            "id": "0xpool",
                            "feeTier": "100"
                          },
                          "chain": {
                            "id": 8453
                          },
                          "protocol": {
                            "code": "aerodrome"
                          },
                          "managerAddress": "0x827922686190790b37229fd06084350e74485b72"
                        },
                        "calculations": {
                          "inRange": true,
                          "positionUsdValue": "3500.00",
                          "isClosed": false
                        }
                      }
                    }
                  ],
                  "pagination": {
                    "page": 1,
                    "limit": 10,
                    "total": 3,
                    "next_page": null,
                    "prev_page": null
                  },
                  "counts": {
                    "totalActive": 3,
                    "totalInactive": 2,
                    "total": 5,
                    "filtered": 3,
                    "errors": 0,
                    "spams": []
                  },
                  "request_id": "req_..."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-mint": {
          "href": "/api-reference/aerodrome-v3/batch",
          "metadata": {
            "sidebarTitle": "Batch Get Aerodrome V3 Positions"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "wallets": {
                    "type": "array",
                    "description": "Wallet addresses (comma-separated in the explorer; JSON array in the request body).",
                    "items": {
                      "type": "string"
                    },
                    "example": [
                      "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495"
                    ],
                    "x-default": [
                      "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495"
                    ]
                  }
                },
                "required": [
                  "wallets"
                ]
              },
              "example": {
                "wallets": [
                  "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495"
                ]
              }
            }
          }
        }
      }
    },
    "/v1/positions/aerodromev3/{id}/events": {
      "get": {
        "tags": [
          "Aerodrome V3"
        ],
        "operationId": "get_v1_positions_aerodromev3_id_events",
        "summary": "Get Aerodrome V3 Position Events",
        "description": "Position history for one Slipstream LP position: deposits (IncreaseLiquidity), withdrawals (DecreaseLiquidity), fee collections, and compounds (Collect). Each event has token amounts, token prices at the transaction (token0PriceUSD, token1PriceUSD), timestamp, and transaction_hash. USD value is amount times that price; it is not a stored field. The first deposit is the mint. An empty compounds list is omitted.\n\n**Credits:** 1 per successful call.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Token ID.",
              "example": "1",
              "x-default": "1"
            }
          },
          {
            "name": "chain_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Chain ID.",
              "example": 8453,
              "x-default": 8453
            }
          },
          {
            "name": "manager_address",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Manager address."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/RequestId"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "type": "object",
                          "properties": {
                            "token_id": {
                              "type": "string"
                            },
                            "chain_id": {
                              "type": "integer"
                            },
                            "deposits": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "amount0": {
                                    "type": "string",
                                    "description": "Token amount as a decimal string."
                                  },
                                  "amount1": {
                                    "type": "string",
                                    "description": "Token amount as a decimal string."
                                  },
                                  "token0PriceUSD": {
                                    "type": "string",
                                    "description": "USD price of token0 at the transaction."
                                  },
                                  "token1PriceUSD": {
                                    "type": "string",
                                    "description": "USD price of token1 at the transaction."
                                  },
                                  "timestamp": {
                                    "type": "number",
                                    "description": "Unix seconds."
                                  },
                                  "block": {
                                    "type": "integer"
                                  },
                                  "transaction_hash": {
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "amount0",
                                  "amount1",
                                  "token0PriceUSD",
                                  "token1PriceUSD",
                                  "timestamp",
                                  "block",
                                  "transaction_hash"
                                ]
                              }
                            },
                            "withdrawals": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "amount0": {
                                    "type": "string",
                                    "description": "Token amount as a decimal string."
                                  },
                                  "amount1": {
                                    "type": "string",
                                    "description": "Token amount as a decimal string."
                                  },
                                  "token0PriceUSD": {
                                    "type": "string",
                                    "description": "USD price of token0 at the transaction."
                                  },
                                  "token1PriceUSD": {
                                    "type": "string",
                                    "description": "USD price of token1 at the transaction."
                                  },
                                  "timestamp": {
                                    "type": "number",
                                    "description": "Unix seconds."
                                  },
                                  "block": {
                                    "type": "integer"
                                  },
                                  "transaction_hash": {
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "amount0",
                                  "amount1",
                                  "token0PriceUSD",
                                  "token1PriceUSD",
                                  "timestamp",
                                  "block",
                                  "transaction_hash"
                                ]
                              }
                            },
                            "collections": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "amount0": {
                                    "type": "string",
                                    "description": "Token amount as a decimal string."
                                  },
                                  "amount1": {
                                    "type": "string",
                                    "description": "Token amount as a decimal string."
                                  },
                                  "token0PriceUSD": {
                                    "type": "string",
                                    "description": "USD price of token0 at the transaction."
                                  },
                                  "token1PriceUSD": {
                                    "type": "string",
                                    "description": "USD price of token1 at the transaction."
                                  },
                                  "timestamp": {
                                    "type": "number",
                                    "description": "Unix seconds."
                                  },
                                  "block": {
                                    "type": "integer"
                                  },
                                  "transaction_hash": {
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "amount0",
                                  "amount1",
                                  "token0PriceUSD",
                                  "token1PriceUSD",
                                  "timestamp",
                                  "block",
                                  "transaction_hash"
                                ]
                              }
                            }
                          },
                          "required": [
                            "token_id",
                            "chain_id",
                            "deposits",
                            "withdrawals",
                            "collections"
                          ]
                        }
                      },
                      "required": [
                        "data"
                      ]
                    }
                  ]
                },
                "example": {
                  "data": {
                    "token_id": "1",
                    "chain_id": 8453,
                    "deposits": [
                      {
                        "amount0": "1.0",
                        "amount1": "2000",
                        "token0PriceUSD": "3500.00",
                        "token1PriceUSD": "1.00",
                        "timestamp": 1717200000,
                        "block": 12000000,
                        "transaction_hash": "0xabc"
                      }
                    ],
                    "withdrawals": [],
                    "collections": []
                  },
                  "request_id": "req_..."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-mint": {
          "href": "/api-reference/aerodrome-v3/events",
          "metadata": {
            "sidebarTitle": "Get Aerodrome V3 Position Events"
          }
        }
      }
    },
    "/v1/positions/aerodromev3/{id}/full": {
      "get": {
        "tags": [
          "Aerodrome V3"
        ],
        "operationId": "get_v1_positions_aerodromev3_id_full",
        "summary": "Get Full Aerodrome V3 Position Detail",
        "description": "Everything: state, full event history, PnL, impermanent loss, fee and AERO reward accrual, and APR. The heaviest endpoint \u2014 prefer snapshot/pnl/yield if you don't need the whole payload.\n\n**Credits:** 15 per successful call.\n\nThese queries have their own credit cost.\n\n| Query | Credits |\n| --- | --- |\n| `status=inactive` | 7 |",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Token ID.",
              "example": "1",
              "x-default": "1"
            }
          },
          {
            "name": "chain_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Chain ID.",
              "example": 8453,
              "x-default": 8453
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "inactive"
              ],
              "description": "Omit for active positions. Set to `inactive` for closed positions. Default: active."
            }
          },
          {
            "name": "manager_address",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Manager address."
            }
          },
          {
            "name": "granularity",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Comma-separated: `hourly`, `daily`, `weekly`, `monthly`, `yearly`."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/RequestId"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "type": "object",
                          "properties": {
                            "positionData": {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string"
                                },
                                "owner": {
                                  "type": "string"
                                },
                                "liquidity": {
                                  "type": "string"
                                },
                                "tickLower": {
                                  "type": "string"
                                },
                                "tickUpper": {
                                  "type": "string"
                                },
                                "token0": {
                                  "type": "object",
                                  "properties": {
                                    "id": {
                                      "type": "string"
                                    },
                                    "symbol": {
                                      "type": "string"
                                    },
                                    "decimals": {
                                      "type": "integer"
                                    },
                                    "name": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "id",
                                    "symbol",
                                    "decimals",
                                    "name"
                                  ]
                                },
                                "token1": {
                                  "type": "object",
                                  "properties": {
                                    "id": {
                                      "type": "string"
                                    },
                                    "symbol": {
                                      "type": "string"
                                    },
                                    "decimals": {
                                      "type": "integer"
                                    },
                                    "name": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "id",
                                    "symbol",
                                    "decimals",
                                    "name"
                                  ]
                                },
                                "pool": {
                                  "type": "object",
                                  "properties": {
                                    "id": {
                                      "type": "string"
                                    },
                                    "feeTier": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "id",
                                    "feeTier"
                                  ]
                                },
                                "chain": {
                                  "type": "object",
                                  "properties": {
                                    "id": {
                                      "type": "number"
                                    }
                                  },
                                  "required": [
                                    "id"
                                  ]
                                },
                                "protocol": {
                                  "type": "object",
                                  "properties": {
                                    "code": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "code"
                                  ]
                                },
                                "managerAddress": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "id",
                                "owner",
                                "liquidity",
                                "tickLower",
                                "tickUpper",
                                "token0",
                                "token1",
                                "pool",
                                "chain",
                                "protocol",
                                "managerAddress"
                              ]
                            },
                            "calculations": {
                              "type": "object",
                              "properties": {
                                "inRange": {
                                  "type": "boolean",
                                  "description": "True when the pool price is inside the position tick range."
                                },
                                "isClosed": {
                                  "type": "boolean",
                                  "description": "True when the position liquidity is zero."
                                },
                                "positionUsdValue": {
                                  "type": "string",
                                  "description": "USD string. Token principal plus unclaimed fees and rewards."
                                },
                                "pnlUsdValue": {
                                  "type": "string",
                                  "description": "USD string. Current position value, plus withdrawals, plus claimed fees and rewards, minus capital deposited."
                                },
                                "pnlPercentage": {
                                  "type": "string",
                                  "description": "Percent string. PnL divided by net invested capital. 0 when net invested is not positive."
                                },
                                "earnedAprPercentage": {
                                  "type": "object",
                                  "properties": {
                                    "yield": {
                                      "type": "string",
                                      "description": "Percent string for that component."
                                    },
                                    "fees": {
                                      "type": "string",
                                      "description": "Percent string for that component."
                                    },
                                    "rewards": {
                                      "type": "string",
                                      "description": "Percent string for that component."
                                    }
                                  },
                                  "required": [
                                    "yield",
                                    "fees",
                                    "rewards"
                                  ],
                                  "description": "Simple APR percent strings, not compounded. Each figure is value \u00d7 365 / days / time-weighted capital. Days are at least 1 hour."
                                }
                              },
                              "required": [
                                "inRange",
                                "isClosed",
                                "positionUsdValue",
                                "pnlUsdValue",
                                "pnlPercentage",
                                "earnedAprPercentage"
                              ]
                            }
                          },
                          "required": [
                            "positionData",
                            "calculations"
                          ]
                        }
                      },
                      "required": [
                        "data"
                      ]
                    }
                  ]
                },
                "example": {
                  "data": {
                    "positionData": {
                      "id": "1",
                      "owner": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495",
                      "liquidity": "123456789",
                      "tickLower": "-887220",
                      "tickUpper": "887220",
                      "token0": {
                        "id": "0xweth",
                        "symbol": "WETH",
                        "decimals": 18,
                        "name": "Wrapped Ether"
                      },
                      "token1": {
                        "id": "0xusdc",
                        "symbol": "USDC",
                        "decimals": 6,
                        "name": "USD Coin"
                      },
                      "pool": {
                        "id": "0xpool",
                        "feeTier": "100"
                      },
                      "chain": {
                        "id": 8453
                      },
                      "protocol": {
                        "code": "aerodrome"
                      },
                      "managerAddress": "0x827922686190790b37229fd06084350e74485b72"
                    },
                    "calculations": {
                      "inRange": true,
                      "isClosed": false,
                      "positionUsdValue": "3500.00",
                      "pnlUsdValue": "200.00",
                      "pnlPercentage": "6.06",
                      "earnedAprPercentage": {
                        "yield": "35.00",
                        "fees": "20.00",
                        "rewards": "15.00"
                      }
                    }
                  },
                  "request_id": "req_..."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          }
        },
        "x-mint": {
          "href": "/api-reference/aerodrome-v3/full",
          "metadata": {
            "sidebarTitle": "Get Full Aerodrome V3 Position Detail"
          }
        }
      }
    },
    "/v1/positions/aerodromev3/{id}": {
      "get": {
        "tags": [
          "Aerodrome V3"
        ],
        "operationId": "get_v1_positions_aerodromev3_id",
        "summary": "Get Aerodrome V3 Position",
        "description": "Raw on-chain state for a single Slipstream position: ticks, pool, tokens, liquidity.\n\n**Credits:** 2 per successful call.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Token ID.",
              "example": "1",
              "x-default": "1"
            }
          },
          {
            "name": "chain_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Chain ID.",
              "example": 8453,
              "x-default": 8453
            }
          },
          {
            "name": "manager_address",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Manager address."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/RequestId"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "type": "object",
                          "properties": {
                            "token_id": {
                              "type": "string"
                            },
                            "chain_id": {
                              "type": "integer"
                            },
                            "wallet": {
                              "type": "string"
                            },
                            "is_active": {
                              "type": "boolean"
                            },
                            "position_state": {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string"
                                },
                                "owner": {
                                  "type": "string"
                                },
                                "liquidity": {
                                  "type": "string"
                                },
                                "tickLower": {
                                  "type": "string"
                                },
                                "tickUpper": {
                                  "type": "string"
                                },
                                "token0": {
                                  "type": "object",
                                  "properties": {
                                    "id": {
                                      "type": "string"
                                    },
                                    "symbol": {
                                      "type": "string"
                                    },
                                    "decimals": {
                                      "type": "integer"
                                    },
                                    "name": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "id",
                                    "symbol",
                                    "decimals",
                                    "name"
                                  ]
                                },
                                "token1": {
                                  "type": "object",
                                  "properties": {
                                    "id": {
                                      "type": "string"
                                    },
                                    "symbol": {
                                      "type": "string"
                                    },
                                    "decimals": {
                                      "type": "integer"
                                    },
                                    "name": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "id",
                                    "symbol",
                                    "decimals",
                                    "name"
                                  ]
                                },
                                "pool": {
                                  "type": "object",
                                  "properties": {
                                    "id": {
                                      "type": "string"
                                    },
                                    "tick": {
                                      "type": "string"
                                    },
                                    "feeTier": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "id",
                                    "tick",
                                    "feeTier"
                                  ]
                                },
                                "chain": {
                                  "type": "object",
                                  "properties": {
                                    "id": {
                                      "type": "number"
                                    }
                                  },
                                  "required": [
                                    "id"
                                  ]
                                },
                                "protocol": {
                                  "type": "object",
                                  "properties": {
                                    "code": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "code"
                                  ]
                                }
                              },
                              "required": [
                                "id",
                                "owner",
                                "liquidity",
                                "tickLower",
                                "tickUpper",
                                "token0",
                                "token1",
                                "pool",
                                "chain",
                                "protocol"
                              ]
                            }
                          },
                          "required": [
                            "token_id",
                            "chain_id",
                            "wallet",
                            "is_active",
                            "position_state"
                          ]
                        }
                      },
                      "required": [
                        "data"
                      ]
                    }
                  ]
                },
                "example": {
                  "data": {
                    "token_id": "1",
                    "chain_id": 8453,
                    "wallet": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495",
                    "is_active": true,
                    "position_state": {
                      "id": "1",
                      "owner": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495",
                      "liquidity": "123456789",
                      "tickLower": "-887220",
                      "tickUpper": "887220",
                      "token0": {
                        "id": "0xweth",
                        "symbol": "WETH",
                        "decimals": 18,
                        "name": "Wrapped Ether"
                      },
                      "token1": {
                        "id": "0xusdc",
                        "symbol": "USDC",
                        "decimals": 6,
                        "name": "USD Coin"
                      },
                      "pool": {
                        "id": "0xpool",
                        "tick": "0",
                        "feeTier": "100"
                      },
                      "chain": {
                        "id": 8453
                      },
                      "protocol": {
                        "code": "aerodrome"
                      }
                    }
                  },
                  "request_id": "req_..."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-mint": {
          "href": "/api-reference/aerodrome-v3/get",
          "metadata": {
            "sidebarTitle": "Get Aerodrome V3 Position"
          }
        }
      }
    },
    "/v1/positions/aerodromev3": {
      "get": {
        "tags": [
          "Aerodrome V3"
        ],
        "operationId": "get_v1_positions_aerodromev3",
        "summary": "List Aerodrome V3 Positions",
        "description": "All active Slipstream CL positions for a wallet on Base (chain_id=8453). Use status=inactive for closed positions.\n\n**Credits:** 2 per position returned on this page.\n\nThese queries have their own credit cost.\n\n| Query | Credits per returned position |\n| --- | --- |\n| `status=inactive` | 1 |\n| `full=true` | 15 |",
        "parameters": [
          {
            "name": "wallet",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Wallet address.",
              "example": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495",
              "x-default": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495"
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "inactive"
              ],
              "description": "Omit for active positions. Set to `inactive` for closed positions. Default: active."
            }
          },
          {
            "name": "full",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "description": "Boolean. Include `full=true` for the detailed payload. Omit otherwise. On list endpoints this returns active positions only."
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Page. Default: 1.",
              "default": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Maximum 25. Default: 10.",
              "default": 10,
              "maximum": 25
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/RequestId"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "token_id": {
                                "type": "string"
                              },
                              "chain_id": {
                                "type": "integer"
                              },
                              "manager_address": {
                                "type": "string"
                              },
                              "wallet": {
                                "type": "string"
                              },
                              "is_active": {
                                "type": "boolean"
                              },
                              "position_state": {
                                "type": "object",
                                "properties": {
                                  "id": {
                                    "type": "string"
                                  },
                                  "owner": {
                                    "type": "string"
                                  },
                                  "liquidity": {
                                    "type": "string"
                                  },
                                  "tickLower": {
                                    "type": "string"
                                  },
                                  "tickUpper": {
                                    "type": "string"
                                  },
                                  "token0": {
                                    "type": "object",
                                    "properties": {
                                      "id": {
                                        "type": "string"
                                      },
                                      "symbol": {
                                        "type": "string"
                                      },
                                      "decimals": {
                                        "type": "integer"
                                      },
                                      "name": {
                                        "type": "string"
                                      }
                                    },
                                    "required": [
                                      "id",
                                      "symbol",
                                      "decimals",
                                      "name"
                                    ]
                                  },
                                  "token1": {
                                    "type": "object",
                                    "properties": {
                                      "id": {
                                        "type": "string"
                                      },
                                      "symbol": {
                                        "type": "string"
                                      },
                                      "decimals": {
                                        "type": "integer"
                                      },
                                      "name": {
                                        "type": "string"
                                      }
                                    },
                                    "required": [
                                      "id",
                                      "symbol",
                                      "decimals",
                                      "name"
                                    ]
                                  },
                                  "pool": {
                                    "type": "object",
                                    "properties": {
                                      "id": {
                                        "type": "string"
                                      },
                                      "tick": {
                                        "type": "string"
                                      },
                                      "feeTier": {
                                        "type": "string"
                                      }
                                    },
                                    "required": [
                                      "id",
                                      "tick",
                                      "feeTier"
                                    ]
                                  },
                                  "chain": {
                                    "type": "object",
                                    "properties": {
                                      "id": {
                                        "type": "number"
                                      }
                                    },
                                    "required": [
                                      "id"
                                    ]
                                  },
                                  "protocol": {
                                    "type": "object",
                                    "properties": {
                                      "code": {
                                        "type": "string"
                                      }
                                    },
                                    "required": [
                                      "code"
                                    ]
                                  }
                                },
                                "required": [
                                  "id",
                                  "owner",
                                  "liquidity",
                                  "tickLower",
                                  "tickUpper",
                                  "token0",
                                  "token1",
                                  "pool",
                                  "chain",
                                  "protocol"
                                ]
                              }
                            },
                            "required": [
                              "token_id",
                              "chain_id",
                              "manager_address",
                              "wallet",
                              "is_active",
                              "position_state"
                            ]
                          }
                        },
                        "pagination": {
                          "$ref": "#/components/schemas/Pagination"
                        },
                        "counts": {
                          "type": "object",
                          "properties": {
                            "totalActive": {
                              "type": "number"
                            },
                            "totalInactive": {
                              "type": "number"
                            },
                            "total": {
                              "type": "number"
                            },
                            "filtered": {
                              "type": "number"
                            },
                            "errors": {
                              "type": "number"
                            },
                            "spams": {
                              "type": "array",
                              "items": {
                                "type": "object"
                              }
                            }
                          },
                          "required": [
                            "totalActive",
                            "totalInactive",
                            "total",
                            "filtered",
                            "errors",
                            "spams"
                          ]
                        }
                      },
                      "required": [
                        "data",
                        "pagination",
                        "counts"
                      ]
                    }
                  ]
                },
                "example": {
                  "data": [
                    {
                      "token_id": "1",
                      "chain_id": 8453,
                      "manager_address": "0x827922686190790b37229fd06084350e74485b72",
                      "wallet": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495",
                      "is_active": true,
                      "position_state": {
                        "id": "1",
                        "owner": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495",
                        "liquidity": "123456789",
                        "tickLower": "-887220",
                        "tickUpper": "887220",
                        "token0": {
                          "id": "0xweth",
                          "symbol": "WETH",
                          "decimals": 18,
                          "name": "Wrapped Ether"
                        },
                        "token1": {
                          "id": "0xusdc",
                          "symbol": "USDC",
                          "decimals": 6,
                          "name": "USD Coin"
                        },
                        "pool": {
                          "id": "0xpool",
                          "tick": "0",
                          "feeTier": "100"
                        },
                        "chain": {
                          "id": 8453
                        },
                        "protocol": {
                          "code": "aerodrome"
                        }
                      }
                    }
                  ],
                  "pagination": {
                    "page": 1,
                    "limit": 10,
                    "total": 3,
                    "next_page": null,
                    "prev_page": null
                  },
                  "counts": {
                    "totalActive": 3,
                    "totalInactive": 2,
                    "total": 5,
                    "filtered": 3,
                    "errors": 0,
                    "spams": []
                  },
                  "request_id": "req_..."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-mint": {
          "href": "/api-reference/aerodrome-v3/list",
          "metadata": {
            "sidebarTitle": "List Aerodrome V3 Positions"
          }
        }
      }
    },
    "/v1/positions/aerodromev3/{id}/pnl": {
      "get": {
        "tags": [
          "Aerodrome V3"
        ],
        "operationId": "get_v1_positions_aerodromev3_id_pnl",
        "summary": "Get Aerodrome V3 Position PnL",
        "description": "Just the profit/loss numbers, pulled out of the full payload.\n\n**Credits:** 8 per successful call.\n\nThese queries have their own credit cost.\n\n| Query | Credits |\n| --- | --- |\n| `status=inactive` | 4 |",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Token ID.",
              "example": "1",
              "x-default": "1"
            }
          },
          {
            "name": "chain_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Chain ID.",
              "example": 8453,
              "x-default": 8453
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "inactive"
              ],
              "description": "Omit for active positions. Set to `inactive` for closed positions. Default: active."
            }
          },
          {
            "name": "manager_address",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Manager address."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/RequestId"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "type": "object",
                          "properties": {
                            "token_id": {
                              "type": "string"
                            },
                            "chain_id": {
                              "type": "integer"
                            },
                            "pnl_usd_value": {
                              "type": "string",
                              "description": "USD string. Current position value, plus withdrawals, plus claimed fees and rewards, minus capital deposited."
                            },
                            "pnl_percentage": {
                              "type": "string",
                              "description": "Percent string. PnL divided by net invested capital. 0 when net invested is not positive."
                            },
                            "time_weighted_average_capital": {
                              "type": "string",
                              "description": "USD string. Capital weighted by how long each deposit or withdrawal was open. Compounds are not new capital."
                            },
                            "hodl_gross_benchmark_usd_value": {
                              "type": "string",
                              "description": "USD string. Deposited token amounts at the current price. Withdrawals are not subtracted."
                            },
                            "alpha_vs_hodl_gross_usd_value": {
                              "type": "string",
                              "description": "USD string. Remaining value plus withdrawals plus claimed yield, minus the HODL gross benchmark."
                            },
                            "alpha_vs_hodl_gross_percentage": {
                              "type": "string",
                              "description": "Percent string of that alpha over the HODL gross benchmark. 0 when the benchmark is not positive."
                            },
                            "net_impermanent_loss": {
                              "type": "string",
                              "description": "USD string. Current position value, including unclaimed yield, minus net deposited tokens at the current price."
                            },
                            "net_impermanent_loss_percentage": {
                              "type": "string",
                              "description": "Percent string of net impermanent loss over the value of net deposited tokens."
                            },
                            "pure_impermanent_loss": {
                              "type": "string",
                              "description": "USD string. Current token principal minus net deposited tokens at the current price. Fees and rewards are excluded."
                            },
                            "pure_impermanent_loss_percentage": {
                              "type": "string",
                              "description": "Percent string of pure impermanent loss over the value of net deposited tokens."
                            },
                            "market_pnl_usd_value": {
                              "type": "string",
                              "description": "USD string. HODL gross benchmark minus capital deposited."
                            },
                            "lp_divergence_pnl_usd_value": {
                              "type": "string",
                              "description": "USD string. Alpha versus HODL, minus total fees and rewards."
                            },
                            "realized_usd_value": {
                              "type": "string",
                              "description": "USD string. Withdrawals plus claimed fees and rewards."
                            },
                            "unrealized_usd_value": {
                              "type": "string",
                              "description": "USD string. Current position value, including unclaimed fees and rewards."
                            },
                            "is_closed": {
                              "type": "boolean",
                              "description": "True when the position liquidity is zero."
                            }
                          },
                          "required": [
                            "token_id",
                            "chain_id",
                            "pnl_usd_value",
                            "pnl_percentage",
                            "time_weighted_average_capital",
                            "hodl_gross_benchmark_usd_value",
                            "alpha_vs_hodl_gross_usd_value",
                            "alpha_vs_hodl_gross_percentage",
                            "net_impermanent_loss",
                            "net_impermanent_loss_percentage",
                            "pure_impermanent_loss",
                            "pure_impermanent_loss_percentage",
                            "market_pnl_usd_value",
                            "lp_divergence_pnl_usd_value",
                            "realized_usd_value",
                            "unrealized_usd_value",
                            "is_closed"
                          ]
                        }
                      },
                      "required": [
                        "data"
                      ]
                    }
                  ]
                },
                "example": {
                  "data": {
                    "token_id": "1",
                    "chain_id": 8453,
                    "pnl_usd_value": "200.00",
                    "pnl_percentage": "6.06",
                    "time_weighted_average_capital": "3300.00",
                    "hodl_gross_benchmark_usd_value": "3515.00",
                    "alpha_vs_hodl_gross_usd_value": "-15.00",
                    "alpha_vs_hodl_gross_percentage": "-0.43",
                    "net_impermanent_loss": "-15.00",
                    "net_impermanent_loss_percentage": "-0.43",
                    "pure_impermanent_loss": "-15.00",
                    "pure_impermanent_loss_percentage": "-0.43",
                    "market_pnl_usd_value": "215.00",
                    "lp_divergence_pnl_usd_value": "-15.00",
                    "realized_usd_value": "0",
                    "unrealized_usd_value": "3500.00",
                    "is_closed": false
                  },
                  "request_id": "req_..."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-mint": {
          "href": "/api-reference/aerodrome-v3/pnl",
          "metadata": {
            "sidebarTitle": "Get Aerodrome V3 Position PnL"
          }
        }
      }
    },
    "/v1/positions/aerodromev3/{id}/snapshot": {
      "get": {
        "tags": [
          "Aerodrome V3"
        ],
        "operationId": "get_v1_positions_aerodromev3_id_snapshot",
        "summary": "Get Aerodrome V3 Position Snapshot",
        "description": "A one-shot health check: current value, in/out of range, PnL, and APR. Not the daily history chart \u2014 use GET /:id/snapshots for historical performance.\n\n**Credits:** 5 per successful call.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Token ID.",
              "example": "1",
              "x-default": "1"
            }
          },
          {
            "name": "chain_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Chain ID.",
              "example": 8453,
              "x-default": 8453
            }
          },
          {
            "name": "manager_address",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Manager address."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/RequestId"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "type": "object",
                          "properties": {
                            "token_id": {
                              "type": "string"
                            },
                            "chain_id": {
                              "type": "integer"
                            },
                            "position_usd_value": {
                              "type": "string",
                              "description": "USD string. Token principal plus unclaimed fees and rewards."
                            },
                            "in_range": {
                              "type": "boolean",
                              "description": "True when the pool price is inside the position tick range."
                            },
                            "is_closed": {
                              "type": "boolean",
                              "description": "True when the position liquidity is zero."
                            },
                            "pnl_usd_value": {
                              "type": "string",
                              "description": "USD string. Current position value, plus withdrawals, plus claimed fees and rewards, minus capital deposited."
                            },
                            "pnl_percentage": {
                              "type": "string",
                              "description": "Percent string. PnL divided by net invested capital. 0 when net invested is not positive."
                            },
                            "earned_apr_percentage": {
                              "type": "object",
                              "properties": {
                                "yield": {
                                  "type": "string",
                                  "description": "Percent string for that component."
                                },
                                "fees": {
                                  "type": "string",
                                  "description": "Percent string for that component."
                                },
                                "rewards": {
                                  "type": "string",
                                  "description": "Percent string for that component."
                                }
                              },
                              "required": [
                                "yield",
                                "fees",
                                "rewards"
                              ],
                              "description": "Simple APR percent strings, not compounded. Each figure is value \u00d7 365 / days / time-weighted capital. Days are at least 1 hour."
                            }
                          },
                          "required": [
                            "token_id",
                            "chain_id",
                            "position_usd_value",
                            "in_range",
                            "is_closed",
                            "pnl_usd_value",
                            "pnl_percentage",
                            "earned_apr_percentage"
                          ]
                        }
                      },
                      "required": [
                        "data"
                      ]
                    }
                  ]
                },
                "example": {
                  "data": {
                    "token_id": "1",
                    "chain_id": 8453,
                    "position_usd_value": "3500.00",
                    "in_range": true,
                    "is_closed": false,
                    "pnl_usd_value": "200.00",
                    "pnl_percentage": "6.06",
                    "earned_apr_percentage": {
                      "yield": "35.00",
                      "fees": "20.00",
                      "rewards": "15.00"
                    }
                  },
                  "request_id": "req_..."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-mint": {
          "href": "/api-reference/aerodrome-v3/snapshot",
          "metadata": {
            "sidebarTitle": "Get Aerodrome V3 Position Snapshot"
          }
        }
      }
    },
    "/v1/positions/aerodromev3/{id}/snapshots": {
      "get": {
        "tags": [
          "Aerodrome V3"
        ],
        "operationId": "get_v1_positions_aerodromev3_id_snapshots",
        "summary": "Get Aerodrome V3 Historical Performance",
        "description": "Daily history chart for one Slipstream position: mint genesis point, then one row per UTC day. rewards is the cumulative AERO token amount (not USD). This is not the current health check \u2014 that is GET /:id/snapshot.\n\n**Credits:** 2 per successful call.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Token ID.",
              "example": "1",
              "x-default": "1"
            }
          },
          {
            "name": "chain_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Chain ID.",
              "example": 8453,
              "x-default": 8453
            }
          },
          {
            "name": "manager_address",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Manager address."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/RequestId"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "timestamp": {
                                "type": "number",
                                "description": "Unix seconds."
                              },
                              "position_usd_value": {
                                "type": "string",
                                "description": "USD string. Token principal plus unclaimed fees and rewards."
                              },
                              "fees_usd": {
                                "type": "string",
                                "description": "USD string of total fees on that day's snapshot."
                              },
                              "rewards": {
                                "type": "string",
                                "description": "USD string of rewards earned through that day. 0 when the position has no rewards."
                              },
                              "apr": {
                                "type": "string",
                                "description": "Yearly in-range fee APR percent string for that day. 0 when the figure is missing."
                              }
                            },
                            "required": [
                              "timestamp",
                              "position_usd_value",
                              "fees_usd",
                              "rewards",
                              "apr"
                            ]
                          }
                        }
                      },
                      "required": [
                        "data"
                      ]
                    }
                  ]
                },
                "example": {
                  "data": [
                    {
                      "timestamp": 1717200000,
                      "position_usd_value": "3500.00",
                      "fees_usd": "80.00",
                      "rewards": "40.00",
                      "apr": "20.00"
                    }
                  ],
                  "request_id": "req_..."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-mint": {
          "href": "/api-reference/aerodrome-v3/snapshots",
          "metadata": {
            "sidebarTitle": "Get Aerodrome V3 Historical Performance"
          }
        }
      }
    },
    "/v1/positions/aerodromev3/summary": {
      "get": {
        "tags": [
          "Aerodrome V3"
        ],
        "operationId": "get_v1_positions_aerodromev3_summary",
        "summary": "Get Aerodrome V3 Summary",
        "description": "Wallet-level counts only \u2014 active vs. inactive Slipstream CL positions on Base.\n\n**Credits:** 1 per successful call.",
        "parameters": [
          {
            "name": "wallet",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Wallet address.",
              "example": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495",
              "x-default": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/RequestId"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "type": "object",
                          "properties": {
                            "total": {
                              "type": "number"
                            },
                            "total_active": {
                              "type": "number"
                            },
                            "total_inactive": {
                              "type": "number"
                            }
                          },
                          "required": [
                            "total",
                            "total_active",
                            "total_inactive"
                          ]
                        }
                      },
                      "required": [
                        "data"
                      ]
                    }
                  ]
                },
                "example": {
                  "data": {
                    "total": 5,
                    "total_active": 3,
                    "total_inactive": 2
                  },
                  "request_id": "req_..."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-mint": {
          "href": "/api-reference/aerodrome-v3/summary",
          "metadata": {
            "sidebarTitle": "Get Aerodrome V3 Summary"
          }
        }
      }
    },
    "/v1/positions/aerodromev3/{id}/yield": {
      "get": {
        "tags": [
          "Aerodrome V3"
        ],
        "operationId": "get_v1_positions_aerodromev3_id_yield",
        "summary": "Get Aerodrome V3 Position Yield",
        "description": "Fee and AERO reward accrual. projected_yield_apr and estimated_total_yield match the position page. earned_apr_percentage is historical earned APR and stays non-zero out of range. unclaimed_fees is Pending Fees. unclaimed_rewards is Pending Rewards.\n\n**Credits:** 8 per successful call.\n\nThese queries have their own credit cost.\n\n| Query | Credits |\n| --- | --- |\n| `status=inactive` | 4 |",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Token ID.",
              "example": "1",
              "x-default": "1"
            }
          },
          {
            "name": "chain_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Chain ID.",
              "example": 8453,
              "x-default": 8453
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "inactive"
              ],
              "description": "Omit for active positions. Set to `inactive` for closed positions. Default: active."
            }
          },
          {
            "name": "manager_address",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Manager address."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/RequestId"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "type": "object",
                          "properties": {
                            "token_id": {
                              "type": "string"
                            },
                            "chain_id": {
                              "type": "integer"
                            },
                            "earned_apr_percentage": {
                              "type": "object",
                              "properties": {
                                "yield": {
                                  "type": "string",
                                  "description": "Percent string for that component."
                                },
                                "fees": {
                                  "type": "string",
                                  "description": "Percent string for that component."
                                },
                                "rewards": {
                                  "type": "string",
                                  "description": "Percent string for that component."
                                }
                              },
                              "required": [
                                "yield",
                                "fees",
                                "rewards"
                              ],
                              "description": "Simple APR percent strings, not compounded. Each figure is value \u00d7 365 / days / time-weighted capital. Days are at least 1 hour."
                            },
                            "projected_yield_apr": {
                              "type": "string",
                              "description": "Yearly in-range APR percent string. 0 when the position is out of range or closed."
                            },
                            "estimated_total_yield": {
                              "type": "object",
                              "properties": {
                                "daily": {
                                  "type": "string"
                                },
                                "weekly": {
                                  "type": "string"
                                },
                                "monthly": {
                                  "type": "string"
                                },
                                "yearly": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "daily",
                                "weekly",
                                "monthly",
                                "yearly"
                              ],
                              "description": "USD strings. Observed average daily fees and rewards, scaled to a day, week, month, and year."
                            },
                            "average_fees_usd_value": {
                              "type": "object",
                              "properties": {
                                "daily": {
                                  "type": "object",
                                  "properties": {
                                    "amount0": {
                                      "type": "string",
                                      "description": "Token amount as a decimal string."
                                    },
                                    "amount1": {
                                      "type": "string",
                                      "description": "Token amount as a decimal string."
                                    },
                                    "usdValue0": {
                                      "type": "string",
                                      "description": "USD value of token0 as a decimal string."
                                    },
                                    "usdValue1": {
                                      "type": "string",
                                      "description": "USD value of token1 as a decimal string."
                                    },
                                    "totalUsdValue": {
                                      "type": "string",
                                      "description": "USD total as a decimal string."
                                    }
                                  },
                                  "required": [
                                    "amount0",
                                    "amount1",
                                    "usdValue0",
                                    "usdValue1",
                                    "totalUsdValue"
                                  ]
                                },
                                "hourly": {
                                  "type": "object",
                                  "properties": {
                                    "amount0": {
                                      "type": "string",
                                      "description": "Token amount as a decimal string."
                                    },
                                    "amount1": {
                                      "type": "string",
                                      "description": "Token amount as a decimal string."
                                    },
                                    "usdValue0": {
                                      "type": "string",
                                      "description": "USD value of token0 as a decimal string."
                                    },
                                    "usdValue1": {
                                      "type": "string",
                                      "description": "USD value of token1 as a decimal string."
                                    },
                                    "totalUsdValue": {
                                      "type": "string",
                                      "description": "USD total as a decimal string."
                                    }
                                  },
                                  "required": [
                                    "amount0",
                                    "amount1",
                                    "usdValue0",
                                    "usdValue1",
                                    "totalUsdValue"
                                  ]
                                },
                                "weekly": {
                                  "type": "object",
                                  "properties": {
                                    "amount0": {
                                      "type": "string",
                                      "description": "Token amount as a decimal string."
                                    },
                                    "amount1": {
                                      "type": "string",
                                      "description": "Token amount as a decimal string."
                                    },
                                    "usdValue0": {
                                      "type": "string",
                                      "description": "USD value of token0 as a decimal string."
                                    },
                                    "usdValue1": {
                                      "type": "string",
                                      "description": "USD value of token1 as a decimal string."
                                    },
                                    "totalUsdValue": {
                                      "type": "string",
                                      "description": "USD total as a decimal string."
                                    }
                                  },
                                  "required": [
                                    "amount0",
                                    "amount1",
                                    "usdValue0",
                                    "usdValue1",
                                    "totalUsdValue"
                                  ]
                                },
                                "monthly": {
                                  "type": "object",
                                  "properties": {
                                    "amount0": {
                                      "type": "string",
                                      "description": "Token amount as a decimal string."
                                    },
                                    "amount1": {
                                      "type": "string",
                                      "description": "Token amount as a decimal string."
                                    },
                                    "usdValue0": {
                                      "type": "string",
                                      "description": "USD value of token0 as a decimal string."
                                    },
                                    "usdValue1": {
                                      "type": "string",
                                      "description": "USD value of token1 as a decimal string."
                                    },
                                    "totalUsdValue": {
                                      "type": "string",
                                      "description": "USD total as a decimal string."
                                    }
                                  },
                                  "required": [
                                    "amount0",
                                    "amount1",
                                    "usdValue0",
                                    "usdValue1",
                                    "totalUsdValue"
                                  ]
                                },
                                "yearly": {
                                  "type": "object",
                                  "properties": {
                                    "amount0": {
                                      "type": "string",
                                      "description": "Token amount as a decimal string."
                                    },
                                    "amount1": {
                                      "type": "string",
                                      "description": "Token amount as a decimal string."
                                    },
                                    "usdValue0": {
                                      "type": "string",
                                      "description": "USD value of token0 as a decimal string."
                                    },
                                    "usdValue1": {
                                      "type": "string",
                                      "description": "USD value of token1 as a decimal string."
                                    },
                                    "totalUsdValue": {
                                      "type": "string",
                                      "description": "USD total as a decimal string."
                                    }
                                  },
                                  "required": [
                                    "amount0",
                                    "amount1",
                                    "usdValue0",
                                    "usdValue1",
                                    "totalUsdValue"
                                  ]
                                }
                              },
                              "required": [
                                "daily",
                                "hourly",
                                "weekly",
                                "monthly",
                                "yearly"
                              ],
                              "description": "Observed fee token amounts and USD value per hour, day, week, month, and year."
                            },
                            "average_rewards_usd_value": {
                              "type": "object",
                              "properties": {
                                "hourly": {
                                  "type": "string"
                                },
                                "daily": {
                                  "type": "string"
                                },
                                "weekly": {
                                  "type": "string"
                                },
                                "monthly": {
                                  "type": "string"
                                },
                                "yearly": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "hourly",
                                "daily",
                                "weekly",
                                "monthly",
                                "yearly"
                              ],
                              "description": "Observed reward USD value per hour, day, week, month, and year."
                            },
                            "total_fees": {
                              "type": "object",
                              "properties": {
                                "amount0": {
                                  "type": "string",
                                  "description": "Token amount as a decimal string."
                                },
                                "amount1": {
                                  "type": "string",
                                  "description": "Token amount as a decimal string."
                                },
                                "usdValue0": {
                                  "type": "string",
                                  "description": "USD value of token0 as a decimal string."
                                },
                                "usdValue1": {
                                  "type": "string",
                                  "description": "USD value of token1 as a decimal string."
                                },
                                "totalUsdValue": {
                                  "type": "string",
                                  "description": "USD total as a decimal string."
                                }
                              },
                              "required": [
                                "amount0",
                                "amount1",
                                "usdValue0",
                                "usdValue1",
                                "totalUsdValue"
                              ],
                              "description": "Fee token amounts and USD value across collected, compounded, and uncollected fees."
                            },
                            "total_rewards": {
                              "type": "object",
                              "properties": {
                                "totalUsdValue": {
                                  "type": "string",
                                  "description": "USD total as a decimal string."
                                },
                                "totalTokenValue": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "totalUsdValue",
                                "totalTokenValue"
                              ],
                              "description": "Reward USD total and token total."
                            },
                            "total_yield": {
                              "type": "string",
                              "description": "USD string. Total fees plus total rewards."
                            },
                            "unclaimed_fees": {
                              "type": "object",
                              "properties": {
                                "amount0": {
                                  "type": "string",
                                  "description": "Token amount as a decimal string."
                                },
                                "amount1": {
                                  "type": "string",
                                  "description": "Token amount as a decimal string."
                                },
                                "usdValue0": {
                                  "type": "string",
                                  "description": "USD value of token0 as a decimal string."
                                },
                                "usdValue1": {
                                  "type": "string",
                                  "description": "USD value of token1 as a decimal string."
                                },
                                "totalUsdValue": {
                                  "type": "string",
                                  "description": "USD total as a decimal string."
                                }
                              },
                              "required": [
                                "amount0",
                                "amount1",
                                "usdValue0",
                                "usdValue1",
                                "totalUsdValue"
                              ],
                              "description": "Uncollected fee token amounts, valued at the current price."
                            },
                            "claimed_fees": {
                              "type": "object",
                              "properties": {
                                "amount0": {
                                  "type": "string",
                                  "description": "Token amount as a decimal string."
                                },
                                "amount1": {
                                  "type": "string",
                                  "description": "Token amount as a decimal string."
                                },
                                "usdValue0": {
                                  "type": "string",
                                  "description": "USD value of token0 as a decimal string."
                                },
                                "usdValue1": {
                                  "type": "string",
                                  "description": "USD value of token1 as a decimal string."
                                },
                                "totalUsdValue": {
                                  "type": "string",
                                  "description": "USD total as a decimal string."
                                }
                              },
                              "required": [
                                "amount0",
                                "amount1",
                                "usdValue0",
                                "usdValue1",
                                "totalUsdValue"
                              ],
                              "description": "Collected fee token amounts, valued at the collection price."
                            },
                            "unclaimed_rewards": {
                              "type": "object",
                              "properties": {
                                "rewards": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string"
                                      },
                                      "label": {
                                        "type": "string"
                                      },
                                      "valueInToken": {
                                        "type": "string"
                                      },
                                      "rewardToken": {
                                        "type": "object",
                                        "properties": {
                                          "symbol": {
                                            "type": "string"
                                          },
                                          "decimals": {
                                            "type": "integer"
                                          },
                                          "name": {
                                            "type": "string"
                                          },
                                          "currentPriceUSD": {
                                            "type": "string"
                                          }
                                        },
                                        "required": [
                                          "symbol",
                                          "decimals",
                                          "name",
                                          "currentPriceUSD"
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type",
                                      "label",
                                      "valueInToken",
                                      "rewardToken"
                                    ]
                                  }
                                },
                                "totalUsdValue": {
                                  "type": "string",
                                  "description": "USD total as a decimal string."
                                }
                              },
                              "required": [
                                "rewards",
                                "totalUsdValue"
                              ],
                              "description": "Pending reward tokens and their USD total."
                            },
                            "claimed_rewards": {
                              "type": "object",
                              "properties": {
                                "rewards": {
                                  "type": "array",
                                  "items": {
                                    "type": "object"
                                  }
                                },
                                "totalUsdValue": {
                                  "type": "string",
                                  "description": "USD total as a decimal string."
                                },
                                "totalTokenValue": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "rewards",
                                "totalUsdValue",
                                "totalTokenValue"
                              ],
                              "description": "Collected reward tokens, with USD and token totals."
                            },
                            "is_closed": {
                              "type": "boolean",
                              "description": "True when the position liquidity is zero."
                            }
                          },
                          "required": [
                            "token_id",
                            "chain_id",
                            "earned_apr_percentage",
                            "projected_yield_apr",
                            "estimated_total_yield",
                            "average_fees_usd_value",
                            "average_rewards_usd_value",
                            "total_fees",
                            "total_rewards",
                            "total_yield",
                            "unclaimed_fees",
                            "claimed_fees",
                            "unclaimed_rewards",
                            "claimed_rewards",
                            "is_closed"
                          ]
                        }
                      },
                      "required": [
                        "data"
                      ]
                    }
                  ]
                },
                "example": {
                  "data": {
                    "token_id": "1",
                    "chain_id": 8453,
                    "earned_apr_percentage": {
                      "yield": "35.00",
                      "fees": "20.00",
                      "rewards": "15.00"
                    },
                    "projected_yield_apr": "35.00",
                    "estimated_total_yield": {
                      "daily": "3.36",
                      "weekly": "23.49",
                      "monthly": "100.68",
                      "yearly": "1226.40"
                    },
                    "average_fees_usd_value": {
                      "daily": {
                        "amount0": "0.10",
                        "amount1": "0.20",
                        "usdValue0": "0.10",
                        "usdValue1": "12.00",
                        "totalUsdValue": "12.10"
                      },
                      "hourly": {
                        "amount0": "0.10",
                        "amount1": "0.20",
                        "usdValue0": "0.10",
                        "usdValue1": "12.00",
                        "totalUsdValue": "12.10"
                      },
                      "weekly": {
                        "amount0": "0.10",
                        "amount1": "0.20",
                        "usdValue0": "0.10",
                        "usdValue1": "12.00",
                        "totalUsdValue": "12.10"
                      },
                      "monthly": {
                        "amount0": "0.10",
                        "amount1": "0.20",
                        "usdValue0": "0.10",
                        "usdValue1": "12.00",
                        "totalUsdValue": "12.10"
                      },
                      "yearly": {
                        "amount0": "0.10",
                        "amount1": "0.20",
                        "usdValue0": "0.10",
                        "usdValue1": "12.00",
                        "totalUsdValue": "12.10"
                      }
                    },
                    "average_rewards_usd_value": {
                      "hourly": "0.01",
                      "daily": "0.11",
                      "weekly": "0.77",
                      "monthly": "3.29",
                      "yearly": "40.00"
                    },
                    "total_fees": {
                      "amount0": "0.10",
                      "amount1": "0.20",
                      "usdValue0": "0.10",
                      "usdValue1": "12.00",
                      "totalUsdValue": "12.10"
                    },
                    "total_rewards": {
                      "totalUsdValue": "40.00",
                      "totalTokenValue": "47.5"
                    },
                    "total_yield": "120.00",
                    "unclaimed_fees": {
                      "amount0": "0.10",
                      "amount1": "0.20",
                      "usdValue0": "0.10",
                      "usdValue1": "12.00",
                      "totalUsdValue": "12.10"
                    },
                    "claimed_fees": {
                      "amount0": "0.10",
                      "amount1": "0.20",
                      "usdValue0": "0.10",
                      "usdValue1": "12.00",
                      "totalUsdValue": "12.10"
                    },
                    "unclaimed_rewards": {
                      "rewards": [
                        {
                          "type": "aero",
                          "label": "AERO",
                          "valueInToken": "14.5",
                          "rewardToken": {
                            "symbol": "AERO",
                            "decimals": 18,
                            "name": "Aerodrome",
                            "currentPriceUSD": "0.83"
                          }
                        }
                      ],
                      "totalUsdValue": "12.00"
                    },
                    "claimed_rewards": {
                      "rewards": [],
                      "totalUsdValue": "28.00",
                      "totalTokenValue": "33.0"
                    },
                    "is_closed": false
                  },
                  "request_id": "req_..."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-mint": {
          "href": "/api-reference/aerodrome-v3/yield",
          "metadata": {
            "sidebarTitle": "Get Aerodrome V3 Position Yield"
          }
        }
      }
    },
    "/v1/lending/kamino/batch": {
      "post": {
        "tags": [
          "Kamino"
        ],
        "operationId": "post_v1_lending_kamino_batch",
        "summary": "Batch Get Kamino Positions",
        "description": "Same as the bundle endpoint but accepts multiple Solana wallets in one POST (max 5 \u2014 Kamino checks 38+ isolated markets per wallet). Returns the same shape per obligation across all wallets.\n\n**Credits:** 15 per matching obligation when fewer than 100 match; 12 per obligation at 100 or more. Billing uses the matching count before pagination.",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Page. Default: 1.",
              "default": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Maximum 25. Default: 10.",
              "default": 10,
              "maximum": 25
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/RequestId"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "chain_id": {
                                "type": "integer"
                              },
                              "wallet": {
                                "type": "string"
                              },
                              "target_health_factor": {
                                "type": "string",
                                "description": "Health factor used for safe-borrow and safe-withdraw figures. Default 1.5."
                              },
                              "position": {
                                "type": "object",
                                "properties": {
                                  "marketAddress": {
                                    "type": "string"
                                  },
                                  "obligationAddress": {
                                    "type": "string"
                                  },
                                  "healthFactor": {
                                    "type": "string",
                                    "description": "String. Aave divides liquidation-threshold-weighted collateral by debt. Morpho divides collateral \u00d7 oracle price \u00d7 LLTV by debt, to four decimals. Kamino divides liquidation LTV by LTV. MAX or \u221e when there is no debt."
                                  },
                                  "netWorthUSD": {
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "marketAddress",
                                  "obligationAddress",
                                  "healthFactor",
                                  "netWorthUSD"
                                ]
                              },
                              "calculations": {
                                "type": "object",
                                "properties": {
                                  "netAPY": {
                                    "type": "string"
                                  },
                                  "netDailyInterestUSD": {
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "netAPY",
                                  "netDailyInterestUSD"
                                ]
                              }
                            },
                            "required": [
                              "chain_id",
                              "wallet",
                              "target_health_factor",
                              "position",
                              "calculations"
                            ]
                          }
                        },
                        "pagination": {
                          "$ref": "#/components/schemas/Pagination"
                        }
                      },
                      "required": [
                        "data",
                        "pagination"
                      ]
                    }
                  ]
                },
                "example": {
                  "data": [
                    {
                      "chain_id": 101,
                      "wallet": "7FvUzcCoB4Eeykow6PdR3dZLL8WHvqkNr8bKgUKzaiM8",
                      "target_health_factor": "1.50",
                      "position": {
                        "marketAddress": "C7h9YnjPrDvNhe2cWWDhCu4CZEB1XTTH4RzjmsHuengV",
                        "obligationAddress": "HwxMtLM5cezFSQLe7h9Y3REUhVCZkgvHkCdXTBLxPqmZ",
                        "healthFactor": "2.10",
                        "netWorthUSD": "600.00"
                      },
                      "calculations": {
                        "netAPY": "7.30",
                        "netDailyInterestUSD": "0.12"
                      }
                    }
                  ],
                  "pagination": {
                    "page": 1,
                    "limit": 10,
                    "total": 1,
                    "next_page": null,
                    "prev_page": null
                  },
                  "request_id": "req_..."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          },
          "502": {
            "$ref": "#/components/responses/BadGateway"
          },
          "504": {
            "$ref": "#/components/responses/GatewayTimeout"
          }
        },
        "x-mint": {
          "href": "/api-reference/kamino/batch",
          "metadata": {
            "sidebarTitle": "Batch Get Kamino Positions"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "wallets": {
                    "type": "array",
                    "description": "Solana wallets (JSON array in the request body).",
                    "items": {
                      "type": "string"
                    },
                    "example": [
                      "7FvUzcCoB4Eeykow6PdR3dZLL8WHvqkNr8bKgUKzaiM8"
                    ],
                    "x-default": [
                      "7FvUzcCoB4Eeykow6PdR3dZLL8WHvqkNr8bKgUKzaiM8"
                    ]
                  }
                },
                "required": [
                  "wallets"
                ]
              },
              "example": {
                "wallets": [
                  "7FvUzcCoB4Eeykow6PdR3dZLL8WHvqkNr8bKgUKzaiM8"
                ]
              }
            }
          }
        }
      }
    },
    "/v1/lending/kamino": {
      "get": {
        "tags": [
          "Kamino"
        ],
        "operationId": "get_v1_lending_kamino",
        "summary": "Get Kamino Bundle",
        "description": "All active Kamino obligations with full position data and risk/yield calculations \u2014 health factor, LTV, interest rates, APY projections. One entry per active market obligation.\n\n**Credits:** 15 per matching obligation, before pagination.",
        "parameters": [
          {
            "name": "wallet",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Solana wallet.",
              "example": "7FvUzcCoB4Eeykow6PdR3dZLL8WHvqkNr8bKgUKzaiM8",
              "x-default": "7FvUzcCoB4Eeykow6PdR3dZLL8WHvqkNr8bKgUKzaiM8"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Page. Default: 1.",
              "default": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Maximum 25. Default: 10.",
              "default": 10,
              "maximum": 25
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/RequestId"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "chain_id": {
                                "type": "integer"
                              },
                              "wallet": {
                                "type": "string"
                              },
                              "target_health_factor": {
                                "type": "string",
                                "description": "Health factor used for safe-borrow and safe-withdraw figures. Default 1.5."
                              },
                              "position": {
                                "type": "object",
                                "properties": {
                                  "marketAddress": {
                                    "type": "string"
                                  },
                                  "marketName": {
                                    "type": "string"
                                  },
                                  "obligationAddress": {
                                    "type": "string"
                                  },
                                  "healthFactor": {
                                    "type": "string",
                                    "description": "String. Aave divides liquidation-threshold-weighted collateral by debt. Morpho divides collateral \u00d7 oracle price \u00d7 LLTV by debt, to four decimals. Kamino divides liquidation LTV by LTV. MAX or \u221e when there is no debt."
                                  },
                                  "totalCollateralUSD": {
                                    "type": "string"
                                  },
                                  "totalDebtUSD": {
                                    "type": "string"
                                  },
                                  "netWorthUSD": {
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "marketAddress",
                                  "marketName",
                                  "obligationAddress",
                                  "healthFactor",
                                  "totalCollateralUSD",
                                  "totalDebtUSD",
                                  "netWorthUSD"
                                ]
                              },
                              "calculations": {
                                "type": "object",
                                "properties": {
                                  "netAPY": {
                                    "type": "string"
                                  },
                                  "netDailyInterestUSD": {
                                    "type": "string"
                                  },
                                  "weightedSupplyAPY": {
                                    "type": "string"
                                  },
                                  "weightedBorrowAPY": {
                                    "type": "string"
                                  },
                                  "healthFactor": {
                                    "type": "string",
                                    "description": "String. Aave divides liquidation-threshold-weighted collateral by debt. Morpho divides collateral \u00d7 oracle price \u00d7 LLTV by debt, to four decimals. Kamino divides liquidation LTV by LTV. MAX or \u221e when there is no debt."
                                  },
                                  "projectedEarnings": {
                                    "type": "object",
                                    "properties": {
                                      "daily": {
                                        "type": "string"
                                      },
                                      "weekly": {
                                        "type": "string"
                                      },
                                      "monthly": {
                                        "type": "string"
                                      },
                                      "yearly": {
                                        "type": "string"
                                      }
                                    },
                                    "required": [
                                      "daily",
                                      "weekly",
                                      "monthly",
                                      "yearly"
                                    ]
                                  }
                                },
                                "required": [
                                  "netAPY",
                                  "netDailyInterestUSD",
                                  "weightedSupplyAPY",
                                  "weightedBorrowAPY",
                                  "healthFactor",
                                  "projectedEarnings"
                                ]
                              }
                            },
                            "required": [
                              "chain_id",
                              "wallet",
                              "target_health_factor",
                              "position",
                              "calculations"
                            ]
                          }
                        },
                        "pagination": {
                          "$ref": "#/components/schemas/Pagination"
                        }
                      },
                      "required": [
                        "data",
                        "pagination"
                      ]
                    }
                  ]
                },
                "example": {
                  "data": [
                    {
                      "chain_id": 101,
                      "wallet": "7FvUzcCoB4Eeykow6PdR3dZLL8WHvqkNr8bKgUKzaiM8",
                      "target_health_factor": "1.50",
                      "position": {
                        "marketAddress": "C7h9YnjPrDvNhe2cWWDhCu4CZEB1XTTH4RzjmsHuengV",
                        "marketName": "Main",
                        "obligationAddress": "HwxMtLM5cezFSQLe7h9Y3REUhVCZkgvHkCdXTBLxPqmZ",
                        "healthFactor": "2.10",
                        "totalCollateralUSD": "1000.00",
                        "totalDebtUSD": "400.00",
                        "netWorthUSD": "600.00"
                      },
                      "calculations": {
                        "netAPY": "7.30",
                        "netDailyInterestUSD": "0.12",
                        "weightedSupplyAPY": "7.30",
                        "weightedBorrowAPY": "7.30",
                        "healthFactor": "2.10",
                        "projectedEarnings": {
                          "daily": "0.12",
                          "weekly": "0.84",
                          "monthly": "3.60",
                          "yearly": "43.80"
                        }
                      }
                    }
                  ],
                  "pagination": {
                    "page": 1,
                    "limit": 10,
                    "total": 1,
                    "next_page": null,
                    "prev_page": null
                  },
                  "request_id": "req_..."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          },
          "502": {
            "$ref": "#/components/responses/BadGateway"
          }
        },
        "x-mint": {
          "href": "/api-reference/kamino/bundle",
          "metadata": {
            "sidebarTitle": "Get Kamino Bundle"
          }
        }
      }
    },
    "/v1/lending/kamino/position/{obligation_address}/events": {
      "get": {
        "tags": [
          "Kamino"
        ],
        "operationId": "get_v1_lending_kamino_position_obligation_address_events",
        "summary": "Get Obligation Events",
        "description": "Raw obligation history from Kamino's analytics: blockTimestamp, market and obligation addresses, and a nested snapshot (collateral, debt, net worth, health factor). Not a transaction list, and not the mapped snapshots body. Requires market_address from the list or bundle endpoint.\n\n**Credits:** 1 per successful call.",
        "parameters": [
          {
            "name": "obligation_address",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Obligation address.",
              "example": "HwxMtLM5cezFSQLe7h9Y3REUhVCZkgvHkCdXTBLxPqmZ",
              "x-default": "HwxMtLM5cezFSQLe7h9Y3REUhVCZkgvHkCdXTBLxPqmZ"
            }
          },
          {
            "name": "wallet",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Solana wallet.",
              "example": "7FvUzcCoB4Eeykow6PdR3dZLL8WHvqkNr8bKgUKzaiM8",
              "x-default": "7FvUzcCoB4Eeykow6PdR3dZLL8WHvqkNr8bKgUKzaiM8"
            }
          },
          {
            "name": "market_address",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Kamino market address.",
              "example": "C7h9YnjPrDvNhe2cWWDhCu4CZEB1XTTH4RzjmsHuengV",
              "x-default": "C7h9YnjPrDvNhe2cWWDhCu4CZEB1XTTH4RzjmsHuengV"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Page. Default: 1.",
              "default": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Maximum 25. Default: 10.",
              "default": 10,
              "maximum": 25
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/RequestId"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "blockTimestamp": {
                                "type": "number"
                              },
                              "marketAddress": {
                                "type": "string"
                              },
                              "obligationAddress": {
                                "type": "string"
                              },
                              "snapshot": {
                                "type": "object",
                                "properties": {
                                  "totalCollateralUSD": {
                                    "type": "string"
                                  },
                                  "totalDebtUSD": {
                                    "type": "string"
                                  },
                                  "netWorthUSD": {
                                    "type": "string"
                                  },
                                  "healthFactor": {
                                    "type": "string",
                                    "description": "String. Aave divides liquidation-threshold-weighted collateral by debt. Morpho divides collateral \u00d7 oracle price \u00d7 LLTV by debt, to four decimals. Kamino divides liquidation LTV by LTV. MAX or \u221e when there is no debt."
                                  }
                                },
                                "required": [
                                  "totalCollateralUSD",
                                  "totalDebtUSD",
                                  "netWorthUSD",
                                  "healthFactor"
                                ]
                              }
                            },
                            "required": [
                              "blockTimestamp",
                              "marketAddress",
                              "obligationAddress",
                              "snapshot"
                            ]
                          }
                        },
                        "pagination": {
                          "$ref": "#/components/schemas/Pagination"
                        }
                      },
                      "required": [
                        "data",
                        "pagination"
                      ]
                    }
                  ]
                },
                "example": {
                  "data": [
                    {
                      "blockTimestamp": 1725148800,
                      "marketAddress": "C7h9YnjPrDvNhe2cWWDhCu4CZEB1XTTH4RzjmsHuengV",
                      "obligationAddress": "HwxMtLM5cezFSQLe7h9Y3REUhVCZkgvHkCdXTBLxPqmZ",
                      "snapshot": {
                        "totalCollateralUSD": "1000.00",
                        "totalDebtUSD": "400.00",
                        "netWorthUSD": "600.00",
                        "healthFactor": "2.10"
                      }
                    }
                  ],
                  "pagination": {
                    "page": 1,
                    "limit": 10,
                    "total": 1,
                    "next_page": null,
                    "prev_page": null
                  },
                  "request_id": "req_..."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          },
          "502": {
            "$ref": "#/components/responses/BadGateway"
          }
        },
        "x-mint": {
          "href": "/api-reference/kamino/events",
          "metadata": {
            "sidebarTitle": "Get Obligation Events"
          }
        }
      }
    },
    "/v1/lending/kamino/position": {
      "get": {
        "tags": [
          "Kamino"
        ],
        "operationId": "get_v1_lending_kamino_position",
        "summary": "List Kamino Positions",
        "description": "All active Kamino obligations for a wallet. Market name, market address, and obligation address are on position, with collateral and debt. Same item shape as the bundle, including calculations. Use it to discover obligation addresses before calling risk, yield, or events.\n\n**Credits:** 3 per matching obligation, before pagination.",
        "parameters": [
          {
            "name": "wallet",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Solana wallet.",
              "example": "7FvUzcCoB4Eeykow6PdR3dZLL8WHvqkNr8bKgUKzaiM8",
              "x-default": "7FvUzcCoB4Eeykow6PdR3dZLL8WHvqkNr8bKgUKzaiM8"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Page. Default: 1.",
              "default": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Maximum 25. Default: 10.",
              "default": 10,
              "maximum": 25
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/RequestId"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "chain_id": {
                                "type": "integer"
                              },
                              "wallet": {
                                "type": "string"
                              },
                              "target_health_factor": {
                                "type": "string",
                                "description": "Health factor used for safe-borrow and safe-withdraw figures. Default 1.5."
                              },
                              "position": {
                                "type": "object",
                                "properties": {
                                  "marketAddress": {
                                    "type": "string"
                                  },
                                  "marketName": {
                                    "type": "string"
                                  },
                                  "obligationAddress": {
                                    "type": "string"
                                  },
                                  "healthFactor": {
                                    "type": "string",
                                    "description": "String. Aave divides liquidation-threshold-weighted collateral by debt. Morpho divides collateral \u00d7 oracle price \u00d7 LLTV by debt, to four decimals. Kamino divides liquidation LTV by LTV. MAX or \u221e when there is no debt."
                                  },
                                  "totalCollateralUSD": {
                                    "type": "string"
                                  },
                                  "totalDebtUSD": {
                                    "type": "string"
                                  },
                                  "availableBorrowsUSD": {
                                    "type": "string"
                                  },
                                  "currentLiquidationThreshold": {
                                    "type": "string"
                                  },
                                  "ltv": {
                                    "type": "string"
                                  },
                                  "netWorthUSD": {
                                    "type": "string"
                                  },
                                  "suppliedAssets": {
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "tokenAddress": {
                                          "type": "string"
                                        },
                                        "symbol": {
                                          "type": "string"
                                        },
                                        "name": {
                                          "type": "string"
                                        },
                                        "decimals": {
                                          "type": "integer"
                                        },
                                        "logoURI": {
                                          "type": "string",
                                          "nullable": true,
                                          "description": "Token logo URL, or null when none is available."
                                        },
                                        "amountSupplied": {
                                          "type": "string"
                                        },
                                        "currentPriceUSD": {
                                          "type": "string"
                                        },
                                        "amountSuppliedUSD": {
                                          "type": "string"
                                        },
                                        "supplyAPY": {
                                          "type": "string"
                                        },
                                        "ltv": {
                                          "type": "string"
                                        },
                                        "liquidationThreshold": {
                                          "type": "string"
                                        }
                                      },
                                      "required": [
                                        "tokenAddress",
                                        "symbol",
                                        "name",
                                        "decimals",
                                        "logoURI",
                                        "amountSupplied",
                                        "currentPriceUSD",
                                        "amountSuppliedUSD",
                                        "supplyAPY",
                                        "ltv",
                                        "liquidationThreshold"
                                      ]
                                    }
                                  },
                                  "borrowedAssets": {
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "tokenAddress": {
                                          "type": "string"
                                        },
                                        "symbol": {
                                          "type": "string"
                                        },
                                        "name": {
                                          "type": "string"
                                        },
                                        "decimals": {
                                          "type": "integer"
                                        },
                                        "logoURI": {
                                          "type": "string",
                                          "nullable": true,
                                          "description": "Token logo URL, or null when none is available."
                                        },
                                        "amountBorrowed": {
                                          "type": "string"
                                        },
                                        "currentPriceUSD": {
                                          "type": "string"
                                        },
                                        "amountBorrowedUSD": {
                                          "type": "string"
                                        },
                                        "borrowAPY": {
                                          "type": "string"
                                        }
                                      },
                                      "required": [
                                        "tokenAddress",
                                        "symbol",
                                        "name",
                                        "decimals",
                                        "logoURI",
                                        "amountBorrowed",
                                        "currentPriceUSD",
                                        "amountBorrowedUSD",
                                        "borrowAPY"
                                      ]
                                    }
                                  },
                                  "riskMetrics": {
                                    "type": "object",
                                    "properties": {
                                      "maxBorrowCapacityUSD": {
                                        "type": "string"
                                      },
                                      "borrowUtilization": {
                                        "type": "string"
                                      },
                                      "liquidationThreshold": {
                                        "type": "string"
                                      },
                                      "currentLtv": {
                                        "type": "string"
                                      }
                                    },
                                    "required": [
                                      "maxBorrowCapacityUSD",
                                      "borrowUtilization",
                                      "liquidationThreshold",
                                      "currentLtv"
                                    ]
                                  }
                                },
                                "required": [
                                  "marketAddress",
                                  "marketName",
                                  "obligationAddress",
                                  "healthFactor",
                                  "totalCollateralUSD",
                                  "totalDebtUSD",
                                  "availableBorrowsUSD",
                                  "currentLiquidationThreshold",
                                  "ltv",
                                  "netWorthUSD",
                                  "suppliedAssets",
                                  "borrowedAssets",
                                  "riskMetrics"
                                ]
                              },
                              "calculations": {
                                "type": "object",
                                "properties": {
                                  "totalSuppliedUSD": {
                                    "type": "string"
                                  },
                                  "totalBorrowedUSD": {
                                    "type": "string"
                                  },
                                  "netPositionUSD": {
                                    "type": "string"
                                  },
                                  "healthFactor": {
                                    "type": "string",
                                    "description": "String. Aave divides liquidation-threshold-weighted collateral by debt. Morpho divides collateral \u00d7 oracle price \u00d7 LLTV by debt, to four decimals. Kamino divides liquidation LTV by LTV. MAX or \u221e when there is no debt."
                                  },
                                  "dailySupplyInterestUSD": {
                                    "type": "string"
                                  },
                                  "dailyBorrowInterestUSD": {
                                    "type": "string"
                                  },
                                  "netDailyInterestUSD": {
                                    "type": "string"
                                  },
                                  "safeBorrowAmountUSD": {
                                    "type": "string"
                                  },
                                  "safeWithdrawAmountUSD": {
                                    "type": "string"
                                  },
                                  "availableBorrowsUSD": {
                                    "type": "string"
                                  },
                                  "currentLtvPercentage": {
                                    "type": "string"
                                  },
                                  "netAPY": {
                                    "type": "string"
                                  },
                                  "positionLeverage": {
                                    "type": "string"
                                  },
                                  "weightedSupplyAPY": {
                                    "type": "string"
                                  },
                                  "weightedBorrowAPY": {
                                    "type": "string"
                                  },
                                  "projectedEarnings": {
                                    "type": "object",
                                    "properties": {
                                      "daily": {
                                        "type": "string"
                                      },
                                      "weekly": {
                                        "type": "string"
                                      },
                                      "monthly": {
                                        "type": "string"
                                      },
                                      "yearly": {
                                        "type": "string"
                                      }
                                    },
                                    "required": [
                                      "daily",
                                      "weekly",
                                      "monthly",
                                      "yearly"
                                    ]
                                  },
                                  "riskMetrics": {
                                    "type": "object",
                                    "properties": {
                                      "maxBorrowCapacityUSD": {
                                        "type": "string"
                                      },
                                      "borrowUtilization": {
                                        "type": "string"
                                      },
                                      "liquidationThreshold": {
                                        "type": "string"
                                      }
                                    },
                                    "required": [
                                      "maxBorrowCapacityUSD",
                                      "borrowUtilization",
                                      "liquidationThreshold"
                                    ]
                                  }
                                },
                                "required": [
                                  "totalSuppliedUSD",
                                  "totalBorrowedUSD",
                                  "netPositionUSD",
                                  "healthFactor",
                                  "dailySupplyInterestUSD",
                                  "dailyBorrowInterestUSD",
                                  "netDailyInterestUSD",
                                  "safeBorrowAmountUSD",
                                  "safeWithdrawAmountUSD",
                                  "availableBorrowsUSD",
                                  "currentLtvPercentage",
                                  "netAPY",
                                  "positionLeverage",
                                  "weightedSupplyAPY",
                                  "weightedBorrowAPY",
                                  "projectedEarnings",
                                  "riskMetrics"
                                ]
                              }
                            },
                            "required": [
                              "chain_id",
                              "wallet",
                              "target_health_factor",
                              "position",
                              "calculations"
                            ]
                          }
                        },
                        "pagination": {
                          "$ref": "#/components/schemas/Pagination"
                        }
                      },
                      "required": [
                        "data",
                        "pagination"
                      ]
                    }
                  ]
                },
                "example": {
                  "data": [
                    {
                      "chain_id": 101,
                      "wallet": "7FvUzcCoB4Eeykow6PdR3dZLL8WHvqkNr8bKgUKzaiM8",
                      "target_health_factor": "1.50",
                      "position": {
                        "marketAddress": "C7h9YnjPrDvNhe2cWWDhCu4CZEB1XTTH4RzjmsHuengV",
                        "marketName": "Main",
                        "obligationAddress": "HwxMtLM5cezFSQLe7h9Y3REUhVCZkgvHkCdXTBLxPqmZ",
                        "healthFactor": "2.10",
                        "totalCollateralUSD": "1000.00",
                        "totalDebtUSD": "400.00",
                        "availableBorrowsUSD": "400.00",
                        "currentLiquidationThreshold": "80.00",
                        "ltv": "40.00",
                        "netWorthUSD": "600.00",
                        "suppliedAssets": [
                          {
                            "tokenAddress": "mint",
                            "symbol": "SOL",
                            "name": "Solana",
                            "decimals": 9,
                            "logoURI": null,
                            "amountSupplied": "5",
                            "currentPriceUSD": "200.00",
                            "amountSuppliedUSD": "1000.00",
                            "supplyAPY": "7.30",
                            "ltv": "75.00",
                            "liquidationThreshold": "80.00"
                          }
                        ],
                        "borrowedAssets": [
                          {
                            "tokenAddress": "mint",
                            "symbol": "USDC",
                            "name": "USD Coin",
                            "decimals": 6,
                            "logoURI": null,
                            "amountBorrowed": "400",
                            "currentPriceUSD": "1.00",
                            "amountBorrowedUSD": "400.00",
                            "borrowAPY": "7.30"
                          }
                        ],
                        "riskMetrics": {
                          "maxBorrowCapacityUSD": "800.00",
                          "borrowUtilization": "50.00",
                          "liquidationThreshold": "80.00",
                          "currentLtv": "40.00"
                        }
                      },
                      "calculations": {
                        "totalSuppliedUSD": "1000.00",
                        "totalBorrowedUSD": "400.00",
                        "netPositionUSD": "600.00",
                        "healthFactor": "2.10",
                        "dailySupplyInterestUSD": "0.20",
                        "dailyBorrowInterestUSD": "0.08",
                        "netDailyInterestUSD": "0.12",
                        "safeBorrowAmountUSD": "200.00",
                        "safeWithdrawAmountUSD": "500.00",
                        "availableBorrowsUSD": "400.00",
                        "currentLtvPercentage": "40.00",
                        "netAPY": "7.30",
                        "positionLeverage": "0.67",
                        "weightedSupplyAPY": "7.30",
                        "weightedBorrowAPY": "7.30",
                        "projectedEarnings": {
                          "daily": "0.12",
                          "weekly": "0.84",
                          "monthly": "3.60",
                          "yearly": "43.80"
                        },
                        "riskMetrics": {
                          "maxBorrowCapacityUSD": "800.00",
                          "borrowUtilization": "50.00",
                          "liquidationThreshold": "80.00"
                        }
                      }
                    }
                  ],
                  "pagination": {
                    "page": 1,
                    "limit": 10,
                    "total": 1,
                    "next_page": null,
                    "prev_page": null
                  },
                  "request_id": "req_..."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          },
          "502": {
            "$ref": "#/components/responses/BadGateway"
          }
        },
        "x-mint": {
          "href": "/api-reference/kamino/position",
          "metadata": {
            "sidebarTitle": "List Kamino Positions"
          }
        }
      }
    },
    "/v1/lending/kamino/position/{obligation_address}/risk": {
      "get": {
        "tags": [
          "Kamino"
        ],
        "operationId": "get_v1_lending_kamino_position_obligation_address_risk",
        "summary": "Get Obligation Risk",
        "description": "Health factor, LTV, and safe borrow/withdraw amounts for a single Kamino obligation. Requires market_address.\n\n**Credits:** 8 per successful call.",
        "parameters": [
          {
            "name": "obligation_address",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Obligation address.",
              "example": "HwxMtLM5cezFSQLe7h9Y3REUhVCZkgvHkCdXTBLxPqmZ",
              "x-default": "HwxMtLM5cezFSQLe7h9Y3REUhVCZkgvHkCdXTBLxPqmZ"
            }
          },
          {
            "name": "wallet",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Solana wallet.",
              "example": "7FvUzcCoB4Eeykow6PdR3dZLL8WHvqkNr8bKgUKzaiM8",
              "x-default": "7FvUzcCoB4Eeykow6PdR3dZLL8WHvqkNr8bKgUKzaiM8"
            }
          },
          {
            "name": "market_address",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Kamino market address.",
              "example": "C7h9YnjPrDvNhe2cWWDhCu4CZEB1XTTH4RzjmsHuengV",
              "x-default": "C7h9YnjPrDvNhe2cWWDhCu4CZEB1XTTH4RzjmsHuengV"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/RequestId"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "type": "object",
                          "properties": {
                            "chain_id": {
                              "type": "integer"
                            },
                            "wallet": {
                              "type": "string"
                            },
                            "market_address": {
                              "type": "string"
                            },
                            "obligation_address": {
                              "type": "string"
                            },
                            "health_factor": {
                              "type": "string",
                              "description": "String. Aave divides liquidation-threshold-weighted collateral by debt. Morpho divides collateral \u00d7 oracle price \u00d7 LLTV by debt, to four decimals. Kamino divides liquidation LTV by LTV. MAX or \u221e when there is no debt."
                            },
                            "target_health_factor": {
                              "type": "string",
                              "description": "Health factor used for safe-borrow and safe-withdraw figures. Default 1.5."
                            },
                            "current_ltv_percentage": {
                              "type": "string"
                            },
                            "safe_borrow_amount_usd": {
                              "type": "string"
                            },
                            "safe_withdraw_amount_usd": {
                              "type": "string"
                            },
                            "risk_metrics": {
                              "type": "object",
                              "properties": {
                                "maxBorrowCapacityUSD": {
                                  "type": "string"
                                },
                                "borrowUtilization": {
                                  "type": "string"
                                },
                                "liquidationThreshold": {
                                  "type": "string"
                                },
                                "currentLtv": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "maxBorrowCapacityUSD",
                                "borrowUtilization",
                                "liquidationThreshold",
                                "currentLtv"
                              ]
                            }
                          },
                          "required": [
                            "chain_id",
                            "wallet",
                            "market_address",
                            "obligation_address",
                            "health_factor",
                            "target_health_factor",
                            "current_ltv_percentage",
                            "safe_borrow_amount_usd",
                            "safe_withdraw_amount_usd",
                            "risk_metrics"
                          ]
                        }
                      },
                      "required": [
                        "data"
                      ]
                    }
                  ]
                },
                "example": {
                  "data": {
                    "chain_id": 101,
                    "wallet": "7FvUzcCoB4Eeykow6PdR3dZLL8WHvqkNr8bKgUKzaiM8",
                    "market_address": "C7h9YnjPrDvNhe2cWWDhCu4CZEB1XTTH4RzjmsHuengV",
                    "obligation_address": "HwxMtLM5cezFSQLe7h9Y3REUhVCZkgvHkCdXTBLxPqmZ",
                    "health_factor": "2.10",
                    "target_health_factor": "1.50",
                    "current_ltv_percentage": "40.00",
                    "safe_borrow_amount_usd": "200.00",
                    "safe_withdraw_amount_usd": "500.00",
                    "risk_metrics": {
                      "maxBorrowCapacityUSD": "800.00",
                      "borrowUtilization": "50.00",
                      "liquidationThreshold": "80.00",
                      "currentLtv": "40.00"
                    }
                  },
                  "request_id": "req_..."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          },
          "502": {
            "$ref": "#/components/responses/BadGateway"
          }
        },
        "x-mint": {
          "href": "/api-reference/kamino/risk",
          "metadata": {
            "sidebarTitle": "Get Obligation Risk"
          }
        }
      }
    },
    "/v1/lending/kamino/position/{obligation_address}/snapshots": {
      "get": {
        "tags": [
          "Kamino"
        ],
        "operationId": "get_v1_lending_kamino_position_obligation_address_snapshots",
        "summary": "Get Obligation Historical Performance",
        "description": "Historical performance for one Kamino obligation: collateral, debt, net worth, and health factor over time, mapped from the same Kamino history GET .../events returns raw. Requires market_address.\n\n**Credits:** 1 per successful call.",
        "parameters": [
          {
            "name": "obligation_address",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Obligation address.",
              "example": "HwxMtLM5cezFSQLe7h9Y3REUhVCZkgvHkCdXTBLxPqmZ",
              "x-default": "HwxMtLM5cezFSQLe7h9Y3REUhVCZkgvHkCdXTBLxPqmZ"
            }
          },
          {
            "name": "wallet",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Solana wallet.",
              "example": "7FvUzcCoB4Eeykow6PdR3dZLL8WHvqkNr8bKgUKzaiM8",
              "x-default": "7FvUzcCoB4Eeykow6PdR3dZLL8WHvqkNr8bKgUKzaiM8"
            }
          },
          {
            "name": "market_address",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Kamino market address.",
              "example": "C7h9YnjPrDvNhe2cWWDhCu4CZEB1XTTH4RzjmsHuengV",
              "x-default": "C7h9YnjPrDvNhe2cWWDhCu4CZEB1XTTH4RzjmsHuengV"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Page. Default: 1.",
              "default": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Maximum 25. Default: 10.",
              "default": 10,
              "maximum": 25
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/RequestId"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "timestamp": {
                                "type": "number",
                                "description": "Unix seconds."
                              },
                              "collateral_usd": {
                                "type": "string"
                              },
                              "debt_usd": {
                                "type": "string"
                              },
                              "net_worth_usd": {
                                "type": "string"
                              },
                              "health_factor": {
                                "type": "string",
                                "description": "String. Aave divides liquidation-threshold-weighted collateral by debt. Morpho divides collateral \u00d7 oracle price \u00d7 LLTV by debt, to four decimals. Kamino divides liquidation LTV by LTV. MAX or \u221e when there is no debt."
                              }
                            },
                            "required": [
                              "timestamp",
                              "collateral_usd",
                              "debt_usd",
                              "net_worth_usd",
                              "health_factor"
                            ]
                          }
                        },
                        "pagination": {
                          "$ref": "#/components/schemas/Pagination"
                        }
                      },
                      "required": [
                        "data",
                        "pagination"
                      ]
                    }
                  ]
                },
                "example": {
                  "data": [
                    {
                      "timestamp": 1725148800,
                      "collateral_usd": "1000.00",
                      "debt_usd": "400.00",
                      "net_worth_usd": "600.00",
                      "health_factor": "2.10"
                    }
                  ],
                  "pagination": {
                    "page": 1,
                    "limit": 10,
                    "total": 1,
                    "next_page": null,
                    "prev_page": null
                  },
                  "request_id": "req_..."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          },
          "502": {
            "$ref": "#/components/responses/BadGateway"
          }
        },
        "x-mint": {
          "href": "/api-reference/kamino/snapshots",
          "metadata": {
            "sidebarTitle": "Get Obligation Historical Performance"
          }
        }
      }
    },
    "/v1/lending/kamino/summary": {
      "get": {
        "tags": [
          "Kamino"
        ],
        "operationId": "get_v1_lending_kamino_summary",
        "summary": "Get Kamino Summary",
        "description": "Wallet-level obligation count and at-risk flag (health factor below 1.5). Cheapest Kamino call \u2014 use this to poll whether a wallet needs attention before fetching full detail.\n\n**Credits:** 1 per successful call.",
        "parameters": [
          {
            "name": "wallet",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Solana wallet.",
              "example": "7FvUzcCoB4Eeykow6PdR3dZLL8WHvqkNr8bKgUKzaiM8",
              "x-default": "7FvUzcCoB4Eeykow6PdR3dZLL8WHvqkNr8bKgUKzaiM8"
            }
          },
          {
            "name": "chain_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Chain ID."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/RequestId"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "type": "object",
                          "properties": {
                            "chain_id": {
                              "type": "integer"
                            },
                            "total": {
                              "type": "number"
                            },
                            "total_at_risk": {
                              "type": "integer",
                              "description": "Count of chains or obligations currently at risk."
                            },
                            "at_risk": {
                              "type": "boolean",
                              "description": "True when health factor is a finite number below 1.5. MAX and \u221e are not at risk."
                            }
                          },
                          "required": [
                            "chain_id",
                            "total",
                            "total_at_risk",
                            "at_risk"
                          ]
                        }
                      },
                      "required": [
                        "data"
                      ]
                    }
                  ]
                },
                "example": {
                  "data": {
                    "chain_id": 101,
                    "total": 1,
                    "total_at_risk": 0,
                    "at_risk": false
                  },
                  "request_id": "req_..."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          },
          "502": {
            "$ref": "#/components/responses/BadGateway"
          }
        },
        "x-mint": {
          "href": "/api-reference/kamino/summary",
          "metadata": {
            "sidebarTitle": "Get Kamino Summary"
          }
        }
      }
    },
    "/v1/lending/kamino/position/{obligation_address}/yield": {
      "get": {
        "tags": [
          "Kamino"
        ],
        "operationId": "get_v1_lending_kamino_position_obligation_address_yield",
        "summary": "Get Obligation Yield",
        "description": "Daily/weekly/monthly/yearly interest earned vs. paid, net APY, leverage, and weighted supply/borrow APY for a single Kamino obligation.\n\n**Credits:** 8 per successful call.",
        "parameters": [
          {
            "name": "obligation_address",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Obligation address.",
              "example": "HwxMtLM5cezFSQLe7h9Y3REUhVCZkgvHkCdXTBLxPqmZ",
              "x-default": "HwxMtLM5cezFSQLe7h9Y3REUhVCZkgvHkCdXTBLxPqmZ"
            }
          },
          {
            "name": "wallet",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Solana wallet.",
              "example": "7FvUzcCoB4Eeykow6PdR3dZLL8WHvqkNr8bKgUKzaiM8",
              "x-default": "7FvUzcCoB4Eeykow6PdR3dZLL8WHvqkNr8bKgUKzaiM8"
            }
          },
          {
            "name": "market_address",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Kamino market address.",
              "example": "C7h9YnjPrDvNhe2cWWDhCu4CZEB1XTTH4RzjmsHuengV",
              "x-default": "C7h9YnjPrDvNhe2cWWDhCu4CZEB1XTTH4RzjmsHuengV"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/RequestId"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "type": "object",
                          "properties": {
                            "chain_id": {
                              "type": "integer"
                            },
                            "wallet": {
                              "type": "string"
                            },
                            "market_address": {
                              "type": "string"
                            },
                            "obligation_address": {
                              "type": "string"
                            },
                            "daily_supply_interest_usd": {
                              "type": "string"
                            },
                            "daily_borrow_interest_usd": {
                              "type": "string"
                            },
                            "net_daily_interest_usd": {
                              "type": "string"
                            },
                            "net_apy": {
                              "type": "string"
                            },
                            "position_leverage": {
                              "type": "string"
                            },
                            "weighted_supply_apy": {
                              "type": "string"
                            },
                            "weighted_borrow_apy": {
                              "type": "string"
                            },
                            "projected_earnings": {
                              "type": "object",
                              "properties": {
                                "daily": {
                                  "type": "string"
                                },
                                "weekly": {
                                  "type": "string"
                                },
                                "monthly": {
                                  "type": "string"
                                },
                                "yearly": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "daily",
                                "weekly",
                                "monthly",
                                "yearly"
                              ]
                            }
                          },
                          "required": [
                            "chain_id",
                            "wallet",
                            "market_address",
                            "obligation_address",
                            "daily_supply_interest_usd",
                            "daily_borrow_interest_usd",
                            "net_daily_interest_usd",
                            "net_apy",
                            "position_leverage",
                            "weighted_supply_apy",
                            "weighted_borrow_apy",
                            "projected_earnings"
                          ]
                        }
                      },
                      "required": [
                        "data"
                      ]
                    }
                  ]
                },
                "example": {
                  "data": {
                    "chain_id": 101,
                    "wallet": "7FvUzcCoB4Eeykow6PdR3dZLL8WHvqkNr8bKgUKzaiM8",
                    "market_address": "C7h9YnjPrDvNhe2cWWDhCu4CZEB1XTTH4RzjmsHuengV",
                    "obligation_address": "HwxMtLM5cezFSQLe7h9Y3REUhVCZkgvHkCdXTBLxPqmZ",
                    "daily_supply_interest_usd": "0.20",
                    "daily_borrow_interest_usd": "0.08",
                    "net_daily_interest_usd": "0.12",
                    "net_apy": "7.30",
                    "position_leverage": "0.67",
                    "weighted_supply_apy": "7.30",
                    "weighted_borrow_apy": "7.30",
                    "projected_earnings": {
                      "daily": "0.12",
                      "weekly": "0.84",
                      "monthly": "3.60",
                      "yearly": "43.80"
                    }
                  },
                  "request_id": "req_..."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          },
          "502": {
            "$ref": "#/components/responses/BadGateway"
          }
        },
        "x-mint": {
          "href": "/api-reference/kamino/yield",
          "metadata": {
            "sidebarTitle": "Get Obligation Yield"
          }
        }
      }
    },
    "/v1/lending/morpho/batch": {
      "post": {
        "tags": [
          "Morpho"
        ],
        "operationId": "post_v1_lending_morpho_batch",
        "summary": "Batch Get Morpho Positions",
        "description": "Same as the list endpoint, but accepts multiple wallets in one POST (max 10). Returns one entry per wallet/chain pair. Optional `market_id` and `target_health_factor` in the body.\n\n**Credits:** 15 per matching wallet/chain result when fewer than 100 match; 12 per result at 100 or more. Billing uses the matching count before pagination.",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Page. Default: 1.",
              "default": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Maximum 25. Default: 10.",
              "default": 10,
              "maximum": 25
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/RequestId"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "chain_id": {
                                "type": "integer"
                              },
                              "wallet": {
                                "type": "string"
                              },
                              "positions": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "marketId": {
                                      "type": "string"
                                    },
                                    "healthFactor": {
                                      "type": "string",
                                      "description": "String. Aave divides liquidation-threshold-weighted collateral by debt. Morpho divides collateral \u00d7 oracle price \u00d7 LLTV by debt, to four decimals. Kamino divides liquidation LTV by LTV. MAX or \u221e when there is no debt."
                                    },
                                    "netValueUSD": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "marketId",
                                    "healthFactor",
                                    "netValueUSD"
                                  ]
                                }
                              },
                              "calculations": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "healthFactor": {
                                      "type": "string",
                                      "description": "String. Aave divides liquidation-threshold-weighted collateral by debt. Morpho divides collateral \u00d7 oracle price \u00d7 LLTV by debt, to four decimals. Kamino divides liquidation LTV by LTV. MAX or \u221e when there is no debt."
                                    },
                                    "netAPY": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "healthFactor",
                                    "netAPY"
                                  ]
                                }
                              }
                            },
                            "required": [
                              "chain_id",
                              "wallet",
                              "positions",
                              "calculations"
                            ]
                          }
                        },
                        "pagination": {
                          "$ref": "#/components/schemas/Pagination"
                        }
                      },
                      "required": [
                        "data",
                        "pagination"
                      ]
                    }
                  ]
                },
                "example": {
                  "data": [
                    {
                      "chain_id": 1,
                      "wallet": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495",
                      "positions": [
                        {
                          "marketId": "0xabababababababababababababababababababababababababababababababab",
                          "healthFactor": "2.5000",
                          "netValueUSD": "800.00"
                        }
                      ],
                      "calculations": [
                        {
                          "healthFactor": "2.5000",
                          "netAPY": "3.20"
                        }
                      ]
                    }
                  ],
                  "pagination": {
                    "page": 1,
                    "limit": 10,
                    "total": 1,
                    "next_page": null,
                    "prev_page": null
                  },
                  "request_id": "req_..."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-mint": {
          "href": "/api-reference/morpho/batch",
          "metadata": {
            "sidebarTitle": "Batch Get Morpho Positions"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "wallets": {
                    "type": "array",
                    "description": "Wallet addresses (comma-separated in the explorer; JSON array in the request body).",
                    "items": {
                      "type": "string"
                    },
                    "example": [
                      "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495"
                    ],
                    "x-default": [
                      "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495"
                    ]
                  },
                  "chain_id": {
                    "type": "integer",
                    "description": "Chain ID."
                  },
                  "market_id": {
                    "type": "string",
                    "description": "Isolated Morpho market id."
                  },
                  "target_health_factor": {
                    "type": "number",
                    "description": "Target health factor. Default: 1.5.",
                    "default": 1.5
                  }
                },
                "required": [
                  "wallets"
                ]
              },
              "example": {
                "wallets": [
                  "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495"
                ]
              }
            }
          }
        }
      }
    },
    "/v1/lending/morpho": {
      "get": {
        "tags": [
          "Morpho"
        ],
        "operationId": "get_v1_lending_morpho",
        "summary": "List Morpho Positions",
        "description": "Live Morpho Blue positions for a wallet from the lending indexer, one bundle per chain, with calculations. Each position is an isolated market. Optional `market_id` and `target_health_factor` (default 1.5).\n\n**Credits:** 15 per matching wallet/chain result, before pagination.",
        "parameters": [
          {
            "name": "wallet",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Wallet address.",
              "example": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495",
              "x-default": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495"
            }
          },
          {
            "name": "market_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Isolated Morpho market id."
            }
          },
          {
            "name": "target_health_factor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number",
              "description": "Target health factor. Default: 1.5.",
              "default": 1.5
            }
          },
          {
            "name": "chain_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Chain ID."
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Page. Default: 1.",
              "default": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Maximum 25. Default: 10.",
              "default": 10,
              "maximum": 25
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/RequestId"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "chain_id": {
                                "type": "integer"
                              },
                              "wallet": {
                                "type": "string"
                              },
                              "positions": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "marketId": {
                                      "type": "string"
                                    },
                                    "healthFactor": {
                                      "type": "string",
                                      "description": "String. Aave divides liquidation-threshold-weighted collateral by debt. Morpho divides collateral \u00d7 oracle price \u00d7 LLTV by debt, to four decimals. Kamino divides liquidation LTV by LTV. MAX or \u221e when there is no debt."
                                    },
                                    "collateralUSD": {
                                      "type": "string"
                                    },
                                    "borrowUSD": {
                                      "type": "string"
                                    },
                                    "supplyUSD": {
                                      "type": "string"
                                    },
                                    "netValueUSD": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "marketId",
                                    "healthFactor",
                                    "collateralUSD",
                                    "borrowUSD",
                                    "supplyUSD",
                                    "netValueUSD"
                                  ]
                                }
                              },
                              "calculations": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "healthFactor": {
                                      "type": "string",
                                      "description": "String. Aave divides liquidation-threshold-weighted collateral by debt. Morpho divides collateral \u00d7 oracle price \u00d7 LLTV by debt, to four decimals. Kamino divides liquidation LTV by LTV. MAX or \u221e when there is no debt."
                                    },
                                    "netAPY": {
                                      "type": "string"
                                    },
                                    "dailyInterestUSD": {
                                      "type": "string"
                                    },
                                    "dailySupplyInterestUSD": {
                                      "type": "string"
                                    },
                                    "dailyBorrowInterestUSD": {
                                      "type": "string"
                                    },
                                    "currentLtvPercentage": {
                                      "type": "string"
                                    },
                                    "liquidationThreshold": {
                                      "type": "string"
                                    },
                                    "safeBorrowAmountUSD": {
                                      "type": "string"
                                    },
                                    "safeWithdrawAmountUSD": {
                                      "type": "string"
                                    },
                                    "maxBorrowCapacityUSD": {
                                      "type": "string"
                                    },
                                    "borrowUtilizationRate": {
                                      "type": "string"
                                    },
                                    "availableBorrowsUSD": {
                                      "type": "string"
                                    },
                                    "weightedSupplyAPY": {
                                      "type": "string"
                                    },
                                    "weightedBorrowAPY": {
                                      "type": "string"
                                    },
                                    "positionLeverage": {
                                      "type": "string"
                                    },
                                    "projectedEarnings": {
                                      "type": "object",
                                      "properties": {
                                        "daily": {
                                          "type": "string"
                                        },
                                        "weekly": {
                                          "type": "string"
                                        },
                                        "monthly": {
                                          "type": "string"
                                        },
                                        "yearly": {
                                          "type": "string"
                                        }
                                      },
                                      "required": [
                                        "daily",
                                        "weekly",
                                        "monthly",
                                        "yearly"
                                      ]
                                    }
                                  },
                                  "required": [
                                    "healthFactor",
                                    "netAPY",
                                    "dailyInterestUSD",
                                    "dailySupplyInterestUSD",
                                    "dailyBorrowInterestUSD",
                                    "currentLtvPercentage",
                                    "liquidationThreshold",
                                    "safeBorrowAmountUSD",
                                    "safeWithdrawAmountUSD",
                                    "maxBorrowCapacityUSD",
                                    "borrowUtilizationRate",
                                    "availableBorrowsUSD",
                                    "weightedSupplyAPY",
                                    "weightedBorrowAPY",
                                    "positionLeverage",
                                    "projectedEarnings"
                                  ]
                                }
                              }
                            },
                            "required": [
                              "chain_id",
                              "wallet",
                              "positions",
                              "calculations"
                            ]
                          }
                        },
                        "pagination": {
                          "$ref": "#/components/schemas/Pagination"
                        }
                      },
                      "required": [
                        "data",
                        "pagination"
                      ]
                    }
                  ]
                },
                "example": {
                  "data": [
                    {
                      "chain_id": 1,
                      "wallet": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495",
                      "positions": [
                        {
                          "marketId": "0xabababababababababababababababababababababababababababababababab",
                          "healthFactor": "2.5000",
                          "collateralUSD": "1200.00",
                          "borrowUSD": "400.00",
                          "supplyUSD": "0.00",
                          "netValueUSD": "800.00"
                        }
                      ],
                      "calculations": [
                        {
                          "healthFactor": "2.5000",
                          "netAPY": "3.20",
                          "dailyInterestUSD": "0.01",
                          "dailySupplyInterestUSD": "0.05",
                          "dailyBorrowInterestUSD": "0.04",
                          "currentLtvPercentage": "33.33",
                          "liquidationThreshold": "86.00",
                          "safeBorrowAmountUSD": "200.00",
                          "safeWithdrawAmountUSD": "400.00",
                          "maxBorrowCapacityUSD": "1032.00",
                          "borrowUtilizationRate": "38.76",
                          "availableBorrowsUSD": "632.00",
                          "weightedSupplyAPY": "3.50",
                          "weightedBorrowAPY": "4.00",
                          "positionLeverage": "0.50",
                          "projectedEarnings": {
                            "daily": "0.01",
                            "weekly": "0.07",
                            "monthly": "0.30",
                            "yearly": "3.65"
                          }
                        }
                      ]
                    }
                  ],
                  "pagination": {
                    "page": 1,
                    "limit": 10,
                    "total": 1,
                    "next_page": null,
                    "prev_page": null
                  },
                  "request_id": "req_..."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-mint": {
          "href": "/api-reference/morpho/bundle",
          "metadata": {
            "sidebarTitle": "List Morpho Positions"
          }
        }
      }
    },
    "/v1/lending/morpho/position/{chain_id}/events": {
      "get": {
        "tags": [
          "Morpho"
        ],
        "operationId": "get_v1_lending_morpho_position_chain_id_events",
        "summary": "Get Position Events",
        "description": "Position history: supply, borrow, withdraw, repay, and liquidation for one chain. Each event has type, amount, amountUSD, priceUSD, asset details, and transactionHash. market_id is optional; each event names its market. Newest first.\n\n**Credits:** 1 per successful call.",
        "parameters": [
          {
            "name": "chain_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Chain ID.",
              "example": 1,
              "x-default": 1
            }
          },
          {
            "name": "wallet",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Wallet address.",
              "example": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495",
              "x-default": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495"
            }
          },
          {
            "name": "market_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Isolated Morpho market id."
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Page. Default: 1.",
              "default": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Maximum 25. Default: 10.",
              "default": 10,
              "maximum": 25
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/RequestId"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "type": {
                                "type": "string"
                              },
                              "marketId": {
                                "type": "string"
                              },
                              "blockNumber": {
                                "type": "integer"
                              },
                              "logIndex": {
                                "type": "number"
                              },
                              "timestamp": {
                                "type": "number",
                                "description": "Unix seconds."
                              },
                              "transactionHash": {
                                "type": "string"
                              },
                              "asset": {
                                "type": "object",
                                "properties": {
                                  "address": {
                                    "type": "string"
                                  },
                                  "symbol": {
                                    "type": "string"
                                  },
                                  "name": {
                                    "type": "string"
                                  },
                                  "decimals": {
                                    "type": "integer"
                                  },
                                  "logoURI": {
                                    "type": "string",
                                    "description": "Token logo URL, or null when none is available."
                                  }
                                },
                                "required": [
                                  "address",
                                  "symbol",
                                  "name",
                                  "decimals",
                                  "logoURI"
                                ]
                              },
                              "amount": {
                                "type": "string"
                              },
                              "amountUSD": {
                                "type": "string"
                              },
                              "priceUSD": {
                                "type": "string"
                              },
                              "shares": {
                                "type": "string"
                              },
                              "counterparty": {
                                "type": "string"
                              },
                              "isCollateral": {
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "type",
                              "marketId",
                              "blockNumber",
                              "logIndex",
                              "timestamp",
                              "transactionHash",
                              "asset",
                              "amount",
                              "amountUSD",
                              "priceUSD",
                              "shares",
                              "counterparty",
                              "isCollateral"
                            ]
                          }
                        },
                        "pagination": {
                          "$ref": "#/components/schemas/Pagination"
                        }
                      },
                      "required": [
                        "data",
                        "pagination"
                      ]
                    }
                  ]
                },
                "example": {
                  "data": [
                    {
                      "type": "deposit",
                      "marketId": "0xabababababababababababababababababababababababababababababababab",
                      "blockNumber": 19000000,
                      "logIndex": 4,
                      "timestamp": 1717200000,
                      "transactionHash": "0xabc",
                      "asset": {
                        "address": "0xweth",
                        "symbol": "WETH",
                        "name": "Wrapped Ether",
                        "decimals": 18,
                        "logoURI": ""
                      },
                      "amount": "0.20",
                      "amountUSD": "684.49",
                      "priceUSD": "3422.45",
                      "shares": "200000000000000000",
                      "counterparty": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495",
                      "isCollateral": true
                    }
                  ],
                  "pagination": {
                    "page": 1,
                    "limit": 10,
                    "total": 4,
                    "next_page": null,
                    "prev_page": null
                  },
                  "request_id": "req_..."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-mint": {
          "href": "/api-reference/morpho/events",
          "metadata": {
            "sidebarTitle": "Get Position Events"
          }
        }
      }
    },
    "/v1/lending/morpho/position": {
      "get": {
        "tags": [
          "Morpho"
        ],
        "operationId": "get_v1_lending_morpho_position",
        "summary": "Get Morpho Position (all chains)",
        "description": "Live Morpho Blue positions from the lending indexer, one bundle per chain, without calculation fields. Each entry inside the bundle is an isolated market. Optional `market_id` (0x + 64 hex) to filter one market.\n\n**Credits:** 3 per matching wallet/chain result, before pagination.",
        "parameters": [
          {
            "name": "wallet",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Wallet address.",
              "example": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495",
              "x-default": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495"
            }
          },
          {
            "name": "market_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Isolated Morpho market id."
            }
          },
          {
            "name": "chain_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Chain ID."
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Page. Default: 1.",
              "default": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Maximum 25. Default: 10.",
              "default": 10,
              "maximum": 25
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/RequestId"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "chain_id": {
                                "type": "integer"
                              },
                              "wallet": {
                                "type": "string"
                              },
                              "positions": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "marketId": {
                                      "type": "string"
                                    },
                                    "healthFactor": {
                                      "type": "string",
                                      "description": "String. Aave divides liquidation-threshold-weighted collateral by debt. Morpho divides collateral \u00d7 oracle price \u00d7 LLTV by debt, to four decimals. Kamino divides liquidation LTV by LTV. MAX or \u221e when there is no debt."
                                    },
                                    "supplyUSD": {
                                      "type": "string"
                                    },
                                    "borrowUSD": {
                                      "type": "string"
                                    },
                                    "collateralUSD": {
                                      "type": "string"
                                    },
                                    "netValueUSD": {
                                      "type": "string"
                                    },
                                    "currentLtv": {
                                      "type": "string"
                                    },
                                    "liquidationThreshold": {
                                      "type": "string"
                                    },
                                    "availableBorrowsUSD": {
                                      "type": "string"
                                    },
                                    "suppliedAssets": {
                                      "type": "array",
                                      "items": {
                                        "type": "object"
                                      }
                                    },
                                    "borrowedAssets": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "symbol": {
                                            "type": "string"
                                          },
                                          "amountBorrowedUSD": {
                                            "type": "string"
                                          },
                                          "borrowAPY": {
                                            "type": "string"
                                          }
                                        },
                                        "required": [
                                          "symbol",
                                          "amountBorrowedUSD",
                                          "borrowAPY"
                                        ]
                                      }
                                    },
                                    "collateralAssets": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "symbol": {
                                            "type": "string"
                                          },
                                          "amountDepositedUSD": {
                                            "type": "string"
                                          }
                                        },
                                        "required": [
                                          "symbol",
                                          "amountDepositedUSD"
                                        ]
                                      }
                                    },
                                    "riskMetrics": {
                                      "type": "object",
                                      "properties": {
                                        "maxBorrowCapacityUSD": {
                                          "type": "string"
                                        },
                                        "borrowUtilization": {
                                          "type": "string"
                                        }
                                      },
                                      "required": [
                                        "maxBorrowCapacityUSD",
                                        "borrowUtilization"
                                      ]
                                    }
                                  },
                                  "required": [
                                    "marketId",
                                    "healthFactor",
                                    "supplyUSD",
                                    "borrowUSD",
                                    "collateralUSD",
                                    "netValueUSD",
                                    "currentLtv",
                                    "liquidationThreshold",
                                    "availableBorrowsUSD",
                                    "suppliedAssets",
                                    "borrowedAssets",
                                    "collateralAssets",
                                    "riskMetrics"
                                  ]
                                }
                              }
                            },
                            "required": [
                              "chain_id",
                              "wallet",
                              "positions"
                            ]
                          }
                        },
                        "pagination": {
                          "$ref": "#/components/schemas/Pagination"
                        }
                      },
                      "required": [
                        "data",
                        "pagination"
                      ]
                    }
                  ]
                },
                "example": {
                  "data": [
                    {
                      "chain_id": 1,
                      "wallet": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495",
                      "positions": [
                        {
                          "marketId": "0xabababababababababababababababababababababababababababababababab",
                          "healthFactor": "2.5000",
                          "supplyUSD": "0.00",
                          "borrowUSD": "400.00",
                          "collateralUSD": "1200.00",
                          "netValueUSD": "800.00",
                          "currentLtv": "33.33",
                          "liquidationThreshold": "86.00",
                          "availableBorrowsUSD": "632.00",
                          "suppliedAssets": [],
                          "borrowedAssets": [
                            {
                              "symbol": "USDC",
                              "amountBorrowedUSD": "400.00",
                              "borrowAPY": "4.00"
                            }
                          ],
                          "collateralAssets": [
                            {
                              "symbol": "WETH",
                              "amountDepositedUSD": "1200.00"
                            }
                          ],
                          "riskMetrics": {
                            "maxBorrowCapacityUSD": "1032.00",
                            "borrowUtilization": "38.76"
                          }
                        }
                      ]
                    }
                  ],
                  "pagination": {
                    "page": 1,
                    "limit": 10,
                    "total": 1,
                    "next_page": null,
                    "prev_page": null
                  },
                  "request_id": "req_..."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-mint": {
          "href": "/api-reference/morpho/position",
          "metadata": {
            "sidebarTitle": "Get Morpho Position (all chains)"
          }
        }
      }
    },
    "/v1/lending/morpho/position/{chain_id}/risk": {
      "get": {
        "tags": [
          "Morpho"
        ],
        "operationId": "get_v1_lending_morpho_position_chain_id_risk",
        "summary": "Get Position Risk",
        "description": "Health factor, LTV, and safe borrow/withdraw amounts for one isolated Morpho market. `market_id` (bytes32) is required. Optional `target_health_factor` (default 1.5).\n\n**Credits:** 8 per successful call.",
        "parameters": [
          {
            "name": "chain_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Chain ID.",
              "example": 1,
              "x-default": 1
            }
          },
          {
            "name": "wallet",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Wallet address.",
              "example": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495",
              "x-default": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495"
            }
          },
          {
            "name": "market_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Isolated Morpho market id.",
              "example": "0xabababababababababababababababababababababababababababababababab",
              "x-default": "0xabababababababababababababababababababababababababababababababab"
            }
          },
          {
            "name": "target_health_factor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number",
              "description": "Target health factor. Default: 1.5.",
              "default": 1.5
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/RequestId"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "type": "object",
                          "properties": {
                            "chain_id": {
                              "type": "integer"
                            },
                            "wallet": {
                              "type": "string"
                            },
                            "market_id": {
                              "type": "string"
                            },
                            "health_factor": {
                              "type": "string",
                              "description": "String. Aave divides liquidation-threshold-weighted collateral by debt. Morpho divides collateral \u00d7 oracle price \u00d7 LLTV by debt, to four decimals. Kamino divides liquidation LTV by LTV. MAX or \u221e when there is no debt."
                            },
                            "current_ltv_percentage": {
                              "type": "string"
                            },
                            "liquidation_threshold": {
                              "type": "string"
                            },
                            "safe_borrow_amount_usd": {
                              "type": "string"
                            },
                            "safe_withdraw_amount_usd": {
                              "type": "string"
                            },
                            "max_borrow_capacity_usd": {
                              "type": "string"
                            },
                            "borrow_utilization_rate": {
                              "type": "string"
                            },
                            "available_borrows_usd": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "chain_id",
                            "wallet",
                            "market_id",
                            "health_factor",
                            "current_ltv_percentage",
                            "liquidation_threshold",
                            "safe_borrow_amount_usd",
                            "safe_withdraw_amount_usd",
                            "max_borrow_capacity_usd",
                            "borrow_utilization_rate",
                            "available_borrows_usd"
                          ]
                        }
                      },
                      "required": [
                        "data"
                      ]
                    }
                  ]
                },
                "example": {
                  "data": {
                    "chain_id": 1,
                    "wallet": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495",
                    "market_id": "0xabababababababababababababababababababababababababababababababab",
                    "health_factor": "2.5000",
                    "current_ltv_percentage": "33.33",
                    "liquidation_threshold": "86.00",
                    "safe_borrow_amount_usd": "200.00",
                    "safe_withdraw_amount_usd": "400.00",
                    "max_borrow_capacity_usd": "1032.00",
                    "borrow_utilization_rate": "38.76",
                    "available_borrows_usd": "632.00"
                  },
                  "request_id": "req_..."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-mint": {
          "href": "/api-reference/morpho/risk",
          "metadata": {
            "sidebarTitle": "Get Position Risk"
          }
        }
      }
    },
    "/v1/lending/morpho/position/{chain_id}/snapshots": {
      "get": {
        "tags": [
          "Morpho"
        ],
        "operationId": "get_v1_lending_morpho_position_chain_id_snapshots",
        "summary": "Get Position Historical Performance",
        "description": "Historical performance: daily Morpho Blue position snapshots for the history chart. `max_snapshots` is a day count; omit it for the full indexed series. Optional `market_id` to scope one isolated market.\n\n**Credits:** 2 per successful call.",
        "parameters": [
          {
            "name": "chain_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Chain ID.",
              "example": 1,
              "x-default": 1
            }
          },
          {
            "name": "wallet",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Wallet address.",
              "example": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495",
              "x-default": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495"
            }
          },
          {
            "name": "market_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Isolated Morpho market id."
            }
          },
          {
            "name": "max_snapshots",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Max snapshots (days)."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/RequestId"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "timestamp": {
                                "type": "number",
                                "description": "Unix seconds."
                              },
                              "market_id": {
                                "type": "string"
                              },
                              "supply_usd": {
                                "type": "string"
                              },
                              "borrow_usd": {
                                "type": "string"
                              },
                              "collateral_usd": {
                                "type": "string"
                              },
                              "net_worth_usd": {
                                "type": "string"
                              },
                              "health_factor": {
                                "type": "string",
                                "description": "String. Aave divides liquidation-threshold-weighted collateral by debt. Morpho divides collateral \u00d7 oracle price \u00d7 LLTV by debt, to four decimals. Kamino divides liquidation LTV by LTV. MAX or \u221e when there is no debt."
                              }
                            },
                            "required": [
                              "timestamp",
                              "market_id",
                              "supply_usd",
                              "borrow_usd",
                              "collateral_usd",
                              "net_worth_usd",
                              "health_factor"
                            ]
                          }
                        }
                      },
                      "required": [
                        "data"
                      ]
                    }
                  ]
                },
                "example": {
                  "data": [
                    {
                      "timestamp": 1717200000,
                      "market_id": "0xabababababababababababababababababababababababababababababababab",
                      "supply_usd": "1000.00",
                      "borrow_usd": "400.00",
                      "collateral_usd": "1200.00",
                      "net_worth_usd": "800.00",
                      "health_factor": "2.50"
                    }
                  ],
                  "request_id": "req_..."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-mint": {
          "href": "/api-reference/morpho/snapshots",
          "metadata": {
            "sidebarTitle": "Get Position Historical Performance"
          }
        }
      }
    },
    "/v1/lending/morpho/summary": {
      "get": {
        "tags": [
          "Morpho"
        ],
        "operationId": "get_v1_lending_morpho_summary",
        "summary": "Get Morpho Summary",
        "description": "Lightweight per-chain \"is this wallet at risk anywhere\" check from the lending indexer \u2014 no position detail, just chain IDs and an `at_risk` flag (health factor below 1.5 on any isolated market). Optional `market_id` (bytes32) to scope one market.\n\n**Credits:** 1 per successful call.",
        "parameters": [
          {
            "name": "wallet",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Wallet address.",
              "example": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495",
              "x-default": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495"
            }
          },
          {
            "name": "chain_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Chain ID."
            }
          },
          {
            "name": "market_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Isolated Morpho market id."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/RequestId"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "type": "object",
                          "properties": {
                            "chains": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "chain_id": {
                                    "type": "integer"
                                  },
                                  "at_risk": {
                                    "type": "boolean",
                                    "description": "True when health factor is a finite number below 1.5. MAX and \u221e are not at risk."
                                  }
                                },
                                "required": [
                                  "chain_id",
                                  "at_risk"
                                ]
                              }
                            },
                            "total": {
                              "type": "number"
                            },
                            "total_at_risk": {
                              "type": "integer",
                              "description": "Count of chains or obligations currently at risk."
                            }
                          },
                          "required": [
                            "chains",
                            "total",
                            "total_at_risk"
                          ]
                        }
                      },
                      "required": [
                        "data"
                      ]
                    }
                  ]
                },
                "example": {
                  "data": {
                    "chains": [
                      {
                        "chain_id": 1,
                        "at_risk": false
                      }
                    ],
                    "total": 1,
                    "total_at_risk": 0
                  },
                  "request_id": "req_..."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-mint": {
          "href": "/api-reference/morpho/summary",
          "metadata": {
            "sidebarTitle": "Get Morpho Summary"
          }
        }
      }
    },
    "/v1/lending/morpho/position/{chain_id}/yield": {
      "get": {
        "tags": [
          "Morpho"
        ],
        "operationId": "get_v1_lending_morpho_position_chain_id_yield",
        "summary": "Get Position Yield",
        "description": "Daily interest earned vs. paid, net APY, and projections for one isolated Morpho market. `market_id` (bytes32) is required. Optional `target_health_factor` (default 1.5).\n\n**Credits:** 8 per successful call.",
        "parameters": [
          {
            "name": "chain_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Chain ID.",
              "example": 1,
              "x-default": 1
            }
          },
          {
            "name": "wallet",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Wallet address.",
              "example": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495",
              "x-default": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495"
            }
          },
          {
            "name": "market_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Isolated Morpho market id.",
              "example": "0xabababababababababababababababababababababababababababababababab",
              "x-default": "0xabababababababababababababababababababababababababababababababab"
            }
          },
          {
            "name": "target_health_factor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number",
              "description": "Target health factor. Default: 1.5.",
              "default": 1.5
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/RequestId"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "type": "object",
                          "properties": {
                            "chain_id": {
                              "type": "integer"
                            },
                            "wallet": {
                              "type": "string"
                            },
                            "market_id": {
                              "type": "string"
                            },
                            "daily_supply_interest_usd": {
                              "type": "string"
                            },
                            "daily_borrow_interest_usd": {
                              "type": "string"
                            },
                            "net_daily_interest_usd": {
                              "type": "string"
                            },
                            "net_apy": {
                              "type": "string"
                            },
                            "position_leverage": {
                              "type": "string"
                            },
                            "weighted_supply_apy": {
                              "type": "string"
                            },
                            "weighted_borrow_apy": {
                              "type": "string"
                            },
                            "projected_earnings": {
                              "type": "object",
                              "properties": {
                                "daily": {
                                  "type": "string"
                                },
                                "weekly": {
                                  "type": "string"
                                },
                                "monthly": {
                                  "type": "string"
                                },
                                "yearly": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "daily",
                                "weekly",
                                "monthly",
                                "yearly"
                              ]
                            }
                          },
                          "required": [
                            "chain_id",
                            "wallet",
                            "market_id",
                            "daily_supply_interest_usd",
                            "daily_borrow_interest_usd",
                            "net_daily_interest_usd",
                            "net_apy",
                            "position_leverage",
                            "weighted_supply_apy",
                            "weighted_borrow_apy",
                            "projected_earnings"
                          ]
                        }
                      },
                      "required": [
                        "data"
                      ]
                    }
                  ]
                },
                "example": {
                  "data": {
                    "chain_id": 1,
                    "wallet": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495",
                    "market_id": "0xabababababababababababababababababababababababababababababababab",
                    "daily_supply_interest_usd": "0.05",
                    "daily_borrow_interest_usd": "0.04",
                    "net_daily_interest_usd": "0.01",
                    "net_apy": "3.20",
                    "position_leverage": "0.50",
                    "weighted_supply_apy": "3.50",
                    "weighted_borrow_apy": "4.00",
                    "projected_earnings": {
                      "daily": "0.01",
                      "weekly": "0.07",
                      "monthly": "0.30",
                      "yearly": "3.65"
                    }
                  },
                  "request_id": "req_..."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-mint": {
          "href": "/api-reference/morpho/yield",
          "metadata": {
            "sidebarTitle": "Get Position Yield"
          }
        }
      }
    },
    "/v1/positions/orca/batch": {
      "post": {
        "tags": [
          "Orca"
        ],
        "operationId": "post_v1_positions_orca_batch",
        "summary": "Batch Get Orca Positions",
        "description": "Same as the list endpoint, multiple Solana wallets in one POST. Returns the same shape as `?full=true` on the list endpoint \u2014 for scanning many addresses at once.\n\n**Credits:** 12 per position returned on this page.",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Page. Default: 1.",
              "default": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Maximum 25. Default: 10.",
              "default": 10,
              "maximum": 25
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/RequestId"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "position_id": {
                                "type": "string"
                              },
                              "chain_id": {
                                "type": "integer"
                              },
                              "wallet": {
                                "type": "string"
                              },
                              "is_active": {
                                "type": "boolean"
                              },
                              "sub_protocol": {
                                "type": "string"
                              },
                              "position": {
                                "type": "object",
                                "properties": {
                                  "positionData": {
                                    "type": "object",
                                    "properties": {
                                      "id": {
                                        "type": "string"
                                      },
                                      "owner": {
                                        "type": "string"
                                      },
                                      "tickLower": {
                                        "type": "string"
                                      },
                                      "tickUpper": {
                                        "type": "string"
                                      }
                                    },
                                    "required": [
                                      "id",
                                      "owner",
                                      "tickLower",
                                      "tickUpper"
                                    ]
                                  },
                                  "calculations": {
                                    "type": "object",
                                    "properties": {
                                      "inRange": {
                                        "type": "boolean",
                                        "description": "True when the pool price is inside the position tick range."
                                      },
                                      "positionUsdValue": {
                                        "type": "string",
                                        "description": "USD string. Token principal plus unclaimed fees and rewards."
                                      },
                                      "isClosed": {
                                        "type": "boolean",
                                        "description": "True when the position liquidity is zero."
                                      }
                                    },
                                    "required": [
                                      "inRange",
                                      "positionUsdValue",
                                      "isClosed"
                                    ]
                                  }
                                },
                                "required": [
                                  "positionData",
                                  "calculations"
                                ]
                              }
                            },
                            "required": [
                              "position_id",
                              "chain_id",
                              "wallet",
                              "is_active",
                              "sub_protocol",
                              "position"
                            ]
                          }
                        },
                        "pagination": {
                          "$ref": "#/components/schemas/Pagination"
                        },
                        "counts": {
                          "type": "object",
                          "properties": {
                            "totalActive": {
                              "type": "number"
                            },
                            "totalInactive": {
                              "type": "number"
                            },
                            "total": {
                              "type": "number"
                            },
                            "filtered": {
                              "type": "number"
                            },
                            "errors": {
                              "type": "number"
                            }
                          },
                          "required": [
                            "totalActive",
                            "totalInactive",
                            "total",
                            "filtered",
                            "errors"
                          ]
                        }
                      },
                      "required": [
                        "data",
                        "pagination",
                        "counts"
                      ]
                    }
                  ]
                },
                "example": {
                  "data": [
                    {
                      "position_id": "FUvNMzGMEwFmy6QreoZG7TijmRrDNhKFXJDQYzHM2uEr",
                      "chain_id": 101,
                      "wallet": "CqB5nxVwQkjjaq3qpzBcJRwych1sZJDeT37BgDSXwpyp",
                      "is_active": true,
                      "sub_protocol": "orca",
                      "position": {
                        "positionData": {
                          "id": "FUvNMzGMEwFmy6QreoZG7TijmRrDNhKFXJDQYzHM2uEr",
                          "owner": "CqB5nxVwQkjjaq3qpzBcJRwych1sZJDeT37BgDSXwpyp",
                          "tickLower": "-4928",
                          "tickUpper": "-2624"
                        },
                        "calculations": {
                          "inRange": true,
                          "positionUsdValue": "100.00",
                          "isClosed": false
                        }
                      }
                    }
                  ],
                  "pagination": {
                    "page": 1,
                    "limit": 10,
                    "total": 2,
                    "next_page": null,
                    "prev_page": null
                  },
                  "counts": {
                    "totalActive": 2,
                    "totalInactive": 2,
                    "total": 4,
                    "filtered": 2,
                    "errors": 0
                  },
                  "request_id": "req_..."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-mint": {
          "href": "/api-reference/orca/batch",
          "metadata": {
            "sidebarTitle": "Batch Get Orca Positions"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "wallets": {
                    "type": "array",
                    "description": "Solana wallets (JSON array in the request body).",
                    "items": {
                      "type": "string"
                    },
                    "example": [
                      "CqB5nxVwQkjjaq3qpzBcJRwych1sZJDeT37BgDSXwpyp"
                    ],
                    "x-default": [
                      "CqB5nxVwQkjjaq3qpzBcJRwych1sZJDeT37BgDSXwpyp"
                    ]
                  },
                  "chain_id": {
                    "type": "integer",
                    "description": "Chain ID."
                  }
                },
                "required": [
                  "wallets"
                ]
              },
              "example": {
                "wallets": [
                  "CqB5nxVwQkjjaq3qpzBcJRwych1sZJDeT37BgDSXwpyp"
                ]
              }
            }
          }
        }
      }
    },
    "/v1/positions/orca/{id}": {
      "get": {
        "tags": [
          "Orca"
        ],
        "operationId": "get_v1_positions_orca_id",
        "summary": "Get Orca Position",
        "description": "Raw on-chain state for a single whirlpool position: ticks, pool, liquidity. Pass `wallet` to attach DeFiTuna lending info when the position is tuna-wrapped.\n\n**Credits:** 2 per successful call.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Position address.",
              "example": "FUvNMzGMEwFmy6QreoZG7TijmRrDNhKFXJDQYzHM2uEr",
              "x-default": "FUvNMzGMEwFmy6QreoZG7TijmRrDNhKFXJDQYzHM2uEr"
            }
          },
          {
            "name": "wallet",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Solana wallet \u2014 needed for DeFiTuna."
            }
          },
          {
            "name": "chain_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Chain ID."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/RequestId"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "type": "object",
                          "properties": {
                            "position_id": {
                              "type": "string"
                            },
                            "chain_id": {
                              "type": "integer"
                            },
                            "wallet": {
                              "type": "string"
                            },
                            "is_active": {
                              "type": "boolean"
                            },
                            "sub_protocol": {
                              "type": "string"
                            },
                            "position_state": {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string"
                                },
                                "liquidity": {
                                  "type": "string"
                                },
                                "tickLower": {
                                  "type": "string"
                                },
                                "tickUpper": {
                                  "type": "string"
                                },
                                "whirlpool": {
                                  "type": "string"
                                },
                                "positionMint": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "id",
                                "liquidity",
                                "tickLower",
                                "tickUpper",
                                "whirlpool",
                                "positionMint"
                              ]
                            }
                          },
                          "required": [
                            "position_id",
                            "chain_id",
                            "wallet",
                            "is_active",
                            "sub_protocol",
                            "position_state"
                          ]
                        }
                      },
                      "required": [
                        "data"
                      ]
                    }
                  ]
                },
                "example": {
                  "data": {
                    "position_id": "FUvNMzGMEwFmy6QreoZG7TijmRrDNhKFXJDQYzHM2uEr",
                    "chain_id": 101,
                    "wallet": "CqB5nxVwQkjjaq3qpzBcJRwych1sZJDeT37BgDSXwpyp",
                    "is_active": true,
                    "sub_protocol": "orca",
                    "position_state": {
                      "id": "FUvNMzGMEwFmy6QreoZG7TijmRrDNhKFXJDQYzHM2uEr",
                      "liquidity": "17770686851",
                      "tickLower": "-4928",
                      "tickUpper": "-2624",
                      "whirlpool": "whirlpoolAddress",
                      "positionMint": "positionMintAddress"
                    }
                  },
                  "request_id": "req_..."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          },
          "502": {
            "$ref": "#/components/responses/BadGateway"
          }
        },
        "x-mint": {
          "href": "/api-reference/orca/get",
          "metadata": {
            "sidebarTitle": "Get Orca Position"
          }
        }
      }
    },
    "/v1/positions/orca": {
      "get": {
        "tags": [
          "Orca"
        ],
        "operationId": "get_v1_positions_orca",
        "summary": "List Orca Positions",
        "description": "All active Orca whirlpool (and DeFiTuna-wrapped) LP positions for a Solana wallet. Closed positions are visible with `status=inactive`.\n\n**Credits:** 2 per position returned on this page.\n\nThese queries have their own credit cost.\n\n| Query | Credits per returned position |\n| --- | --- |\n| `status=inactive` | 1 |\n| `full=true` | 15 |",
        "parameters": [
          {
            "name": "wallet",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Solana wallet.",
              "example": "CqB5nxVwQkjjaq3qpzBcJRwych1sZJDeT37BgDSXwpyp",
              "x-default": "CqB5nxVwQkjjaq3qpzBcJRwych1sZJDeT37BgDSXwpyp"
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "inactive"
              ],
              "description": "Omit for active positions. Set to `inactive` for closed positions. Default: active."
            }
          },
          {
            "name": "full",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "description": "Boolean. Include `full=true` for the detailed payload. Omit otherwise. On list endpoints this returns active positions only."
            }
          },
          {
            "name": "chain_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Chain ID."
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Page. Default: 1.",
              "default": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Maximum 25. Default: 10.",
              "default": 10,
              "maximum": 25
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/RequestId"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "position_id": {
                                "type": "string"
                              },
                              "chain_id": {
                                "type": "integer"
                              },
                              "wallet": {
                                "type": "string"
                              },
                              "is_active": {
                                "type": "boolean"
                              },
                              "sub_protocol": {
                                "type": "string"
                              },
                              "position_state": {
                                "type": "object",
                                "properties": {
                                  "id": {
                                    "type": "string"
                                  },
                                  "liquidity": {
                                    "type": "string"
                                  },
                                  "tickLower": {
                                    "type": "string"
                                  },
                                  "tickUpper": {
                                    "type": "string"
                                  },
                                  "whirlpool": {
                                    "type": "string"
                                  },
                                  "positionMint": {
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "id",
                                  "liquidity",
                                  "tickLower",
                                  "tickUpper",
                                  "whirlpool",
                                  "positionMint"
                                ]
                              }
                            },
                            "required": [
                              "position_id",
                              "chain_id",
                              "wallet",
                              "is_active",
                              "sub_protocol",
                              "position_state"
                            ]
                          }
                        },
                        "pagination": {
                          "$ref": "#/components/schemas/Pagination"
                        },
                        "counts": {
                          "type": "object",
                          "properties": {
                            "totalActive": {
                              "type": "number"
                            },
                            "totalInactive": {
                              "type": "number"
                            },
                            "total": {
                              "type": "number"
                            },
                            "filtered": {
                              "type": "number"
                            },
                            "errors": {
                              "type": "number"
                            }
                          },
                          "required": [
                            "totalActive",
                            "totalInactive",
                            "total",
                            "filtered",
                            "errors"
                          ]
                        }
                      },
                      "required": [
                        "data",
                        "pagination",
                        "counts"
                      ]
                    }
                  ]
                },
                "example": {
                  "data": [
                    {
                      "position_id": "FUvNMzGMEwFmy6QreoZG7TijmRrDNhKFXJDQYzHM2uEr",
                      "chain_id": 101,
                      "wallet": "CqB5nxVwQkjjaq3qpzBcJRwych1sZJDeT37BgDSXwpyp",
                      "is_active": true,
                      "sub_protocol": "orca",
                      "position_state": {
                        "id": "FUvNMzGMEwFmy6QreoZG7TijmRrDNhKFXJDQYzHM2uEr",
                        "liquidity": "17770686851",
                        "tickLower": "-4928",
                        "tickUpper": "-2624",
                        "whirlpool": "whirlpoolAddress",
                        "positionMint": "positionMintAddress"
                      }
                    }
                  ],
                  "pagination": {
                    "page": 1,
                    "limit": 10,
                    "total": 2,
                    "next_page": null,
                    "prev_page": null
                  },
                  "counts": {
                    "totalActive": 2,
                    "totalInactive": 2,
                    "total": 4,
                    "filtered": 2,
                    "errors": 0
                  },
                  "request_id": "req_..."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-mint": {
          "href": "/api-reference/orca/list",
          "metadata": {
            "sidebarTitle": "List Orca Positions"
          }
        }
      }
    },
    "/v1/positions/orca/summary": {
      "get": {
        "tags": [
          "Orca"
        ],
        "operationId": "get_v1_positions_orca_summary",
        "summary": "Get Orca Summary",
        "description": "Wallet-level counts only \u2014 active vs. inactive whirlpool and DeFiTuna LP positions on Solana.\n\n**Credits:** 1 per successful call.",
        "parameters": [
          {
            "name": "wallet",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Solana wallet.",
              "example": "CqB5nxVwQkjjaq3qpzBcJRwych1sZJDeT37BgDSXwpyp",
              "x-default": "CqB5nxVwQkjjaq3qpzBcJRwych1sZJDeT37BgDSXwpyp"
            }
          },
          {
            "name": "chain_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Chain ID."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/RequestId"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "type": "object",
                          "properties": {
                            "total": {
                              "type": "number"
                            },
                            "total_active": {
                              "type": "number"
                            },
                            "total_inactive": {
                              "type": "number"
                            }
                          },
                          "required": [
                            "total",
                            "total_active",
                            "total_inactive"
                          ]
                        }
                      },
                      "required": [
                        "data"
                      ]
                    }
                  ]
                },
                "example": {
                  "data": {
                    "total": 4,
                    "total_active": 2,
                    "total_inactive": 2
                  },
                  "request_id": "req_..."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-mint": {
          "href": "/api-reference/orca/summary",
          "metadata": {
            "sidebarTitle": "Get Orca Summary"
          }
        }
      }
    },
    "/v1/portfolio/assets": {
      "get": {
        "tags": [
          "Portfolio"
        ],
        "operationId": "get_v1_portfolio_assets",
        "summary": "Get Portfolio Assets",
        "description": "Every token the wallet holds, per chain, with live USD pricing \u2014 the raw token list behind the balance total.\n\n**Credits:** 30 per successful call.",
        "parameters": [
          {
            "name": "wallet",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Wallet address.",
              "example": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495",
              "x-default": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/RequestId"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "type": "object",
                          "properties": {
                            "portfolio": {
                              "type": "object",
                              "properties": {
                                "totalValueUSD": {
                                  "type": "number"
                                }
                              },
                              "required": [
                                "totalValueUSD"
                              ]
                            },
                            "tokenHoldings": {
                              "type": "object",
                              "properties": {
                                "totalValueUSD": {
                                  "type": "number"
                                },
                                "tokens": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "address": {
                                        "type": "string"
                                      },
                                      "symbol": {
                                        "type": "string"
                                      },
                                      "name": {
                                        "type": "string"
                                      },
                                      "iconUrl": {
                                        "type": "string",
                                        "nullable": true,
                                        "description": "Logo URL, or null when none is available."
                                      },
                                      "priceUSD": {
                                        "type": "number"
                                      },
                                      "balance": {
                                        "type": "number"
                                      },
                                      "balanceUSD": {
                                        "type": "number"
                                      },
                                      "portfolioPercent": {
                                        "type": "number"
                                      },
                                      "priceChange24hPercent": {
                                        "type": "number",
                                        "nullable": true,
                                        "description": "Percent price change over 24 hours, or null when the source has none."
                                      },
                                      "decimals": {
                                        "type": "integer"
                                      },
                                      "network": {
                                        "$ref": "#/components/schemas/Network"
                                      }
                                    },
                                    "required": [
                                      "address",
                                      "symbol",
                                      "name",
                                      "iconUrl",
                                      "priceUSD",
                                      "balance",
                                      "balanceUSD",
                                      "portfolioPercent",
                                      "priceChange24hPercent",
                                      "decimals",
                                      "network"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "totalValueUSD",
                                "tokens"
                              ]
                            },
                            "wallets": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "address": {
                                    "type": "string"
                                  },
                                  "totalValueUSD": {
                                    "type": "number"
                                  }
                                },
                                "required": [
                                  "address",
                                  "totalValueUSD"
                                ]
                              }
                            },
                            "dAppHoldings": {
                              "type": "array",
                              "items": {
                                "type": "object"
                              }
                            },
                            "chainExposure": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "network": {
                                    "$ref": "#/components/schemas/Network"
                                  },
                                  "valueUSD": {
                                    "type": "number"
                                  },
                                  "percent": {
                                    "type": "number"
                                  }
                                },
                                "required": [
                                  "network",
                                  "valueUSD",
                                  "percent"
                                ]
                              }
                            },
                            "allocationBreakdown": {
                              "type": "object",
                              "properties": {
                                "idle": {
                                  "type": "object",
                                  "properties": {
                                    "stablecoins": {
                                      "type": "number"
                                    },
                                    "majors": {
                                      "type": "number"
                                    },
                                    "tokens": {
                                      "type": "number"
                                    },
                                    "total": {
                                      "type": "number"
                                    }
                                  },
                                  "required": [
                                    "stablecoins",
                                    "majors",
                                    "tokens",
                                    "total"
                                  ]
                                },
                                "deployed": {
                                  "type": "object",
                                  "properties": {
                                    "lending": {
                                      "type": "number"
                                    },
                                    "borrowing": {
                                      "type": "number"
                                    },
                                    "vaults": {
                                      "type": "number"
                                    },
                                    "staked": {
                                      "type": "number"
                                    },
                                    "total": {
                                      "type": "number"
                                    }
                                  },
                                  "required": [
                                    "lending",
                                    "borrowing",
                                    "vaults",
                                    "staked",
                                    "total"
                                  ]
                                }
                              },
                              "required": [
                                "idle",
                                "deployed"
                              ]
                            },
                            "meta": {
                              "type": "object",
                              "properties": {
                                "lastUpdatedAt": {
                                  "type": "integer",
                                  "description": "Unix milliseconds when the portfolio provider last updated this wallet."
                                },
                                "warnings": {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  }
                                }
                              },
                              "required": [
                                "lastUpdatedAt",
                                "warnings"
                              ]
                            }
                          },
                          "required": [
                            "portfolio",
                            "tokenHoldings",
                            "wallets",
                            "dAppHoldings",
                            "chainExposure",
                            "allocationBreakdown",
                            "meta"
                          ]
                        }
                      },
                      "required": [
                        "data"
                      ]
                    }
                  ]
                },
                "example": {
                  "data": {
                    "portfolio": {
                      "totalValueUSD": 357.97
                    },
                    "tokenHoldings": {
                      "totalValueUSD": 357.97,
                      "tokens": [
                        {
                          "address": "0xtoken",
                          "symbol": "WAVAX(Wormhole)",
                          "name": "Wrapped AVAX",
                          "iconUrl": null,
                          "priceUSD": 6.608,
                          "balance": 54.172518,
                          "balanceUSD": 357.97,
                          "portfolioPercent": 100,
                          "priceChange24hPercent": null,
                          "decimals": 18,
                          "network": {
                            "chainId": 8453,
                            "name": "Base",
                            "slug": "base",
                            "iconUrl": null
                          }
                        }
                      ]
                    },
                    "wallets": [
                      {
                        "address": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495",
                        "totalValueUSD": 357.97
                      }
                    ],
                    "dAppHoldings": [],
                    "chainExposure": [
                      {
                        "network": {
                          "chainId": 8453,
                          "name": "Base",
                          "slug": "base",
                          "iconUrl": null
                        },
                        "valueUSD": 357.97,
                        "percent": 100
                      }
                    ],
                    "allocationBreakdown": {
                      "idle": {
                        "stablecoins": 0,
                        "majors": 0,
                        "tokens": 357.97,
                        "total": 357.97
                      },
                      "deployed": {
                        "lending": 0,
                        "borrowing": 0,
                        "vaults": 0,
                        "staked": 0,
                        "total": 0
                      }
                    },
                    "meta": {
                      "lastUpdatedAt": 1717200000000,
                      "warnings": []
                    }
                  },
                  "request_id": "req_..."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          },
          "502": {
            "$ref": "#/components/responses/BadGateway"
          }
        },
        "x-mint": {
          "href": "/api-reference/portfolio/assets",
          "metadata": {
            "sidebarTitle": "Get Portfolio Assets"
          }
        }
      }
    },
    "/v1/portfolio/balance": {
      "get": {
        "tags": [
          "Portfolio"
        ],
        "operationId": "get_v1_portfolio_balance",
        "summary": "Get Portfolio Balance",
        "description": "Total USD value of a wallet, broken down by chain.\n\n**Credits:** 30 per successful call.",
        "parameters": [
          {
            "name": "wallet",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Wallet address.",
              "example": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495",
              "x-default": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/RequestId"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "type": "object",
                          "properties": {
                            "wallet": {
                              "type": "string"
                            },
                            "total_usd_value": {
                              "type": "number"
                            },
                            "chain_exposure": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "network": {
                                    "$ref": "#/components/schemas/Network"
                                  },
                                  "valueUSD": {
                                    "type": "number"
                                  },
                                  "percent": {
                                    "type": "number"
                                  }
                                },
                                "required": [
                                  "network",
                                  "valueUSD",
                                  "percent"
                                ]
                              }
                            }
                          },
                          "required": [
                            "wallet",
                            "total_usd_value",
                            "chain_exposure"
                          ]
                        }
                      },
                      "required": [
                        "data"
                      ]
                    }
                  ]
                },
                "example": {
                  "data": {
                    "wallet": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495",
                    "total_usd_value": 357.97,
                    "chain_exposure": [
                      {
                        "network": {
                          "chainId": 8453,
                          "name": "Base",
                          "slug": "base",
                          "iconUrl": null
                        },
                        "valueUSD": 357.97,
                        "percent": 100
                      }
                    ]
                  },
                  "request_id": "req_..."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          },
          "502": {
            "$ref": "#/components/responses/BadGateway"
          }
        },
        "x-mint": {
          "href": "/api-reference/portfolio/balance",
          "metadata": {
            "sidebarTitle": "Get Portfolio Balance"
          }
        }
      }
    },
    "/v1/snapshots/dates": {
      "get": {
        "tags": [
          "Snapshots"
        ],
        "operationId": "get_v1_snapshots_dates",
        "summary": "List Snapshot Dates",
        "description": "UTC days that have a stored portfolio snapshot for one EVM, Solana, or Bitcoin wallet, newest first.\n\n**Credits:** 1 per successful call.",
        "parameters": [
          {
            "name": "wallet",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Wallet address.",
              "example": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495",
              "x-default": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Page. Default: 1.",
              "default": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Maximum 366. Default: 100.",
              "default": 100,
              "maximum": 366
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/RequestId"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "dates": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "pagination": {
                          "$ref": "#/components/schemas/Pagination"
                        }
                      },
                      "required": [
                        "dates",
                        "pagination"
                      ]
                    }
                  ]
                },
                "example": {
                  "dates": [
                    "2026-10-08",
                    "2026-10-07"
                  ],
                  "pagination": {
                    "page": 1,
                    "limit": 100,
                    "total": 2,
                    "next_page": null,
                    "prev_page": null
                  },
                  "request_id": "req_..."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-mint": {
          "href": "/api-reference/snapshots/dates",
          "metadata": {
            "sidebarTitle": "List Snapshot Dates"
          }
        },
        "x-hidden": true
      }
    },
    "/v1/snapshots/wallet": {
      "get": {
        "tags": [
          "Snapshots"
        ],
        "operationId": "get_v1_snapshots_wallet",
        "summary": "Get Wallet Snapshot",
        "description": "Stored portfolio snapshot for one EVM, Solana, or Bitcoin wallet on a UTC day. data is null when that day has no row.\n\n**Credits:** 10 per successful call.",
        "parameters": [
          {
            "name": "wallet",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Wallet address.",
              "example": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495",
              "x-default": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495"
            }
          },
          {
            "name": "date",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Format `YYYY-MM-DD`.",
              "example": "2026-10-08",
              "x-default": "2026-10-08"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/RequestId"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "date": {
                          "type": "string"
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "portfolio": {
                              "type": "object",
                              "properties": {
                                "totalValueUSD": {
                                  "type": "number"
                                }
                              },
                              "required": [
                                "totalValueUSD"
                              ]
                            },
                            "tokenHoldings": {
                              "type": "object",
                              "properties": {
                                "totalValueUSD": {
                                  "type": "number"
                                },
                                "tokens": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "address": {
                                        "type": "string"
                                      },
                                      "symbol": {
                                        "type": "string"
                                      },
                                      "name": {
                                        "type": "string"
                                      },
                                      "iconUrl": {
                                        "type": "string",
                                        "nullable": true,
                                        "description": "Logo URL, or null when none is available."
                                      },
                                      "priceUSD": {
                                        "type": "number"
                                      },
                                      "balance": {
                                        "type": "number"
                                      },
                                      "balanceUSD": {
                                        "type": "number"
                                      },
                                      "portfolioPercent": {
                                        "type": "number"
                                      },
                                      "priceChange24hPercent": {
                                        "type": "number",
                                        "nullable": true,
                                        "description": "Percent price change over 24 hours, or null when the source has none."
                                      },
                                      "decimals": {
                                        "type": "integer"
                                      },
                                      "network": {
                                        "$ref": "#/components/schemas/Network"
                                      }
                                    },
                                    "required": [
                                      "address",
                                      "symbol",
                                      "name",
                                      "iconUrl",
                                      "priceUSD",
                                      "balance",
                                      "balanceUSD",
                                      "portfolioPercent",
                                      "priceChange24hPercent",
                                      "decimals",
                                      "network"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "totalValueUSD",
                                "tokens"
                              ]
                            },
                            "wallets": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "address": {
                                    "type": "string"
                                  },
                                  "totalValueUSD": {
                                    "type": "number"
                                  }
                                },
                                "required": [
                                  "address",
                                  "totalValueUSD"
                                ]
                              }
                            },
                            "dAppHoldings": {
                              "type": "array",
                              "items": {
                                "type": "object"
                              }
                            },
                            "chainExposure": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "network": {
                                    "$ref": "#/components/schemas/Network"
                                  },
                                  "valueUSD": {
                                    "type": "number"
                                  },
                                  "percent": {
                                    "type": "number"
                                  }
                                },
                                "required": [
                                  "network",
                                  "valueUSD",
                                  "percent"
                                ]
                              }
                            },
                            "allocationBreakdown": {
                              "type": "object",
                              "properties": {
                                "idle": {
                                  "type": "object",
                                  "properties": {
                                    "stablecoins": {
                                      "type": "number"
                                    },
                                    "majors": {
                                      "type": "number"
                                    },
                                    "tokens": {
                                      "type": "number"
                                    },
                                    "total": {
                                      "type": "number"
                                    }
                                  },
                                  "required": [
                                    "stablecoins",
                                    "majors",
                                    "tokens",
                                    "total"
                                  ]
                                },
                                "deployed": {
                                  "type": "object",
                                  "properties": {
                                    "lending": {
                                      "type": "number"
                                    },
                                    "borrowing": {
                                      "type": "number"
                                    },
                                    "vaults": {
                                      "type": "number"
                                    },
                                    "staked": {
                                      "type": "number"
                                    },
                                    "total": {
                                      "type": "number"
                                    }
                                  },
                                  "required": [
                                    "lending",
                                    "borrowing",
                                    "vaults",
                                    "staked",
                                    "total"
                                  ]
                                }
                              },
                              "required": [
                                "idle",
                                "deployed"
                              ]
                            },
                            "meta": {
                              "type": "object",
                              "properties": {
                                "lastUpdatedAt": {
                                  "type": "integer",
                                  "description": "Unix milliseconds when the portfolio provider last updated this wallet."
                                },
                                "warnings": {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  }
                                }
                              },
                              "required": [
                                "lastUpdatedAt",
                                "warnings"
                              ]
                            }
                          },
                          "required": [
                            "portfolio",
                            "tokenHoldings",
                            "wallets",
                            "dAppHoldings",
                            "chainExposure",
                            "allocationBreakdown",
                            "meta"
                          ],
                          "nullable": true,
                          "description": "Stored portfolio assets for that UTC day, or null when the day has no row."
                        }
                      },
                      "required": [
                        "date",
                        "data"
                      ]
                    }
                  ]
                },
                "example": {
                  "date": "2026-10-08",
                  "data": {
                    "portfolio": {
                      "totalValueUSD": 357.97
                    },
                    "tokenHoldings": {
                      "totalValueUSD": 357.97,
                      "tokens": [
                        {
                          "address": "0xtoken",
                          "symbol": "WAVAX(Wormhole)",
                          "name": "Wrapped AVAX",
                          "iconUrl": null,
                          "priceUSD": 6.608,
                          "balance": 54.172518,
                          "balanceUSD": 357.97,
                          "portfolioPercent": 100,
                          "priceChange24hPercent": null,
                          "decimals": 18,
                          "network": {
                            "chainId": 8453,
                            "name": "Base",
                            "slug": "base",
                            "iconUrl": null
                          }
                        }
                      ]
                    },
                    "wallets": [
                      {
                        "address": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495",
                        "totalValueUSD": 357.97
                      }
                    ],
                    "dAppHoldings": [],
                    "chainExposure": [
                      {
                        "network": {
                          "chainId": 8453,
                          "name": "Base",
                          "slug": "base",
                          "iconUrl": null
                        },
                        "valueUSD": 357.97,
                        "percent": 100
                      }
                    ],
                    "allocationBreakdown": {
                      "idle": {
                        "stablecoins": 0,
                        "majors": 0,
                        "tokens": 357.97,
                        "total": 357.97
                      },
                      "deployed": {
                        "lending": 0,
                        "borrowing": 0,
                        "vaults": 0,
                        "staked": 0,
                        "total": 0
                      }
                    },
                    "meta": {
                      "lastUpdatedAt": 1791417600000,
                      "warnings": []
                    }
                  },
                  "request_id": "req_..."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-mint": {
          "href": "/api-reference/snapshots/wallet",
          "metadata": {
            "sidebarTitle": "Get Wallet Snapshot"
          }
        },
        "x-hidden": true
      }
    },
    "/v1/positions/uniswapv3/batch": {
      "post": {
        "tags": [
          "Uniswap V3"
        ],
        "operationId": "post_v1_positions_uniswapv3_batch",
        "summary": "Batch Get Uniswap V3 Positions",
        "description": "Same as the list endpoint, multiple wallets in one POST. Returns the same shape as `?full=true` on the list endpoint, one array per wallet \u2014 for scanning many addresses at once.\n\n**Credits:** 12 per position returned on this page.",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Page. Default: 1.",
              "default": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Maximum 25. Default: 10.",
              "default": 10,
              "maximum": 25
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/RequestId"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "token_id": {
                                "type": "string"
                              },
                              "chain_id": {
                                "type": "integer"
                              },
                              "wallet": {
                                "type": "string"
                              },
                              "is_active": {
                                "type": "boolean"
                              },
                              "position": {
                                "type": "object",
                                "properties": {
                                  "positionData": {
                                    "type": "object",
                                    "properties": {
                                      "id": {
                                        "type": "string"
                                      },
                                      "owner": {
                                        "type": "string"
                                      },
                                      "tickLower": {
                                        "type": "string"
                                      },
                                      "tickUpper": {
                                        "type": "string"
                                      },
                                      "token0": {
                                        "type": "object",
                                        "properties": {
                                          "symbol": {
                                            "type": "string"
                                          }
                                        },
                                        "required": [
                                          "symbol"
                                        ]
                                      },
                                      "token1": {
                                        "type": "object",
                                        "properties": {
                                          "symbol": {
                                            "type": "string"
                                          }
                                        },
                                        "required": [
                                          "symbol"
                                        ]
                                      },
                                      "pool": {
                                        "type": "object",
                                        "properties": {
                                          "id": {
                                            "type": "string"
                                          },
                                          "feeTier": {
                                            "type": "string"
                                          }
                                        },
                                        "required": [
                                          "id",
                                          "feeTier"
                                        ]
                                      },
                                      "chain": {
                                        "type": "object",
                                        "properties": {
                                          "id": {
                                            "type": "number"
                                          }
                                        },
                                        "required": [
                                          "id"
                                        ]
                                      },
                                      "protocol": {
                                        "type": "object",
                                        "properties": {
                                          "code": {
                                            "type": "string"
                                          }
                                        },
                                        "required": [
                                          "code"
                                        ]
                                      },
                                      "managerAddress": {
                                        "type": "string"
                                      }
                                    },
                                    "required": [
                                      "id",
                                      "owner",
                                      "tickLower",
                                      "tickUpper",
                                      "token0",
                                      "token1",
                                      "pool",
                                      "chain",
                                      "protocol",
                                      "managerAddress"
                                    ]
                                  },
                                  "calculations": {
                                    "type": "object",
                                    "properties": {
                                      "inRange": {
                                        "type": "boolean",
                                        "description": "True when the pool price is inside the position tick range."
                                      },
                                      "positionUsdValue": {
                                        "type": "string",
                                        "description": "USD string. Token principal plus unclaimed fees and rewards."
                                      },
                                      "isClosed": {
                                        "type": "boolean",
                                        "description": "True when the position liquidity is zero."
                                      }
                                    },
                                    "required": [
                                      "inRange",
                                      "positionUsdValue",
                                      "isClosed"
                                    ]
                                  }
                                },
                                "required": [
                                  "positionData",
                                  "calculations"
                                ]
                              }
                            },
                            "required": [
                              "token_id",
                              "chain_id",
                              "wallet",
                              "is_active",
                              "position"
                            ]
                          }
                        },
                        "pagination": {
                          "$ref": "#/components/schemas/Pagination"
                        },
                        "counts": {
                          "type": "object",
                          "properties": {
                            "totalActive": {
                              "type": "number"
                            },
                            "totalInactive": {
                              "type": "number"
                            },
                            "total": {
                              "type": "number"
                            },
                            "filtered": {
                              "type": "number"
                            },
                            "errors": {
                              "type": "number"
                            },
                            "spams": {
                              "type": "array",
                              "items": {
                                "type": "object"
                              }
                            }
                          },
                          "required": [
                            "totalActive",
                            "totalInactive",
                            "total",
                            "filtered",
                            "errors",
                            "spams"
                          ]
                        }
                      },
                      "required": [
                        "data",
                        "pagination",
                        "counts"
                      ]
                    }
                  ]
                },
                "example": {
                  "data": [
                    {
                      "token_id": "119128",
                      "chain_id": 130,
                      "wallet": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495",
                      "is_active": true,
                      "position": {
                        "positionData": {
                          "id": "119128",
                          "owner": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495",
                          "tickLower": "233160",
                          "tickUpper": "236220",
                          "token0": {
                            "symbol": "USDC"
                          },
                          "token1": {
                            "symbol": "HYPE"
                          },
                          "pool": {
                            "id": "0xpool",
                            "feeTier": "3000"
                          },
                          "chain": {
                            "id": 130
                          },
                          "protocol": {
                            "code": "uniswapV3"
                          },
                          "managerAddress": "0x943e6e07a7e8e791dafc44083e54041d743c46e9"
                        },
                        "calculations": {
                          "inRange": true,
                          "positionUsdValue": "1482.71",
                          "isClosed": false
                        }
                      }
                    }
                  ],
                  "pagination": {
                    "page": 1,
                    "limit": 10,
                    "total": 1,
                    "next_page": null,
                    "prev_page": null
                  },
                  "counts": {
                    "totalActive": 1,
                    "totalInactive": 12,
                    "total": 13,
                    "filtered": 1,
                    "errors": 0,
                    "spams": []
                  },
                  "request_id": "req_..."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-mint": {
          "href": "/api-reference/uniswap-v3/batch",
          "metadata": {
            "sidebarTitle": "Batch Get Uniswap V3 Positions"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "wallets": {
                    "type": "array",
                    "description": "Wallet addresses (comma-separated in the explorer; JSON array in the request body).",
                    "items": {
                      "type": "string"
                    },
                    "example": [
                      "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495"
                    ],
                    "x-default": [
                      "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495"
                    ]
                  },
                  "chain_id": {
                    "type": "integer",
                    "description": "Chain ID."
                  }
                },
                "required": [
                  "wallets"
                ]
              },
              "example": {
                "wallets": [
                  "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495"
                ]
              }
            }
          }
        }
      }
    },
    "/v1/positions/uniswapv3/{id}/events": {
      "get": {
        "tags": [
          "Uniswap V3"
        ],
        "operationId": "get_v1_positions_uniswapv3_id_events",
        "summary": "Get Position Events",
        "description": "Position history for one LP position: deposits (IncreaseLiquidity), withdrawals (DecreaseLiquidity), fee collections, and compounds (Collect). Each event has token amounts, token prices at the transaction (token0PriceUSD, token1PriceUSD), timestamp, and transaction_hash. USD value is amount times that price; it is not a stored field. The first deposit is the mint. An empty compounds list is omitted.\n\n**Credits:** 1 per successful call.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Token ID.",
              "example": "119128",
              "x-default": "119128"
            }
          },
          {
            "name": "chain_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Chain ID.",
              "example": 130,
              "x-default": 130
            }
          },
          {
            "name": "manager_address",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Manager address."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/RequestId"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "type": "object",
                          "properties": {
                            "token_id": {
                              "type": "string"
                            },
                            "chain_id": {
                              "type": "integer"
                            },
                            "deposits": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "amount0": {
                                    "type": "string",
                                    "description": "Token amount as a decimal string."
                                  },
                                  "amount1": {
                                    "type": "string",
                                    "description": "Token amount as a decimal string."
                                  },
                                  "token0PriceUSD": {
                                    "type": "string",
                                    "description": "USD price of token0 at the transaction."
                                  },
                                  "token1PriceUSD": {
                                    "type": "string",
                                    "description": "USD price of token1 at the transaction."
                                  },
                                  "timestamp": {
                                    "type": "number",
                                    "description": "Unix seconds."
                                  },
                                  "block": {
                                    "type": "integer"
                                  },
                                  "transaction_hash": {
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "amount0",
                                  "amount1",
                                  "token0PriceUSD",
                                  "token1PriceUSD",
                                  "timestamp",
                                  "block",
                                  "transaction_hash"
                                ]
                              }
                            },
                            "withdrawals": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "amount0": {
                                    "type": "string",
                                    "description": "Token amount as a decimal string."
                                  },
                                  "amount1": {
                                    "type": "string",
                                    "description": "Token amount as a decimal string."
                                  },
                                  "token0PriceUSD": {
                                    "type": "string",
                                    "description": "USD price of token0 at the transaction."
                                  },
                                  "token1PriceUSD": {
                                    "type": "string",
                                    "description": "USD price of token1 at the transaction."
                                  },
                                  "timestamp": {
                                    "type": "number",
                                    "description": "Unix seconds."
                                  },
                                  "block": {
                                    "type": "integer"
                                  },
                                  "transaction_hash": {
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "amount0",
                                  "amount1",
                                  "token0PriceUSD",
                                  "token1PriceUSD",
                                  "timestamp",
                                  "block",
                                  "transaction_hash"
                                ]
                              }
                            },
                            "collections": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "amount0": {
                                    "type": "string",
                                    "description": "Token amount as a decimal string."
                                  },
                                  "amount1": {
                                    "type": "string",
                                    "description": "Token amount as a decimal string."
                                  },
                                  "token0PriceUSD": {
                                    "type": "string",
                                    "description": "USD price of token0 at the transaction."
                                  },
                                  "token1PriceUSD": {
                                    "type": "string",
                                    "description": "USD price of token1 at the transaction."
                                  },
                                  "timestamp": {
                                    "type": "number",
                                    "description": "Unix seconds."
                                  },
                                  "block": {
                                    "type": "integer"
                                  },
                                  "transaction_hash": {
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "amount0",
                                  "amount1",
                                  "token0PriceUSD",
                                  "token1PriceUSD",
                                  "timestamp",
                                  "block",
                                  "transaction_hash"
                                ]
                              }
                            }
                          },
                          "required": [
                            "token_id",
                            "chain_id",
                            "deposits",
                            "withdrawals",
                            "collections"
                          ]
                        }
                      },
                      "required": [
                        "data"
                      ]
                    }
                  ]
                },
                "example": {
                  "data": {
                    "token_id": "119128",
                    "chain_id": 130,
                    "deposits": [
                      {
                        "amount0": "378.12",
                        "amount1": "15.88",
                        "token0PriceUSD": "1.00",
                        "token1PriceUSD": "60.04",
                        "timestamp": 1717200000,
                        "block": 18000000,
                        "transaction_hash": "0xabc"
                      }
                    ],
                    "withdrawals": [],
                    "collections": []
                  },
                  "request_id": "req_..."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-mint": {
          "href": "/api-reference/uniswap-v3/events",
          "metadata": {
            "sidebarTitle": "Get Position Events"
          }
        }
      }
    },
    "/v1/positions/uniswapv3/{id}/full": {
      "get": {
        "tags": [
          "Uniswap V3"
        ],
        "operationId": "get_v1_positions_uniswapv3_id_full",
        "summary": "Get Full Position Detail",
        "description": "Everything: state, full event history, PnL, impermanent loss, fee accrual, and APR \u2014 the \"give me all of it\" endpoint. The heaviest-weight endpoint in the catalog \u2014 reach for `pnl`, `yield`, or `snapshot` if you don't need the whole payload.\n\n**Credits:** 15 per successful call.\n\nThese queries have their own credit cost.\n\n| Query | Credits |\n| --- | --- |\n| `status=inactive` | 7 |",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Token ID.",
              "example": "119128",
              "x-default": "119128"
            }
          },
          {
            "name": "chain_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Chain ID.",
              "example": 130,
              "x-default": 130
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "inactive"
              ],
              "description": "Omit for active positions. Set to `inactive` for closed positions. Default: active."
            }
          },
          {
            "name": "manager_address",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Manager address."
            }
          },
          {
            "name": "granularity",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Comma-separated: `hourly`, `daily`, `weekly`, `monthly`, `yearly`."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/RequestId"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "type": "object",
                          "properties": {
                            "positionData": {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string"
                                },
                                "owner": {
                                  "type": "string"
                                },
                                "liquidity": {
                                  "type": "string"
                                },
                                "tickLower": {
                                  "type": "string"
                                },
                                "tickUpper": {
                                  "type": "string"
                                },
                                "token0": {
                                  "type": "object",
                                  "properties": {
                                    "id": {
                                      "type": "string"
                                    },
                                    "symbol": {
                                      "type": "string"
                                    },
                                    "decimals": {
                                      "type": "integer"
                                    },
                                    "name": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "id",
                                    "symbol",
                                    "decimals",
                                    "name"
                                  ]
                                },
                                "token1": {
                                  "type": "object",
                                  "properties": {
                                    "id": {
                                      "type": "string"
                                    },
                                    "symbol": {
                                      "type": "string"
                                    },
                                    "decimals": {
                                      "type": "integer"
                                    },
                                    "name": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "id",
                                    "symbol",
                                    "decimals",
                                    "name"
                                  ]
                                },
                                "pool": {
                                  "type": "object",
                                  "properties": {
                                    "id": {
                                      "type": "string"
                                    },
                                    "feeTier": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "id",
                                    "feeTier"
                                  ]
                                },
                                "chain": {
                                  "type": "object",
                                  "properties": {
                                    "id": {
                                      "type": "number"
                                    }
                                  },
                                  "required": [
                                    "id"
                                  ]
                                },
                                "protocol": {
                                  "type": "object",
                                  "properties": {
                                    "code": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "code"
                                  ]
                                },
                                "managerAddress": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "id",
                                "owner",
                                "liquidity",
                                "tickLower",
                                "tickUpper",
                                "token0",
                                "token1",
                                "pool",
                                "chain",
                                "protocol",
                                "managerAddress"
                              ]
                            },
                            "calculations": {
                              "type": "object",
                              "properties": {
                                "inRange": {
                                  "type": "boolean",
                                  "description": "True when the pool price is inside the position tick range."
                                },
                                "isClosed": {
                                  "type": "boolean",
                                  "description": "True when the position liquidity is zero."
                                },
                                "positionUsdValue": {
                                  "type": "string",
                                  "description": "USD string. Token principal plus unclaimed fees and rewards."
                                },
                                "pnlUsdValue": {
                                  "type": "string",
                                  "description": "USD string. Current position value, plus withdrawals, plus claimed fees and rewards, minus capital deposited."
                                },
                                "pnlPercentage": {
                                  "type": "string",
                                  "description": "Percent string. PnL divided by net invested capital. 0 when net invested is not positive."
                                },
                                "netImpermanentLossPercentage": {
                                  "type": "string",
                                  "description": "Percent string of net impermanent loss over the value of net deposited tokens."
                                },
                                "positionAgeInDays": {
                                  "type": "number"
                                },
                                "earnedAprPercentage": {
                                  "type": "object",
                                  "properties": {
                                    "yield": {
                                      "type": "string",
                                      "description": "Percent string for that component."
                                    },
                                    "fees": {
                                      "type": "string",
                                      "description": "Percent string for that component."
                                    },
                                    "rewards": {
                                      "type": "string",
                                      "description": "Percent string for that component."
                                    }
                                  },
                                  "required": [
                                    "yield",
                                    "fees",
                                    "rewards"
                                  ],
                                  "description": "Simple APR percent strings, not compounded. Each figure is value \u00d7 365 / days / time-weighted capital. Days are at least 1 hour."
                                }
                              },
                              "required": [
                                "inRange",
                                "isClosed",
                                "positionUsdValue",
                                "pnlUsdValue",
                                "pnlPercentage",
                                "netImpermanentLossPercentage",
                                "positionAgeInDays",
                                "earnedAprPercentage"
                              ]
                            }
                          },
                          "required": [
                            "positionData",
                            "calculations"
                          ]
                        }
                      },
                      "required": [
                        "data"
                      ]
                    }
                  ]
                },
                "example": {
                  "data": {
                    "positionData": {
                      "id": "119128",
                      "owner": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495",
                      "liquidity": "1175583669061921",
                      "tickLower": "233160",
                      "tickUpper": "236220",
                      "token0": {
                        "id": "0xusdc",
                        "symbol": "USDC",
                        "decimals": 6,
                        "name": "USD Coin"
                      },
                      "token1": {
                        "id": "0xhype",
                        "symbol": "HYPE",
                        "decimals": 18,
                        "name": "HYPE"
                      },
                      "pool": {
                        "id": "0xpool",
                        "feeTier": "3000"
                      },
                      "chain": {
                        "id": 130
                      },
                      "protocol": {
                        "code": "uniswapV3"
                      },
                      "managerAddress": "0x943e6e07a7e8e791dafc44083e54041d743c46e9"
                    },
                    "calculations": {
                      "inRange": true,
                      "isClosed": false,
                      "positionUsdValue": "1482.71",
                      "pnlUsdValue": "150.88",
                      "pnlPercentage": "11.33",
                      "netImpermanentLossPercentage": "-0.66",
                      "positionAgeInDays": 33.16,
                      "earnedAprPercentage": {
                        "yield": "41.23",
                        "fees": "41.23",
                        "rewards": "0"
                      }
                    }
                  },
                  "request_id": "req_..."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          }
        },
        "x-mint": {
          "href": "/api-reference/uniswap-v3/full",
          "metadata": {
            "sidebarTitle": "Get Full Position Detail"
          }
        }
      }
    },
    "/v1/positions/uniswapv3/{id}": {
      "get": {
        "tags": [
          "Uniswap V3"
        ],
        "operationId": "get_v1_positions_uniswapv3_id",
        "summary": "Get Uniswap V3 Position",
        "description": "Raw on-chain state for a single position: ticks, pool, tokens, liquidity.\n\n**Credits:** 2 per successful call.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Token ID.",
              "example": "119128",
              "x-default": "119128"
            }
          },
          {
            "name": "chain_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Chain ID.",
              "example": 130,
              "x-default": 130
            }
          },
          {
            "name": "manager_address",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Manager address."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/RequestId"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "type": "object",
                          "properties": {
                            "token_id": {
                              "type": "string"
                            },
                            "chain_id": {
                              "type": "integer"
                            },
                            "wallet": {
                              "type": "string"
                            },
                            "is_active": {
                              "type": "boolean"
                            },
                            "position_state": {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string"
                                },
                                "owner": {
                                  "type": "string"
                                },
                                "liquidity": {
                                  "type": "string"
                                },
                                "tickLower": {
                                  "type": "string"
                                },
                                "tickUpper": {
                                  "type": "string"
                                },
                                "token0": {
                                  "type": "object",
                                  "properties": {
                                    "id": {
                                      "type": "string"
                                    },
                                    "symbol": {
                                      "type": "string"
                                    },
                                    "decimals": {
                                      "type": "integer"
                                    },
                                    "name": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "id",
                                    "symbol",
                                    "decimals",
                                    "name"
                                  ]
                                },
                                "token1": {
                                  "type": "object",
                                  "properties": {
                                    "id": {
                                      "type": "string"
                                    },
                                    "symbol": {
                                      "type": "string"
                                    },
                                    "decimals": {
                                      "type": "integer"
                                    },
                                    "name": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "id",
                                    "symbol",
                                    "decimals",
                                    "name"
                                  ]
                                },
                                "pool": {
                                  "type": "object",
                                  "properties": {
                                    "id": {
                                      "type": "string"
                                    },
                                    "tick": {
                                      "type": "string"
                                    },
                                    "sqrtPrice": {
                                      "type": "string"
                                    },
                                    "feeTier": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "id",
                                    "tick",
                                    "sqrtPrice",
                                    "feeTier"
                                  ]
                                },
                                "chain": {
                                  "type": "object",
                                  "properties": {
                                    "id": {
                                      "type": "number"
                                    }
                                  },
                                  "required": [
                                    "id"
                                  ]
                                },
                                "protocol": {
                                  "type": "object",
                                  "properties": {
                                    "code": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "code"
                                  ]
                                }
                              },
                              "required": [
                                "id",
                                "owner",
                                "liquidity",
                                "tickLower",
                                "tickUpper",
                                "token0",
                                "token1",
                                "pool",
                                "chain",
                                "protocol"
                              ]
                            }
                          },
                          "required": [
                            "token_id",
                            "chain_id",
                            "wallet",
                            "is_active",
                            "position_state"
                          ]
                        }
                      },
                      "required": [
                        "data"
                      ]
                    }
                  ]
                },
                "example": {
                  "data": {
                    "token_id": "119128",
                    "chain_id": 130,
                    "wallet": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495",
                    "is_active": true,
                    "position_state": {
                      "id": "119128",
                      "owner": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495",
                      "liquidity": "1175583669061921",
                      "tickLower": "233160",
                      "tickUpper": "236220",
                      "token0": {
                        "id": "0xusdc",
                        "symbol": "USDC",
                        "decimals": 6,
                        "name": "USD Coin"
                      },
                      "token1": {
                        "id": "0xhype",
                        "symbol": "HYPE",
                        "decimals": 18,
                        "name": "HYPE"
                      },
                      "pool": {
                        "id": "0xpool",
                        "tick": "233813",
                        "sqrtPrice": "1",
                        "feeTier": "3000"
                      },
                      "chain": {
                        "id": 130
                      },
                      "protocol": {
                        "code": "uniswapV3"
                      }
                    }
                  },
                  "request_id": "req_..."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-mint": {
          "href": "/api-reference/uniswap-v3/get",
          "metadata": {
            "sidebarTitle": "Get Uniswap V3 Position"
          }
        }
      }
    },
    "/v1/positions/uniswapv3": {
      "get": {
        "tags": [
          "Uniswap V3"
        ],
        "operationId": "get_v1_positions_uniswapv3",
        "summary": "List Uniswap V3 Positions",
        "description": "All active LP positions for a wallet. A live USDC/HYPE LP on Unichain (chain 130) is a good real example \u2014 this wallet also has 12 closed positions across Optimism, Arbitrum, and Ethereum mainnet, visible with `status=inactive`.\n\n**Credits:** 2 per position returned on this page.\n\nThese queries have their own credit cost.\n\n| Query | Credits per returned position |\n| --- | --- |\n| `status=inactive` | 1 |\n| `full=true` | 15 |",
        "parameters": [
          {
            "name": "wallet",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Wallet address.",
              "example": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495",
              "x-default": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495"
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "inactive"
              ],
              "description": "Omit for active positions. Set to `inactive` for closed positions. Default: active."
            }
          },
          {
            "name": "full",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "description": "Boolean. Include `full=true` for the detailed payload. Omit otherwise. On list endpoints this returns active positions only."
            }
          },
          {
            "name": "chain_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Chain ID."
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Page. Default: 1.",
              "default": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Maximum 25. Default: 10.",
              "default": 10,
              "maximum": 25
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/RequestId"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "token_id": {
                                "type": "string"
                              },
                              "chain_id": {
                                "type": "integer"
                              },
                              "manager_address": {
                                "type": "string"
                              },
                              "wallet": {
                                "type": "string"
                              },
                              "is_active": {
                                "type": "boolean"
                              },
                              "position_state": {
                                "type": "object",
                                "properties": {
                                  "id": {
                                    "type": "string"
                                  },
                                  "owner": {
                                    "type": "string"
                                  },
                                  "liquidity": {
                                    "type": "string"
                                  },
                                  "tickLower": {
                                    "type": "string"
                                  },
                                  "tickUpper": {
                                    "type": "string"
                                  },
                                  "token0": {
                                    "type": "object",
                                    "properties": {
                                      "id": {
                                        "type": "string"
                                      },
                                      "symbol": {
                                        "type": "string"
                                      },
                                      "decimals": {
                                        "type": "integer"
                                      },
                                      "name": {
                                        "type": "string"
                                      }
                                    },
                                    "required": [
                                      "id",
                                      "symbol",
                                      "decimals",
                                      "name"
                                    ]
                                  },
                                  "token1": {
                                    "type": "object",
                                    "properties": {
                                      "id": {
                                        "type": "string"
                                      },
                                      "symbol": {
                                        "type": "string"
                                      },
                                      "decimals": {
                                        "type": "integer"
                                      },
                                      "name": {
                                        "type": "string"
                                      }
                                    },
                                    "required": [
                                      "id",
                                      "symbol",
                                      "decimals",
                                      "name"
                                    ]
                                  },
                                  "pool": {
                                    "type": "object",
                                    "properties": {
                                      "id": {
                                        "type": "string"
                                      },
                                      "tick": {
                                        "type": "string"
                                      },
                                      "feeTier": {
                                        "type": "string"
                                      }
                                    },
                                    "required": [
                                      "id",
                                      "tick",
                                      "feeTier"
                                    ]
                                  },
                                  "chain": {
                                    "type": "object",
                                    "properties": {
                                      "id": {
                                        "type": "number"
                                      }
                                    },
                                    "required": [
                                      "id"
                                    ]
                                  },
                                  "protocol": {
                                    "type": "object",
                                    "properties": {
                                      "code": {
                                        "type": "string"
                                      }
                                    },
                                    "required": [
                                      "code"
                                    ]
                                  }
                                },
                                "required": [
                                  "id",
                                  "owner",
                                  "liquidity",
                                  "tickLower",
                                  "tickUpper",
                                  "token0",
                                  "token1",
                                  "pool",
                                  "chain",
                                  "protocol"
                                ]
                              }
                            },
                            "required": [
                              "token_id",
                              "chain_id",
                              "manager_address",
                              "wallet",
                              "is_active",
                              "position_state"
                            ]
                          }
                        },
                        "pagination": {
                          "$ref": "#/components/schemas/Pagination"
                        },
                        "counts": {
                          "type": "object",
                          "properties": {
                            "totalActive": {
                              "type": "number"
                            },
                            "totalInactive": {
                              "type": "number"
                            },
                            "total": {
                              "type": "number"
                            },
                            "filtered": {
                              "type": "number"
                            },
                            "errors": {
                              "type": "number"
                            },
                            "spams": {
                              "type": "array",
                              "items": {
                                "type": "object"
                              }
                            }
                          },
                          "required": [
                            "totalActive",
                            "totalInactive",
                            "total",
                            "filtered",
                            "errors",
                            "spams"
                          ]
                        }
                      },
                      "required": [
                        "data",
                        "pagination",
                        "counts"
                      ]
                    }
                  ]
                },
                "example": {
                  "data": [
                    {
                      "token_id": "119128",
                      "chain_id": 130,
                      "manager_address": "0x943e6e07a7e8e791dafc44083e54041d743c46e9",
                      "wallet": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495",
                      "is_active": true,
                      "position_state": {
                        "id": "119128",
                        "owner": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495",
                        "liquidity": "1175583669061921",
                        "tickLower": "233160",
                        "tickUpper": "236220",
                        "token0": {
                          "id": "0xusdc",
                          "symbol": "USDC",
                          "decimals": 6,
                          "name": "USD Coin"
                        },
                        "token1": {
                          "id": "0xhype",
                          "symbol": "HYPE",
                          "decimals": 18,
                          "name": "HYPE"
                        },
                        "pool": {
                          "id": "0xpool",
                          "tick": "233813",
                          "feeTier": "3000"
                        },
                        "chain": {
                          "id": 130
                        },
                        "protocol": {
                          "code": "uniswapV3"
                        }
                      }
                    }
                  ],
                  "pagination": {
                    "page": 1,
                    "limit": 10,
                    "total": 1,
                    "next_page": null,
                    "prev_page": null
                  },
                  "counts": {
                    "totalActive": 1,
                    "totalInactive": 12,
                    "total": 13,
                    "filtered": 1,
                    "errors": 0,
                    "spams": []
                  },
                  "request_id": "req_..."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-mint": {
          "href": "/api-reference/uniswap-v3/list",
          "metadata": {
            "sidebarTitle": "List Uniswap V3 Positions"
          }
        }
      }
    },
    "/v1/positions/uniswapv3/{id}/pnl": {
      "get": {
        "tags": [
          "Uniswap V3"
        ],
        "operationId": "get_v1_positions_uniswapv3_id_pnl",
        "summary": "Get Position PnL",
        "description": "Just the profit/loss numbers, pulled out of the `full` payload.\n\n**Credits:** 8 per successful call.\n\nThese queries have their own credit cost.\n\n| Query | Credits |\n| --- | --- |\n| `status=inactive` | 4 |",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Token ID.",
              "example": "119128",
              "x-default": "119128"
            }
          },
          {
            "name": "chain_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Chain ID.",
              "example": 130,
              "x-default": 130
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "inactive"
              ],
              "description": "Omit for active positions. Set to `inactive` for closed positions. Default: active."
            }
          },
          {
            "name": "manager_address",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Manager address."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/RequestId"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "type": "object",
                          "properties": {
                            "token_id": {
                              "type": "string"
                            },
                            "chain_id": {
                              "type": "integer"
                            },
                            "pnl_usd_value": {
                              "type": "string",
                              "description": "USD string. Current position value, plus withdrawals, plus claimed fees and rewards, minus capital deposited."
                            },
                            "pnl_percentage": {
                              "type": "string",
                              "description": "Percent string. PnL divided by net invested capital. 0 when net invested is not positive."
                            },
                            "time_weighted_average_capital": {
                              "type": "string",
                              "description": "USD string. Capital weighted by how long each deposit or withdrawal was open. Compounds are not new capital."
                            },
                            "hodl_gross_benchmark_usd_value": {
                              "type": "string",
                              "description": "USD string. Deposited token amounts at the current price. Withdrawals are not subtracted."
                            },
                            "alpha_vs_hodl_gross_usd_value": {
                              "type": "string",
                              "description": "USD string. Remaining value plus withdrawals plus claimed yield, minus the HODL gross benchmark."
                            },
                            "alpha_vs_hodl_gross_percentage": {
                              "type": "string",
                              "description": "Percent string of that alpha over the HODL gross benchmark. 0 when the benchmark is not positive."
                            },
                            "net_impermanent_loss": {
                              "type": "string",
                              "description": "USD string. Current position value, including unclaimed yield, minus net deposited tokens at the current price."
                            },
                            "net_impermanent_loss_percentage": {
                              "type": "string",
                              "description": "Percent string of net impermanent loss over the value of net deposited tokens."
                            },
                            "pure_impermanent_loss": {
                              "type": "string",
                              "description": "USD string. Current token principal minus net deposited tokens at the current price. Fees and rewards are excluded."
                            },
                            "pure_impermanent_loss_percentage": {
                              "type": "string",
                              "description": "Percent string of pure impermanent loss over the value of net deposited tokens."
                            },
                            "market_pnl_usd_value": {
                              "type": "string",
                              "description": "USD string. HODL gross benchmark minus capital deposited."
                            },
                            "lp_divergence_pnl_usd_value": {
                              "type": "string",
                              "description": "USD string. Alpha versus HODL, minus total fees and rewards."
                            },
                            "realized_usd_value": {
                              "type": "string",
                              "description": "USD string. Withdrawals plus claimed fees and rewards."
                            },
                            "unrealized_usd_value": {
                              "type": "string",
                              "description": "USD string. Current position value, including unclaimed fees and rewards."
                            },
                            "is_closed": {
                              "type": "boolean",
                              "description": "True when the position liquidity is zero."
                            }
                          },
                          "required": [
                            "token_id",
                            "chain_id",
                            "pnl_usd_value",
                            "pnl_percentage",
                            "time_weighted_average_capital",
                            "hodl_gross_benchmark_usd_value",
                            "alpha_vs_hodl_gross_usd_value",
                            "alpha_vs_hodl_gross_percentage",
                            "net_impermanent_loss",
                            "net_impermanent_loss_percentage",
                            "pure_impermanent_loss",
                            "pure_impermanent_loss_percentage",
                            "market_pnl_usd_value",
                            "lp_divergence_pnl_usd_value",
                            "realized_usd_value",
                            "unrealized_usd_value",
                            "is_closed"
                          ]
                        }
                      },
                      "required": [
                        "data"
                      ]
                    }
                  ]
                },
                "example": {
                  "data": {
                    "token_id": "119128",
                    "chain_id": 130,
                    "pnl_usd_value": "150.88",
                    "pnl_percentage": "11.33",
                    "time_weighted_average_capital": "1331.83",
                    "hodl_gross_benchmark_usd_value": "1492.63",
                    "alpha_vs_hodl_gross_usd_value": "-9.92",
                    "alpha_vs_hodl_gross_percentage": "-0.66",
                    "net_impermanent_loss": "-9.92",
                    "net_impermanent_loss_percentage": "-0.66",
                    "pure_impermanent_loss": "-9.92",
                    "pure_impermanent_loss_percentage": "-0.66",
                    "market_pnl_usd_value": "160.80",
                    "lp_divergence_pnl_usd_value": "-9.92",
                    "realized_usd_value": "0",
                    "unrealized_usd_value": "1482.71",
                    "is_closed": false
                  },
                  "request_id": "req_..."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-mint": {
          "href": "/api-reference/uniswap-v3/pnl",
          "metadata": {
            "sidebarTitle": "Get Position PnL"
          }
        }
      }
    },
    "/v1/positions/uniswapv3/{id}/snapshot": {
      "get": {
        "tags": [
          "Uniswap V3"
        ],
        "operationId": "get_v1_positions_uniswapv3_id_snapshot",
        "summary": "Get Position Snapshot",
        "description": "A one-shot health check: current value, in/out of range, PnL, and APR. Not the daily history chart \u2014 use GET /:id/snapshots for historical performance.\n\n**Credits:** 5 per successful call.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Token ID.",
              "example": "119128",
              "x-default": "119128"
            }
          },
          {
            "name": "chain_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Chain ID.",
              "example": 130,
              "x-default": 130
            }
          },
          {
            "name": "manager_address",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Manager address."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/RequestId"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "type": "object",
                          "properties": {
                            "token_id": {
                              "type": "string"
                            },
                            "chain_id": {
                              "type": "integer"
                            },
                            "position_usd_value": {
                              "type": "string",
                              "description": "USD string. Token principal plus unclaimed fees and rewards."
                            },
                            "in_range": {
                              "type": "boolean",
                              "description": "True when the pool price is inside the position tick range."
                            },
                            "is_closed": {
                              "type": "boolean",
                              "description": "True when the position liquidity is zero."
                            },
                            "pnl_usd_value": {
                              "type": "string",
                              "description": "USD string. Current position value, plus withdrawals, plus claimed fees and rewards, minus capital deposited."
                            },
                            "pnl_percentage": {
                              "type": "string",
                              "description": "Percent string. PnL divided by net invested capital. 0 when net invested is not positive."
                            },
                            "earned_apr_percentage": {
                              "type": "object",
                              "properties": {
                                "yield": {
                                  "type": "string",
                                  "description": "Percent string for that component."
                                },
                                "fees": {
                                  "type": "string",
                                  "description": "Percent string for that component."
                                },
                                "rewards": {
                                  "type": "string",
                                  "description": "Percent string for that component."
                                }
                              },
                              "required": [
                                "yield",
                                "fees",
                                "rewards"
                              ],
                              "description": "Simple APR percent strings, not compounded. Each figure is value \u00d7 365 / days / time-weighted capital. Days are at least 1 hour."
                            }
                          },
                          "required": [
                            "token_id",
                            "chain_id",
                            "position_usd_value",
                            "in_range",
                            "is_closed",
                            "pnl_usd_value",
                            "pnl_percentage",
                            "earned_apr_percentage"
                          ]
                        }
                      },
                      "required": [
                        "data"
                      ]
                    }
                  ]
                },
                "example": {
                  "data": {
                    "token_id": "119128",
                    "chain_id": 130,
                    "position_usd_value": "1482.71",
                    "in_range": true,
                    "is_closed": false,
                    "pnl_usd_value": "150.88",
                    "pnl_percentage": "11.33",
                    "earned_apr_percentage": {
                      "yield": "41.23",
                      "fees": "41.23",
                      "rewards": "0"
                    }
                  },
                  "request_id": "req_..."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-mint": {
          "href": "/api-reference/uniswap-v3/snapshot",
          "metadata": {
            "sidebarTitle": "Get Position Snapshot"
          }
        }
      }
    },
    "/v1/positions/uniswapv3/{id}/snapshots": {
      "get": {
        "tags": [
          "Uniswap V3"
        ],
        "operationId": "get_v1_positions_uniswapv3_id_snapshots",
        "summary": "Get Position Historical Performance",
        "description": "Daily history chart for one LP position: mint genesis point, then one row per UTC day. rewards is 0 (Uniswap has no reward token). This is not the current health check \u2014 that is GET /:id/snapshot.\n\n**Credits:** 2 per successful call.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Token ID.",
              "example": "119128",
              "x-default": "119128"
            }
          },
          {
            "name": "chain_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Chain ID.",
              "example": 130,
              "x-default": 130
            }
          },
          {
            "name": "manager_address",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Manager address."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/RequestId"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "timestamp": {
                                "type": "number",
                                "description": "Unix seconds."
                              },
                              "position_usd_value": {
                                "type": "string",
                                "description": "USD string. Token principal plus unclaimed fees and rewards."
                              },
                              "fees_usd": {
                                "type": "string",
                                "description": "USD string of total fees on that day's snapshot."
                              },
                              "rewards": {
                                "type": "string",
                                "description": "USD string of rewards earned through that day. 0 when the position has no rewards."
                              },
                              "apr": {
                                "type": "string",
                                "description": "Yearly in-range fee APR percent string for that day. 0 when the figure is missing."
                              }
                            },
                            "required": [
                              "timestamp",
                              "position_usd_value",
                              "fees_usd",
                              "rewards",
                              "apr"
                            ]
                          }
                        }
                      },
                      "required": [
                        "data"
                      ]
                    }
                  ]
                },
                "example": {
                  "data": [
                    {
                      "timestamp": 1717200000,
                      "position_usd_value": "1482.71",
                      "fees_usd": "12.40",
                      "rewards": "0",
                      "apr": "41.23"
                    }
                  ],
                  "request_id": "req_..."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-mint": {
          "href": "/api-reference/uniswap-v3/snapshots",
          "metadata": {
            "sidebarTitle": "Get Position Historical Performance"
          }
        }
      }
    },
    "/v1/positions/uniswapv3/summary": {
      "get": {
        "tags": [
          "Uniswap V3"
        ],
        "operationId": "get_v1_positions_uniswapv3_summary",
        "summary": "Get Uniswap V3 Summary",
        "description": "Wallet-level counts only \u2014 active vs. inactive positions.\n\n**Credits:** 1 per successful call.",
        "parameters": [
          {
            "name": "wallet",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Wallet address.",
              "example": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495",
              "x-default": "0xbf7620d0377b0660a6cbaef5cdfe2e00eddc1495"
            }
          },
          {
            "name": "chain_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Chain ID."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/RequestId"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "type": "object",
                          "properties": {
                            "total": {
                              "type": "number"
                            },
                            "total_active": {
                              "type": "number"
                            },
                            "total_inactive": {
                              "type": "number"
                            }
                          },
                          "required": [
                            "total",
                            "total_active",
                            "total_inactive"
                          ]
                        }
                      },
                      "required": [
                        "data"
                      ]
                    }
                  ]
                },
                "example": {
                  "data": {
                    "total": 13,
                    "total_active": 1,
                    "total_inactive": 12
                  },
                  "request_id": "req_..."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-mint": {
          "href": "/api-reference/uniswap-v3/summary",
          "metadata": {
            "sidebarTitle": "Get Uniswap V3 Summary"
          }
        }
      }
    },
    "/v1/positions/uniswapv3/{id}/yield": {
      "get": {
        "tags": [
          "Uniswap V3"
        ],
        "operationId": "get_v1_positions_uniswapv3_id_yield",
        "summary": "Get Position Yield",
        "description": "Fee/reward accrual. projected_yield_apr and estimated_total_yield match the position page. earned_apr_percentage is historical earned APR and stays non-zero out of range. unclaimed_fees is Pending Fees. unclaimed_rewards is Pending Rewards.\n\n**Credits:** 8 per successful call.\n\nThese queries have their own credit cost.\n\n| Query | Credits |\n| --- | --- |\n| `status=inactive` | 4 |",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Token ID.",
              "example": "119128",
              "x-default": "119128"
            }
          },
          {
            "name": "chain_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Chain ID.",
              "example": 130,
              "x-default": 130
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "inactive"
              ],
              "description": "Omit for active positions. Set to `inactive` for closed positions. Default: active."
            }
          },
          {
            "name": "manager_address",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Manager address."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/RequestId"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "type": "object",
                          "properties": {
                            "token_id": {
                              "type": "string"
                            },
                            "chain_id": {
                              "type": "integer"
                            },
                            "earned_apr_percentage": {
                              "type": "object",
                              "properties": {
                                "yield": {
                                  "type": "string",
                                  "description": "Percent string for that component."
                                },
                                "fees": {
                                  "type": "string",
                                  "description": "Percent string for that component."
                                },
                                "rewards": {
                                  "type": "string",
                                  "description": "Percent string for that component."
                                }
                              },
                              "required": [
                                "yield",
                                "fees",
                                "rewards"
                              ],
                              "description": "Simple APR percent strings, not compounded. Each figure is value \u00d7 365 / days / time-weighted capital. Days are at least 1 hour."
                            },
                            "projected_yield_apr": {
                              "type": "string",
                              "description": "Yearly in-range APR percent string. 0 when the position is out of range or closed."
                            },
                            "estimated_total_yield": {
                              "type": "object",
                              "properties": {
                                "daily": {
                                  "type": "string"
                                },
                                "weekly": {
                                  "type": "string"
                                },
                                "monthly": {
                                  "type": "string"
                                },
                                "yearly": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "daily",
                                "weekly",
                                "monthly",
                                "yearly"
                              ],
                              "description": "USD strings. Observed average daily fees and rewards, scaled to a day, week, month, and year."
                            },
                            "average_fees_usd_value": {
                              "type": "object",
                              "properties": {
                                "daily": {
                                  "type": "object",
                                  "properties": {
                                    "amount0": {
                                      "type": "string",
                                      "description": "Token amount as a decimal string."
                                    },
                                    "amount1": {
                                      "type": "string",
                                      "description": "Token amount as a decimal string."
                                    },
                                    "usdValue0": {
                                      "type": "string",
                                      "description": "USD value of token0 as a decimal string."
                                    },
                                    "usdValue1": {
                                      "type": "string",
                                      "description": "USD value of token1 as a decimal string."
                                    },
                                    "totalUsdValue": {
                                      "type": "string",
                                      "description": "USD total as a decimal string."
                                    }
                                  },
                                  "required": [
                                    "amount0",
                                    "amount1",
                                    "usdValue0",
                                    "usdValue1",
                                    "totalUsdValue"
                                  ]
                                },
                                "hourly": {
                                  "type": "object",
                                  "properties": {
                                    "amount0": {
                                      "type": "string",
                                      "description": "Token amount as a decimal string."
                                    },
                                    "amount1": {
                                      "type": "string",
                                      "description": "Token amount as a decimal string."
                                    },
                                    "usdValue0": {
                                      "type": "string",
                                      "description": "USD value of token0 as a decimal string."
                                    },
                                    "usdValue1": {
                                      "type": "string",
                                      "description": "USD value of token1 as a decimal string."
                                    },
                                    "totalUsdValue": {
                                      "type": "string",
                                      "description": "USD total as a decimal string."
                                    }
                                  },
                                  "required": [
                                    "amount0",
                                    "amount1",
                                    "usdValue0",
                                    "usdValue1",
                                    "totalUsdValue"
                                  ]
                                },
                                "weekly": {
                                  "type": "object",
                                  "properties": {
                                    "amount0": {
                                      "type": "string",
                                      "description": "Token amount as a decimal string."
                                    },
                                    "amount1": {
                                      "type": "string",
                                      "description": "Token amount as a decimal string."
                                    },
                                    "usdValue0": {
                                      "type": "string",
                                      "description": "USD value of token0 as a decimal string."
                                    },
                                    "usdValue1": {
                                      "type": "string",
                                      "description": "USD value of token1 as a decimal string."
                                    },
                                    "totalUsdValue": {
                                      "type": "string",
                                      "description": "USD total as a decimal string."
                                    }
                                  },
                                  "required": [
                                    "amount0",
                                    "amount1",
                                    "usdValue0",
                                    "usdValue1",
                                    "totalUsdValue"
                                  ]
                                },
                                "monthly": {
                                  "type": "object",
                                  "properties": {
                                    "amount0": {
                                      "type": "string",
                                      "description": "Token amount as a decimal string."
                                    },
                                    "amount1": {
                                      "type": "string",
                                      "description": "Token amount as a decimal string."
                                    },
                                    "usdValue0": {
                                      "type": "string",
                                      "description": "USD value of token0 as a decimal string."
                                    },
                                    "usdValue1": {
                                      "type": "string",
                                      "description": "USD value of token1 as a decimal string."
                                    },
                                    "totalUsdValue": {
                                      "type": "string",
                                      "description": "USD total as a decimal string."
                                    }
                                  },
                                  "required": [
                                    "amount0",
                                    "amount1",
                                    "usdValue0",
                                    "usdValue1",
                                    "totalUsdValue"
                                  ]
                                },
                                "yearly": {
                                  "type": "object",
                                  "properties": {
                                    "amount0": {
                                      "type": "string",
                                      "description": "Token amount as a decimal string."
                                    },
                                    "amount1": {
                                      "type": "string",
                                      "description": "Token amount as a decimal string."
                                    },
                                    "usdValue0": {
                                      "type": "string",
                                      "description": "USD value of token0 as a decimal string."
                                    },
                                    "usdValue1": {
                                      "type": "string",
                                      "description": "USD value of token1 as a decimal string."
                                    },
                                    "totalUsdValue": {
                                      "type": "string",
                                      "description": "USD total as a decimal string."
                                    }
                                  },
                                  "required": [
                                    "amount0",
                                    "amount1",
                                    "usdValue0",
                                    "usdValue1",
                                    "totalUsdValue"
                                  ]
                                }
                              },
                              "required": [
                                "daily",
                                "hourly",
                                "weekly",
                                "monthly",
                                "yearly"
                              ],
                              "description": "Observed fee token amounts and USD value per hour, day, week, month, and year."
                            },
                            "average_rewards_usd_value": {
                              "type": "object",
                              "properties": {
                                "hourly": {
                                  "type": "string"
                                },
                                "daily": {
                                  "type": "string"
                                },
                                "weekly": {
                                  "type": "string"
                                },
                                "monthly": {
                                  "type": "string"
                                },
                                "yearly": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "hourly",
                                "daily",
                                "weekly",
                                "monthly",
                                "yearly"
                              ],
                              "description": "Observed reward USD value per hour, day, week, month, and year."
                            },
                            "total_fees": {
                              "type": "object",
                              "properties": {
                                "amount0": {
                                  "type": "string",
                                  "description": "Token amount as a decimal string."
                                },
                                "amount1": {
                                  "type": "string",
                                  "description": "Token amount as a decimal string."
                                },
                                "usdValue0": {
                                  "type": "string",
                                  "description": "USD value of token0 as a decimal string."
                                },
                                "usdValue1": {
                                  "type": "string",
                                  "description": "USD value of token1 as a decimal string."
                                },
                                "totalUsdValue": {
                                  "type": "string",
                                  "description": "USD total as a decimal string."
                                }
                              },
                              "required": [
                                "amount0",
                                "amount1",
                                "usdValue0",
                                "usdValue1",
                                "totalUsdValue"
                              ],
                              "description": "Fee token amounts and USD value across collected, compounded, and uncollected fees."
                            },
                            "total_rewards": {
                              "type": "object",
                              "properties": {
                                "totalUsdValue": {
                                  "type": "string",
                                  "description": "USD total as a decimal string."
                                },
                                "totalTokenValue": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "totalUsdValue",
                                "totalTokenValue"
                              ],
                              "description": "Reward USD total and token total."
                            },
                            "total_yield": {
                              "type": "string",
                              "description": "USD string. Total fees plus total rewards."
                            },
                            "unclaimed_fees": {
                              "type": "object",
                              "properties": {
                                "amount0": {
                                  "type": "string",
                                  "description": "Token amount as a decimal string."
                                },
                                "amount1": {
                                  "type": "string",
                                  "description": "Token amount as a decimal string."
                                },
                                "usdValue0": {
                                  "type": "string",
                                  "description": "USD value of token0 as a decimal string."
                                },
                                "usdValue1": {
                                  "type": "string",
                                  "description": "USD value of token1 as a decimal string."
                                },
                                "totalUsdValue": {
                                  "type": "string",
                                  "description": "USD total as a decimal string."
                                }
                              },
                              "required": [
                                "amount0",
                                "amount1",
                                "usdValue0",
                                "usdValue1",
                                "totalUsdValue"
                              ],
                              "description": "Uncollected fee token amounts, valued at the current price."
                            },
                            "claimed_fees": {
                              "type": "object",
                              "properties": {
                                "amount0": {
                                  "type": "string",
                                  "description": "Token amount as a decimal string."
                                },
                                "amount1": {
                                  "type": "string",
                                  "description": "Token amount as a decimal string."
                                },
                                "usdValue0": {
                                  "type": "string",
                                  "description": "USD value of token0 as a decimal string."
                                },
                                "usdValue1": {
                                  "type": "string",
                                  "description": "USD value of token1 as a decimal string."
                                },
                                "totalUsdValue": {
                                  "type": "string",
                                  "description": "USD total as a decimal string."
                                }
                              },
                              "required": [
                                "amount0",
                                "amount1",
                                "usdValue0",
                                "usdValue1",
                                "totalUsdValue"
                              ],
                              "description": "Collected fee token amounts, valued at the collection price."
                            },
                            "unclaimed_rewards": {
                              "type": "object",
                              "properties": {
                                "rewards": {
                                  "type": "array",
                                  "items": {
                                    "type": "object"
                                  }
                                },
                                "totalUsdValue": {
                                  "type": "string",
                                  "description": "USD total as a decimal string."
                                }
                              },
                              "required": [
                                "rewards",
                                "totalUsdValue"
                              ],
                              "description": "Pending reward tokens and their USD total."
                            },
                            "claimed_rewards": {
                              "type": "object",
                              "properties": {
                                "rewards": {
                                  "type": "array",
                                  "items": {
                                    "type": "object"
                                  }
                                },
                                "totalUsdValue": {
                                  "type": "string",
                                  "description": "USD total as a decimal string."
                                },
                                "totalTokenValue": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "rewards",
                                "totalUsdValue",
                                "totalTokenValue"
                              ],
                              "description": "Collected reward tokens, with USD and token totals."
                            },
                            "is_closed": {
                              "type": "boolean",
                              "description": "True when the position liquidity is zero."
                            }
                          },
                          "required": [
                            "token_id",
                            "chain_id",
                            "earned_apr_percentage",
                            "projected_yield_apr",
                            "estimated_total_yield",
                            "average_fees_usd_value",
                            "average_rewards_usd_value",
                            "total_fees",
                            "total_rewards",
                            "total_yield",
                            "unclaimed_fees",
                            "claimed_fees",
                            "unclaimed_rewards",
                            "claimed_rewards",
                            "is_closed"
                          ]
                        }
                      },
                      "required": [
                        "data"
                      ]
                    }
                  ]
                },
                "example": {
                  "data": {
                    "token_id": "119128",
                    "chain_id": 130,
                    "earned_apr_percentage": {
                      "yield": "41.23",
                      "fees": "41.23",
                      "rewards": "0"
                    },
                    "projected_yield_apr": "41.23",
                    "estimated_total_yield": {
                      "daily": "1.67",
                      "weekly": "11.72",
                      "monthly": "50.22",
                      "yearly": "611.00"
                    },
                    "average_fees_usd_value": {
                      "daily": {
                        "amount0": "0.10",
                        "amount1": "0.20",
                        "usdValue0": "0.10",
                        "usdValue1": "12.00",
                        "totalUsdValue": "12.10"
                      },
                      "hourly": {
                        "amount0": "0.10",
                        "amount1": "0.20",
                        "usdValue0": "0.10",
                        "usdValue1": "12.00",
                        "totalUsdValue": "12.10"
                      },
                      "weekly": {
                        "amount0": "0.10",
                        "amount1": "0.20",
                        "usdValue0": "0.10",
                        "usdValue1": "12.00",
                        "totalUsdValue": "12.10"
                      },
                      "monthly": {
                        "amount0": "0.10",
                        "amount1": "0.20",
                        "usdValue0": "0.10",
                        "usdValue1": "12.00",
                        "totalUsdValue": "12.10"
                      },
                      "yearly": {
                        "amount0": "0.10",
                        "amount1": "0.20",
                        "usdValue0": "0.10",
                        "usdValue1": "12.00",
                        "totalUsdValue": "12.10"
                      }
                    },
                    "average_rewards_usd_value": {
                      "hourly": "0",
                      "daily": "0",
                      "weekly": "0",
                      "monthly": "0",
                      "yearly": "0"
                    },
                    "total_fees": {
                      "amount0": "0.10",
                      "amount1": "0.20",
                      "usdValue0": "0.10",
                      "usdValue1": "12.00",
                      "totalUsdValue": "12.10"
                    },
                    "total_rewards": {
                      "totalUsdValue": "0",
                      "totalTokenValue": "0"
                    },
                    "total_yield": "49.88",
                    "unclaimed_fees": {
                      "amount0": "0.10",
                      "amount1": "0.20",
                      "usdValue0": "0.10",
                      "usdValue1": "12.00",
                      "totalUsdValue": "12.10"
                    },
                    "claimed_fees": {
                      "amount0": "0.10",
                      "amount1": "0.20",
                      "usdValue0": "0.10",
                      "usdValue1": "12.00",
                      "totalUsdValue": "12.10"
                    },
                    "unclaimed_rewards": {
                      "rewards": [],
                      "totalUsdValue": "0"
                    },
                    "claimed_rewards": {
                      "rewards": [],
                      "totalUsdValue": "0",
                      "totalTokenValue": "0"
                    },
                    "is_closed": false
                  },
                  "request_id": "req_..."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-mint": {
          "href": "/api-reference/uniswap-v3/yield",
          "metadata": {
            "sidebarTitle": "Get Position Yield"
          }
        }
      }
    },
    "/v1/usage/credits": {
      "get": {
        "tags": [
          "Usage"
        ],
        "operationId": "get_v1_usage_credits",
        "summary": "Get Remaining Credits",
        "description": "Credits left for your organization, split into Grants (manual grants and the recurring-grant bucket) and Purchased Credits (everything else). Balances are after this call's 1-credit charge.\n\n**Credits:** 1 per successful call.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/RequestId"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "type": "object",
                          "properties": {
                            "credits_remaining": {
                              "type": "integer",
                              "description": "Credits left after this call's charge."
                            },
                            "grants": {
                              "type": "integer",
                              "description": "Manual grants plus the recurring-grant bucket."
                            },
                            "purchased_credits": {
                              "type": "integer",
                              "description": "Credits that are not grants."
                            }
                          },
                          "required": [
                            "credits_remaining",
                            "grants",
                            "purchased_credits"
                          ]
                        }
                      },
                      "required": [
                        "data"
                      ]
                    }
                  ]
                },
                "example": {
                  "data": {
                    "credits_remaining": 1500,
                    "grants": 200,
                    "purchased_credits": 1300
                  },
                  "request_id": "req_..."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-mint": {
          "href": "/api-reference/usage/credits",
          "metadata": {
            "sidebarTitle": "Get Remaining Credits"
          }
        }
      }
    },
    "/v1/usage/logs": {
      "get": {
        "tags": [
          "Usage"
        ],
        "operationId": "get_v1_usage_logs",
        "summary": "List API Request Logs",
        "description": "Paginated request history for your organization. Filter by time range, API key, endpoint, HTTP status, and success/errors.\n\n**Credits:** 1 per successful call.",
        "parameters": [
          {
            "name": "range",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "5m",
                "1h",
                "24h",
                "7d",
                "30d"
              ],
              "description": "Omit for the last 24 hours. Values: `5m`, `1h`, `24h`, `7d`, `30d`. Default: Last 24 hours.",
              "example": "24h"
            }
          },
          {
            "name": "from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "`YYYY-MM-DD` or ISO timestamp."
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "`YYYY-MM-DD` or ISO timestamp."
            }
          },
          {
            "name": "api_key_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "API key ID."
            }
          },
          {
            "name": "path",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Endpoint path."
            }
          },
          {
            "name": "status_code",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "HTTP status code."
            }
          },
          {
            "name": "errors",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "all",
                "success",
                "errors"
              ],
              "description": "Omit or set to `all` for all requests. `success` returns successful calls only. `errors` returns errors only. Default: all requests."
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Page. Default: 1.",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Maximum 25. Default: 10.",
              "default": 10,
              "maximum": 25,
              "example": 10
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/RequestId"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "method": {
                                "type": "string"
                              },
                              "path": {
                                "type": "string"
                              },
                              "status_code": {
                                "type": "integer"
                              },
                              "latency_ms": {
                                "type": "integer"
                              },
                              "credits_charged": {
                                "type": "integer",
                                "description": "Credits spent on this call. 0 when the call failed."
                              },
                              "requested_at": {
                                "type": "string"
                              },
                              "api_key_id": {
                                "type": "string"
                              },
                              "api_key_name": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "method",
                              "path",
                              "status_code",
                              "latency_ms",
                              "credits_charged",
                              "requested_at",
                              "api_key_id",
                              "api_key_name"
                            ]
                          }
                        },
                        "pagination": {
                          "$ref": "#/components/schemas/Pagination"
                        }
                      },
                      "required": [
                        "data",
                        "pagination"
                      ]
                    }
                  ]
                },
                "example": {
                  "data": [
                    {
                      "method": "GET",
                      "path": "/v1/positions/uniswapv3",
                      "status_code": 200,
                      "latency_ms": 42,
                      "credits_charged": 2,
                      "requested_at": "2026-09-01T12:00:00.000Z",
                      "api_key_id": "key_abc123",
                      "api_key_name": "Production"
                    }
                  ],
                  "pagination": {
                    "page": 1,
                    "limit": 10,
                    "total": 120,
                    "next_page": "https://api.defiorbit.xyz/path?page=2&limit=10",
                    "prev_page": null
                  },
                  "request_id": "req_..."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-mint": {
          "href": "/api-reference/usage/logs",
          "metadata": {
            "sidebarTitle": "List API Request Logs"
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "description": "Paste your API key from the [dashboard](https://platform.defiorbit.xyz/dashboard/keys). The key starts with `do_sk_`.",
        "x-default": "YOUR_API_KEY"
      }
    },
    "schemas": {
      "Error": {
        "type": "object",
        "required": [
          "error"
        ],
        "properties": {
          "error": {
            "type": "object",
            "required": [
              "code",
              "message",
              "request_id"
            ],
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "request_id": {
                "type": "string"
              }
            }
          }
        }
      },
      "RequestId": {
        "type": "object",
        "required": [
          "request_id"
        ],
        "properties": {
          "request_id": {
            "type": "string",
            "description": "Id to quote when you contact support."
          }
        }
      },
      "Pagination": {
        "type": "object",
        "required": [
          "page",
          "limit",
          "total",
          "next_page",
          "prev_page"
        ],
        "properties": {
          "page": {
            "type": "integer"
          },
          "limit": {
            "type": "integer"
          },
          "total": {
            "type": "integer",
            "description": "Matching rows, before this page is sliced."
          },
          "next_page": {
            "type": "string",
            "nullable": true,
            "description": "URL of the next page, or null on the last page."
          },
          "prev_page": {
            "type": "string",
            "nullable": true,
            "description": "URL of the previous page, or null on the first page."
          }
        }
      },
      "Network": {
        "type": "object",
        "required": [
          "chainId",
          "name",
          "slug",
          "iconUrl"
        ],
        "properties": {
          "chainId": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "iconUrl": {
            "type": "string",
            "nullable": true,
            "description": "Logo URL, or null when none is available."
          }
        }
      }
    },
    "responses": {
      "BadRequest": {
        "description": "Missing or invalid parameter.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            },
            "example": {
              "error": {
                "code": "INVALID_PARAMETER",
                "message": "page must be a positive integer.",
                "request_id": "req_..."
              }
            }
          }
        }
      },
      "Unauthorized": {
        "description": "Missing, malformed, invalid, or revoked API key.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            },
            "example": {
              "error": {
                "code": "INVALID_API_KEY",
                "message": "Missing API key.",
                "request_id": "req_..."
              }
            }
          }
        }
      },
      "PaymentRequired": {
        "description": "The organization does not have enough credits.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            },
            "example": {
              "error": {
                "code": "INSUFFICIENT_CREDITS",
                "message": "Insufficient API credits.",
                "request_id": "req_..."
              }
            }
          }
        }
      },
      "Forbidden": {
        "description": "The organization is suspended, or the endpoint or feature is disabled.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            },
            "example": {
              "error": {
                "code": "ACCOUNT_SUSPENDED",
                "message": "This organization is suspended.",
                "request_id": "req_..."
              }
            }
          }
        }
      },
      "TooManyRequests": {
        "description": "The organization exceeded its requests-per-second limit.",
        "headers": {
          "Retry-After": {
            "description": "Seconds to wait before retrying.",
            "schema": {
              "type": "integer"
            }
          },
          "X-RateLimit-Limit": {
            "description": "Requests per second for the organization.",
            "schema": {
              "type": "integer"
            }
          },
          "X-RateLimit-Remaining": {
            "description": "Requests left in the current window.",
            "schema": {
              "type": "integer"
            }
          },
          "X-RateLimit-Reset": {
            "description": "Unix time when the window resets.",
            "schema": {
              "type": "integer"
            }
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            },
            "example": {
              "error": {
                "code": "RATE_LIMIT_EXCEEDED",
                "message": "Rate limit exceeded. Please try again later.",
                "request_id": "req_..."
              }
            }
          }
        }
      },
      "InternalError": {
        "description": "Unexpected server error, or pricing is not configured.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            },
            "example": {
              "error": {
                "code": "INTERNAL_ERROR",
                "message": "An unexpected error occurred.",
                "request_id": "req_..."
              }
            }
          }
        }
      },
      "BadGateway": {
        "description": "The upstream data provider failed.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            },
            "example": {
              "error": {
                "code": "UPSTREAM_ERROR",
                "message": "Portfolio data provider temporarily unavailable.",
                "request_id": "req_..."
              }
            }
          }
        }
      },
      "ServiceUnavailable": {
        "description": "The rate limiter is down, or position data is not ready yet.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            },
            "example": {
              "error": {
                "code": "SERVICE_UNAVAILABLE",
                "message": "Rate limiting service temporarily unavailable.",
                "request_id": "req_..."
              }
            }
          }
        }
      },
      "GatewayTimeout": {
        "description": "A Kamino batch timed out. Retry with fewer wallets.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            },
            "example": {
              "error": {
                "code": "GATEWAY_TIMEOUT",
                "message": "Batch lookup timed out. Retry with fewer wallets.",
                "request_id": "req_..."
              }
            }
          }
        }
      }
    }
  }
}