Returns source position rows across Kamino products (lending, multiply, leverage, liquidity, earn, private credit, staking). Portfolio totals, counts, fees, historical PnL, and display-only rollups are intentionally left to client composition or their dedicated endpoints. After a transaction, pass minSlot to read a portfolio that includes it.
GET
/
portfolio
/
{pubkey}
Get portfolio source data for a wallet
curl --request GET \
--url https://api.kamino.finance/portfolio/{pubkey}
Confirmed slot the response must include, usually the slot the caller's transaction confirmed at. The request waits until every section in sections has an appliedSlot at or above it, for up to 10 seconds, and the response is never cached. After the wait the current portfolio is returned, so compare sections.*.appliedSlot with minSlot.
Sections that must reach minSlot, comma-separated. Defaults to every section. Ignored without minSlot. Allowed values: lending, multiply, leverage, liquidity, earn, privateCredit, staking.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Kamino Docs","colors":{"primary":"#082A56","light":"#BEE3FE","dark":"#082A56"},"logo":{"light":"https://mintcdn.com/kamino-3d73a151/EHpt5rRzyV5R3dXt/images/logo/light.svg?fit=max\u0026auto=format\u0026n=EHpt5rRzyV5R3dXt\u0026q=85\u0026s=41146f93128a10f923dfe0829b84ceeb","dark":"https://mintcdn.com/kamino-3d73a151/EHpt5rRzyV5R3dXt/images/logo/dark.svg?fit=max\u0026auto=format\u0026n=EHpt5rRzyV5R3dXt\u0026q=85\u0026s=b6e99efe3764aaa0562a24e1003f99dd","href":"https://docs.kamino.com"},"favicon":"https://mintcdn.com/kamino-3d73a151/EHpt5rRzyV5R3dXt/favicon.svg?fit=max\u0026auto=format\u0026n=EHpt5rRzyV5R3dXt\u0026q=85\u0026s=eedfb39339869b741ec9395073041863","api":{"playground":{"display":"interactive","proxy":false},"examples":{"defaults":"required","languages":["curl","javascript","python","rust"],"prefill":true},"mdx":{"auth":{}}},"appearance":{"default":"light"},"background":{"color":{"dark":"#091326"}},"navbar":{"links":[{"href":"/#support","label":"Support","type":"link"}],"primary":{"type":"button","label":"Open App","href":"https://kamino.com"}},"footer":{"socials":{"x":"https://x.com/kamino","github":"https://github.com/Kamino-Finance"}},"seo":{"metatags":{"canonical":"https://docs.kamino.com"}},"icons":{"library":"fontawesome"},"styling":{"codeblocks":{"theme":"css-variables"},"latex":false},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","cursor","vscode"],"display":"header"},"interaction":{"drilldown":true},"navigation":{"global":{"anchors":[]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"kamino-3d73a151","hasAudioNarration":false,"actualSubdomain":"kamino-3d73a151","customDomains":["docs.kamino.com"],"gitSource":{"type":"github","owner":"kamino-finance","repo":"kamino-documentation","deployBranch":"master","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af33e2ee5e36dceb065ad9b","clientVersion":"0.0.4094","searchFilterCounts":[{"language":"default","tag":"Buildkit","count":318},{"language":"default","tag":"API Reference","count":202},{"language":"default","tag":"Full API Reference","count":129},{"language":"default","tag":"Borrow","count":85},{"language":"default","tag":"Docs","count":75},{"language":"default","tag":"Curators","count":65},{"language":"default","tag":"Earn","count":55},{"language":"default","tag":"Developers","count":51},{"language":"default","tag":"Products","count":41},{"language":"default","tag":"Markets","count":35}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"global.css","href":"/_mintlify/custom/kamino-3d73a151/1db0c01f0e94f408/global.css"}],"page":{"pagePath":"build/portfolio/get-portfolio-source-data-for-a-wallet","slug":"/build/portfolio/get-portfolio-source-data-for-a-wallet","pageMetadata":{"title":"Get portfolio source data for a wallet","description":"Returns source position rows across Kamino products (lending, multiply, leverage, liquidity, earn, private credit, staking). Portfolio totals, counts, fees, historical PnL, and display-only rollups are intentionally left to client composition or their dedicated endpoints. After a transaction, pass minSlot to read a portfolio that includes it.","deprecated":null,"version":null,"openapi":"/kamino-api.json get /portfolio/{pubkey}","href":"/build/portfolio/get-portfolio-source-data-for-a-wallet","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Returns source position rows across Kamino products (lending, multiply, leverage, liquidity, earn, private credit, staking). Portfolio totals, counts, fees, historical PnL, and display-only rollups are intentionally left to client composition or their dedicated endpoints. After a transaction, pass minSlot to read a portfolio that includes it.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"codeStyling":{"theme":"css-variables"},"config":{},"pageMetadata":{"title":"Get portfolio source data for a wallet","description":"Returns source position rows across Kamino products (lending, multiply, leverage, liquidity, earn, private credit, staking). Portfolio totals, counts, fees, historical PnL, and display-only rollups are intentionally left to client composition or their dedicated endpoints. After a transaction, pass minSlot to read a portfolio that includes it.","deprecated":null,"version":null,"openapi":"/kamino-api.json get /portfolio/{pubkey}","href":"/build/portfolio/get-portfolio-source-data-for-a-wallet","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/kamino-3d73a151/b653455c34dec4b8/brand-copy.js","/_mintlify/custom/kamino-3d73a151/9609d0bb46c3d15b/intercom.js","/_mintlify/custom/kamino-3d73a151/466fd259a73f5446/aeonik-persist.js"],"openApiReferenceData":{"operation":{"operationId":"getPortfolio","summary":"Get portfolio source data for a wallet","description":"Returns source position rows across Kamino products (lending, multiply, leverage, liquidity, earn, private credit, staking). Portfolio totals, counts, fees, historical PnL, and display-only rollups are intentionally left to client composition or their dedicated endpoints. After a transaction, pass minSlot to read a portfolio that includes it.","tags":["Portfolio"],"parameters":["db40b4d4-f323-4bd4-9f76-551ad2fef8c2","be75dd19-fa3f-4570-930f-199ce0cc7c49","f8852da1-9738-4278-a7d3-b745a47c6383","57a3b612-fba1-4858-8344-c6c92b090dc3"],"responses":{"200":"73df768b-c7b2-47e8-86c8-831552e1844e","400":"a86b2883-42bd-4f88-97a6-4ed36f38c8ca","500":"95f81ce6-cc23-41d5-a01d-c926e493c230"},"method":"get","type":"path","servers":["0e13c83b-e1ef-463a-bec4-4eb69532e966"],"security":[],"path":"/portfolio/{pubkey}","baseUrlOptions":["https://api.kamino.finance"],"title":"Get portfolio source data for a wallet","codeSamples":[],"requestExampleLanguages":["bash","javascript","python","rust"],"requiredOnlyExamples":true,"requestExampleType":"generated","responseExampleType":"generated","prefillPlaygroundWithExample":true,"prefillPlaygroundExamples":[],"disableProxy":true},"dependencies":{"parameters":{"db40b4d4-f323-4bd4-9f76-551ad2fef8c2":{"schema":{"type":"string","description":"Valid base58-encoded address","example":"VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd","isRequired":true,"uniqueKey":"","typeLabel":"string"},"required":true,"description":"Valid base58-encoded address","name":"pubkey","in":"path"},"be75dd19-fa3f-4570-930f-199ce0cc7c49":{"schema":{"type":"string","default":"KLend2g3cP87fffoy8q1mQqGKjrxjC8boSyAYavgmjD","description":"KLend program ID","example":"KLend2g3cP87fffoy8q1mQqGKjrxjC8boSyAYavgmjD","isRequired":false,"uniqueKey":"","typeLabel":"string"},"required":false,"description":"KLend program ID","name":"programId","in":"query"},"f8852da1-9738-4278-a7d3-b745a47c6383":{"schema":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991,"description":"Confirmed slot the response must include, usually the slot the caller's transaction confirmed at. The request waits until every section in `sections` has an appliedSlot at or above it, for up to 10 seconds, and the response is never cached. After the wait the current portfolio is returned, so compare sections.*.appliedSlot with minSlot.","example":465455609,"isRequired":false,"uniqueKey":"","typeLabel":"integer"},"required":false,"description":"Confirmed slot the response must include, usually the slot the caller's transaction confirmed at. The request waits until every section in `sections` has an appliedSlot at or above it, for up to 10 seconds, and the response is never cached. After the wait the current portfolio is returned, so compare sections.*.appliedSlot with minSlot.","name":"minSlot","in":"query"},"57a3b612-fba1-4858-8344-c6c92b090dc3":{"schema":{"oneOf":[{"type":"string","description":"Sections that must reach minSlot, comma-separated. Defaults to every section. Ignored without minSlot. Allowed values: lending, multiply, leverage, liquidity, earn, privateCredit, staking.","example":"multiply","uniqueKey":"oneOf.0","typeLabel":"string"},{"type":"array","items":{"type":"string","uniqueKey":"oneOf.1.items.[INDEX]","typeLabel":"string"},"description":"Sections that must reach minSlot, comma-separated. Defaults to every section. Ignored without minSlot. Allowed values: lending, multiply, leverage, liquidity, earn, privateCredit, staking.","example":"multiply","uniqueKey":"oneOf.1","typeLabel":"string[]"}],"isRequired":false,"uniqueKey":"","typeLabel":"string | string[]"},"required":false,"description":"Sections that must reach minSlot, comma-separated. Defaults to every section. Ignored without minSlot. Allowed values: lending, multiply, leverage, liquidity, earn, privateCredit, staking.","name":"sections","in":"query"}},"responses":{"73df768b-c7b2-47e8-86c8-831552e1844e":{"description":"OK","content":{"application/json":{"example":{"timestamp":"2026-06-12T11:16:12.657Z","sections":{"lending":{"indexed":true,"positionsRefreshedOn":"2026-06-11T23:14:19.969Z","pricesRefreshedOn":"2026-06-12T11:12:29.057Z","appliedSlot":454526593,"errors":[]},"multiply":{"indexed":true,"positionsRefreshedOn":"2026-06-11T23:13:54.680Z","pricesRefreshedOn":"2026-06-12T11:12:29.057Z","appliedSlot":454526593,"errors":[]},"leverage":{"indexed":true,"positionsRefreshedOn":"2026-06-11T23:14:00.518Z","pricesRefreshedOn":"2026-06-12T11:12:29.057Z","appliedSlot":454526593,"errors":[]},"liquidity":{"indexed":true,"positionsRefreshedOn":"2026-06-11T23:11:53.211Z","pricesRefreshedOn":"2026-06-11T23:14:24.861Z","appliedSlot":454526593,"errors":[]},"earn":{"indexed":true,"positionsRefreshedOn":"2026-06-11T23:12:29.633Z","pricesRefreshedOn":"2026-06-12T11:12:29.057Z","appliedSlot":454526593,"errors":[]},"privateCredit":{"indexed":true,"positionsRefreshedOn":"2026-06-11T23:12:29.846Z","pricesRefreshedOn":"2026-06-12T11:12:29.057Z","appliedSlot":454526593,"errors":[]},"staking":{"indexed":true,"positionsRefreshedOn":"2026-06-11T23:04:34.002Z","pricesRefreshedOn":"2026-06-12T11:12:29.057Z","appliedSlot":454526593,"errors":[]}},"lending":[{"obligation":"HpAQMFgpSJ3XZWEXtSQgJmuL3Fd8QepJSG79csgq3hoB","market":"5wJeMrUYECGq41fxRESKALVcHnNX26TAWy4W98yULsua","tag":"Vanilla","netValue":"262.00710654164595037","totalDepositValue":"491.89391304710577576","totalBorrowValue":"229.88680650545982539","ltv":"0.4673503786241097951","maxLtv":"0.5727335057760832411","liquidationLtv":"0.63241141170317723635","leverage":"1.8774067602205262589","netApy":"-0.0446","baseApy":"-0.057","farmRewardsApy":"0.0124","assetYieldApy":"0","deposits":[{"mint":"XsoCS1TfEyfFhfvj8EtZ528L3CaKBDBRqRapnBbDF2W","symbol":"SPYx","amount":"0.16082255065800625522","value":"119.1703926699327137","price":"741.005488237479553","reserve":"UvXjBuC7YZYaGB9Rn1PpBD1GySmjzunXgE8Zev9ua8d","maxLtv":"0.73","liquidationLtv":"0.75"}],"borrows":[{"mint":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","symbol":"USDC","amount":"229.95449131043213799","value":"229.88680650545982539","price":"0.99970566","reserve":"97zoywd8mPZsGTg8q1wdD2Wgkdrs2tqusp1Qqcxbyj7E","borrowFactor":"1"}]}],"multiply":[{"obligation":"2JsWdyxA15WodMBzRY5uNUJDvL71xm9NwfMj6qdYi3SC","market":"7u3HeHxYDLhnCoErrtycNokbQYbWGzLs6JSDqGAv5PfF","tag":"Multiply","netValue":"39.032947857306441512","totalDepositValue":"124.32509095187057771","totalBorrowValue":"85.292143094564136198","ltv":"0.68604126843215345899","maxLtv":"0.87000000000000000002","liquidationLtv":"0.91999999999999999997","leverage":"3.1851319917308934971","netApy":"0.141793","baseApy":"-0.118591","farmRewardsApy":"0.0215","assetYieldApy":"0.238884","deposits":[{"mint":"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn","symbol":"JitoSOL","amount":"1.4488817124626824571","value":"124.32509095187057771","price":"85.807619685221685924","reserve":"EVbyPKrHG6WBfm4dLxLMJpUDY43cCAcHSpV3KYjKsktW","maxLtv":"0.87","liquidationLtv":"0.92"}],"borrows":[{"mint":"So11111111111111111111111111111111111111112","symbol":"SOL","amount":"1.276825076608483649","value":"85.292143094564136198","price":"66.80017855","reserve":"d4A2prbA2whesmvHaL88BH6Ewn5N4bTSU2Ze8P6Bc4Q","borrowFactor":"1"}],"depositMint":"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn","borrowMint":"So11111111111111111111111111111111111111112"}],"leverage":[{"obligation":"VgtvJ1iCDAb65pWbwhvX33X6CWMWMdrYRABEhNTJ9xq","market":"7u3HeHxYDLhnCoErrtycNokbQYbWGzLs6JSDqGAv5PfF","tag":"Leverage","netValue":"8.774498333310038026","totalDepositValue":"23.724451929066735492","totalBorrowValue":"14.949953595756697466","ltv":"0.6301495874575001704","maxLtv":"0.75","liquidationLtv":"0.80000000000000000002","leverage":"2.7037958214663046734","netApy":"-0.116562","baseApy":"-0.116562","farmRewardsApy":"0","assetYieldApy":"0","deposits":[{"mint":"7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs","symbol":"ETH","amount":"0.014174648995927885562","value":"23.724451929066735492","price":"1673.72412085","reserve":"febGYTnFX4GbSGoFHFeJXUHgNaK53fB23uDins9Jp1E","maxLtv":"0.75","liquidationLtv":"0.8"}],"borrows":[{"mint":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","symbol":"USDC","amount":"14.954355260684127232","value":"14.949953595756697466","price":"0.99970566","reserve":"D6q6wuQSrifJKZYpR1M8R4YawnLDtDsMmWM1NbBmgJ59","borrowFactor":"1"}],"depositMint":"7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs","borrowMint":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"}],"liquidity":[{"strategy":"HBuYwvq67VKnLyKxPzDjzskyRMk7ps39gwHdvaPGwdmQ","shareMint":"7XB1azPg9hmD196uiGNa61EyvXbCmQhg8jSdptRGkRTZ","shares":"216.673457","netValue":"26.383693978132575086","tokenA":{"mint":"JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN","symbol":"JUP","amount":"54.602417609162028891","value":"9.1141301646553401798","price":"0.16691807"},"tokenB":{"mint":"bSo13r4TkiE4KumL71LsHTPpL2euBYLFx6h9HP3piy1","symbol":"bSOL","amount":"0.19898556021252914791","value":"17.269563813477234906","price":"86.788025196563257466"}}],"earn":[{"vault":"7cYGMEwQKhdYdugAyQBEqtwG6KhHyuEDcgUrdfGaV6qV","tokenMint":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","symbol":"USDC","name":"Core+ USDC Vault","netValue":"102.43833649457444653","shares":"97.742099","amount":"102.46849707200261978"}],"privateCredit":[{"vault":"91b1opzHNUQobfLZxGMNYT5qDRKoqV8FdsdQBmH4wBxy","tokenMint":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","symbol":"USDC","name":"Kamino Institutional USDC","netValue":"10.357873888364687946","shares":"10","amount":"10.360923522594328361"}],"staking":[{"mint":"KMNo3nJsBXfcpJTVhZcXLW7RmTwTt4GVFE7suUBo9sS","symbol":"KMNO","farm":"2sFZDpBn4sA42uNbAD6QzQ98rPSmqnPyksYe6SJKVvay","amount":"1700.2533519964832604","value":"30.92680935374059216","price":"0.01818953"}]},"schema":{"type":"object","properties":{"timestamp":{"type":"string","format":"date-time","description":"Response timestamp as an ISO-8601 string","isRequired":true,"uniqueKey":"timestamp","typeLabel":"string\u003cdate-time>"},"sections":{"type":"object","properties":{"lending":{"type":"object","properties":{"indexed":{"type":"boolean","description":"Whether this section has been indexed for the wallet.","isRequired":true,"uniqueKey":"sections.lending.indexed","typeLabel":"boolean"},"positionsRefreshedOn":{"oneOf":[{"type":"string","format":"date-time","description":"Position freshness for this section.","isRequired":true,"uniqueKey":"sections.lending.positionsRefreshedOn.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"Position freshness for this section.","isRequired":true,"uniqueKey":"sections.lending.positionsRefreshedOn.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"sections.lending.positionsRefreshedOn","typeLabel":"string\u003cdate-time> | null"},"pricesRefreshedOn":{"oneOf":[{"type":"string","format":"date-time","description":"Oldest required price freshness for this section.","isRequired":true,"uniqueKey":"sections.lending.pricesRefreshedOn.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"Oldest required price freshness for this section.","isRequired":true,"uniqueKey":"sections.lending.pricesRefreshedOn.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"sections.lending.pricesRefreshedOn","typeLabel":"string\u003cdate-time> | null"},"appliedSlot":{"oneOf":[{"type":"integer","description":"Every on-chain change to this section's wallet positions up to this confirmed slot is reflected in the response, so a client can wait for it to reach the slot its transaction confirmed at. Covers position rows only, not prices or vault exchange rates. Null when the indexer has not reported a slot.","isRequired":true,"uniqueKey":"sections.lending.appliedSlot.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Every on-chain change to this section's wallet positions up to this confirmed slot is reflected in the response, so a client can wait for it to reach the slot its transaction confirmed at. Covers position rows only, not prices or vault exchange rates. Null when the indexer has not reported a slot.","isRequired":true,"uniqueKey":"sections.lending.appliedSlot.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"sections.lending.appliedSlot","typeLabel":"integer | null"},"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"Stable subcomponent error code, including klend-slot-stale, klend-slot-unavailable, and klend-reserve-accrual-missing","isRequired":true,"uniqueKey":"sections.lending.errors.items.[INDEX].code","typeLabel":"string"}},"required":["code"],"uniqueKey":"sections.lending.errors.items.[INDEX]","typeLabel":"object"},"default":[],"uniqueKey":"sections.lending.errors","typeLabel":"object[]"}},"required":["indexed","positionsRefreshedOn","pricesRefreshedOn","appliedSlot"],"isRequired":true,"uniqueKey":"sections.lending","typeLabel":"object"},"multiply":{"type":"object","properties":{"indexed":{"type":"boolean","description":"Whether this section has been indexed for the wallet.","isRequired":true,"uniqueKey":"sections.multiply.indexed","typeLabel":"boolean"},"positionsRefreshedOn":{"oneOf":[{"type":"string","format":"date-time","description":"Position freshness for this section.","isRequired":true,"uniqueKey":"sections.multiply.positionsRefreshedOn.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"Position freshness for this section.","isRequired":true,"uniqueKey":"sections.multiply.positionsRefreshedOn.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"sections.multiply.positionsRefreshedOn","typeLabel":"string\u003cdate-time> | null"},"pricesRefreshedOn":{"oneOf":[{"type":"string","format":"date-time","description":"Oldest required price freshness for this section.","isRequired":true,"uniqueKey":"sections.multiply.pricesRefreshedOn.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"Oldest required price freshness for this section.","isRequired":true,"uniqueKey":"sections.multiply.pricesRefreshedOn.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"sections.multiply.pricesRefreshedOn","typeLabel":"string\u003cdate-time> | null"},"appliedSlot":{"oneOf":[{"type":"integer","description":"Every on-chain change to this section's wallet positions up to this confirmed slot is reflected in the response, so a client can wait for it to reach the slot its transaction confirmed at. Covers position rows only, not prices or vault exchange rates. Null when the indexer has not reported a slot.","isRequired":true,"uniqueKey":"sections.multiply.appliedSlot.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Every on-chain change to this section's wallet positions up to this confirmed slot is reflected in the response, so a client can wait for it to reach the slot its transaction confirmed at. Covers position rows only, not prices or vault exchange rates. Null when the indexer has not reported a slot.","isRequired":true,"uniqueKey":"sections.multiply.appliedSlot.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"sections.multiply.appliedSlot","typeLabel":"integer | null"},"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"Stable subcomponent error code, including klend-slot-stale, klend-slot-unavailable, and klend-reserve-accrual-missing","isRequired":true,"uniqueKey":"sections.multiply.errors.items.[INDEX].code","typeLabel":"string"}},"required":["code"],"uniqueKey":"sections.multiply.errors.items.[INDEX]","typeLabel":"object"},"default":[],"uniqueKey":"sections.multiply.errors","typeLabel":"object[]"}},"required":["indexed","positionsRefreshedOn","pricesRefreshedOn","appliedSlot"],"isRequired":true,"uniqueKey":"sections.multiply","typeLabel":"object"},"leverage":{"type":"object","properties":{"indexed":{"type":"boolean","description":"Whether this section has been indexed for the wallet.","isRequired":true,"uniqueKey":"sections.leverage.indexed","typeLabel":"boolean"},"positionsRefreshedOn":{"oneOf":[{"type":"string","format":"date-time","description":"Position freshness for this section.","isRequired":true,"uniqueKey":"sections.leverage.positionsRefreshedOn.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"Position freshness for this section.","isRequired":true,"uniqueKey":"sections.leverage.positionsRefreshedOn.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"sections.leverage.positionsRefreshedOn","typeLabel":"string\u003cdate-time> | null"},"pricesRefreshedOn":{"oneOf":[{"type":"string","format":"date-time","description":"Oldest required price freshness for this section.","isRequired":true,"uniqueKey":"sections.leverage.pricesRefreshedOn.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"Oldest required price freshness for this section.","isRequired":true,"uniqueKey":"sections.leverage.pricesRefreshedOn.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"sections.leverage.pricesRefreshedOn","typeLabel":"string\u003cdate-time> | null"},"appliedSlot":{"oneOf":[{"type":"integer","description":"Every on-chain change to this section's wallet positions up to this confirmed slot is reflected in the response, so a client can wait for it to reach the slot its transaction confirmed at. Covers position rows only, not prices or vault exchange rates. Null when the indexer has not reported a slot.","isRequired":true,"uniqueKey":"sections.leverage.appliedSlot.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Every on-chain change to this section's wallet positions up to this confirmed slot is reflected in the response, so a client can wait for it to reach the slot its transaction confirmed at. Covers position rows only, not prices or vault exchange rates. Null when the indexer has not reported a slot.","isRequired":true,"uniqueKey":"sections.leverage.appliedSlot.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"sections.leverage.appliedSlot","typeLabel":"integer | null"},"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"Stable subcomponent error code, including klend-slot-stale, klend-slot-unavailable, and klend-reserve-accrual-missing","isRequired":true,"uniqueKey":"sections.leverage.errors.items.[INDEX].code","typeLabel":"string"}},"required":["code"],"uniqueKey":"sections.leverage.errors.items.[INDEX]","typeLabel":"object"},"default":[],"uniqueKey":"sections.leverage.errors","typeLabel":"object[]"}},"required":["indexed","positionsRefreshedOn","pricesRefreshedOn","appliedSlot"],"isRequired":true,"uniqueKey":"sections.leverage","typeLabel":"object"},"liquidity":{"type":"object","properties":{"indexed":{"type":"boolean","description":"Whether this section has been indexed for the wallet.","isRequired":true,"uniqueKey":"sections.liquidity.indexed","typeLabel":"boolean"},"positionsRefreshedOn":{"oneOf":[{"type":"string","format":"date-time","description":"Position freshness for this section.","isRequired":true,"uniqueKey":"sections.liquidity.positionsRefreshedOn.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"Position freshness for this section.","isRequired":true,"uniqueKey":"sections.liquidity.positionsRefreshedOn.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"sections.liquidity.positionsRefreshedOn","typeLabel":"string\u003cdate-time> | null"},"pricesRefreshedOn":{"oneOf":[{"type":"string","format":"date-time","description":"Oldest required price freshness for this section.","isRequired":true,"uniqueKey":"sections.liquidity.pricesRefreshedOn.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"Oldest required price freshness for this section.","isRequired":true,"uniqueKey":"sections.liquidity.pricesRefreshedOn.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"sections.liquidity.pricesRefreshedOn","typeLabel":"string\u003cdate-time> | null"},"appliedSlot":{"oneOf":[{"type":"integer","description":"Every on-chain change to this section's wallet positions up to this confirmed slot is reflected in the response, so a client can wait for it to reach the slot its transaction confirmed at. Covers position rows only, not prices or vault exchange rates. Null when the indexer has not reported a slot.","isRequired":true,"uniqueKey":"sections.liquidity.appliedSlot.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Every on-chain change to this section's wallet positions up to this confirmed slot is reflected in the response, so a client can wait for it to reach the slot its transaction confirmed at. Covers position rows only, not prices or vault exchange rates. Null when the indexer has not reported a slot.","isRequired":true,"uniqueKey":"sections.liquidity.appliedSlot.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"sections.liquidity.appliedSlot","typeLabel":"integer | null"},"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"Stable subcomponent error code, including klend-slot-stale, klend-slot-unavailable, and klend-reserve-accrual-missing","isRequired":true,"uniqueKey":"sections.liquidity.errors.items.[INDEX].code","typeLabel":"string"}},"required":["code"],"uniqueKey":"sections.liquidity.errors.items.[INDEX]","typeLabel":"object"},"default":[],"uniqueKey":"sections.liquidity.errors","typeLabel":"object[]"}},"required":["indexed","positionsRefreshedOn","pricesRefreshedOn","appliedSlot"],"isRequired":true,"uniqueKey":"sections.liquidity","typeLabel":"object"},"earn":{"type":"object","properties":{"indexed":{"type":"boolean","description":"Whether this section has been indexed for the wallet.","isRequired":true,"uniqueKey":"sections.earn.indexed","typeLabel":"boolean"},"positionsRefreshedOn":{"oneOf":[{"type":"string","format":"date-time","description":"Position freshness for this section.","isRequired":true,"uniqueKey":"sections.earn.positionsRefreshedOn.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"Position freshness for this section.","isRequired":true,"uniqueKey":"sections.earn.positionsRefreshedOn.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"sections.earn.positionsRefreshedOn","typeLabel":"string\u003cdate-time> | null"},"pricesRefreshedOn":{"oneOf":[{"type":"string","format":"date-time","description":"Oldest required price freshness for this section.","isRequired":true,"uniqueKey":"sections.earn.pricesRefreshedOn.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"Oldest required price freshness for this section.","isRequired":true,"uniqueKey":"sections.earn.pricesRefreshedOn.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"sections.earn.pricesRefreshedOn","typeLabel":"string\u003cdate-time> | null"},"appliedSlot":{"oneOf":[{"type":"integer","description":"Every on-chain change to this section's wallet positions up to this confirmed slot is reflected in the response, so a client can wait for it to reach the slot its transaction confirmed at. Covers position rows only, not prices or vault exchange rates. Null when the indexer has not reported a slot.","isRequired":true,"uniqueKey":"sections.earn.appliedSlot.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Every on-chain change to this section's wallet positions up to this confirmed slot is reflected in the response, so a client can wait for it to reach the slot its transaction confirmed at. Covers position rows only, not prices or vault exchange rates. Null when the indexer has not reported a slot.","isRequired":true,"uniqueKey":"sections.earn.appliedSlot.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"sections.earn.appliedSlot","typeLabel":"integer | null"},"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"Stable subcomponent error code, including klend-slot-stale, klend-slot-unavailable, and klend-reserve-accrual-missing","isRequired":true,"uniqueKey":"sections.earn.errors.items.[INDEX].code","typeLabel":"string"}},"required":["code"],"uniqueKey":"sections.earn.errors.items.[INDEX]","typeLabel":"object"},"default":[],"uniqueKey":"sections.earn.errors","typeLabel":"object[]"}},"required":["indexed","positionsRefreshedOn","pricesRefreshedOn","appliedSlot"],"isRequired":true,"uniqueKey":"sections.earn","typeLabel":"object"},"privateCredit":{"type":"object","properties":{"indexed":{"type":"boolean","description":"Whether this section has been indexed for the wallet.","isRequired":true,"uniqueKey":"sections.privateCredit.indexed","typeLabel":"boolean"},"positionsRefreshedOn":{"oneOf":[{"type":"string","format":"date-time","description":"Position freshness for this section.","isRequired":true,"uniqueKey":"sections.privateCredit.positionsRefreshedOn.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"Position freshness for this section.","isRequired":true,"uniqueKey":"sections.privateCredit.positionsRefreshedOn.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"sections.privateCredit.positionsRefreshedOn","typeLabel":"string\u003cdate-time> | null"},"pricesRefreshedOn":{"oneOf":[{"type":"string","format":"date-time","description":"Oldest required price freshness for this section.","isRequired":true,"uniqueKey":"sections.privateCredit.pricesRefreshedOn.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"Oldest required price freshness for this section.","isRequired":true,"uniqueKey":"sections.privateCredit.pricesRefreshedOn.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"sections.privateCredit.pricesRefreshedOn","typeLabel":"string\u003cdate-time> | null"},"appliedSlot":{"oneOf":[{"type":"integer","description":"Every on-chain change to this section's wallet positions up to this confirmed slot is reflected in the response, so a client can wait for it to reach the slot its transaction confirmed at. Covers position rows only, not prices or vault exchange rates. Null when the indexer has not reported a slot.","isRequired":true,"uniqueKey":"sections.privateCredit.appliedSlot.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Every on-chain change to this section's wallet positions up to this confirmed slot is reflected in the response, so a client can wait for it to reach the slot its transaction confirmed at. Covers position rows only, not prices or vault exchange rates. Null when the indexer has not reported a slot.","isRequired":true,"uniqueKey":"sections.privateCredit.appliedSlot.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"sections.privateCredit.appliedSlot","typeLabel":"integer | null"},"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"Stable subcomponent error code, including klend-slot-stale, klend-slot-unavailable, and klend-reserve-accrual-missing","isRequired":true,"uniqueKey":"sections.privateCredit.errors.items.[INDEX].code","typeLabel":"string"}},"required":["code"],"uniqueKey":"sections.privateCredit.errors.items.[INDEX]","typeLabel":"object"},"default":[],"uniqueKey":"sections.privateCredit.errors","typeLabel":"object[]"}},"required":["indexed","positionsRefreshedOn","pricesRefreshedOn","appliedSlot"],"isRequired":true,"uniqueKey":"sections.privateCredit","typeLabel":"object"},"staking":{"type":"object","properties":{"indexed":{"type":"boolean","description":"Whether this section has been indexed for the wallet.","isRequired":true,"uniqueKey":"sections.staking.indexed","typeLabel":"boolean"},"positionsRefreshedOn":{"oneOf":[{"type":"string","format":"date-time","description":"Position freshness for this section.","isRequired":true,"uniqueKey":"sections.staking.positionsRefreshedOn.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"Position freshness for this section.","isRequired":true,"uniqueKey":"sections.staking.positionsRefreshedOn.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"sections.staking.positionsRefreshedOn","typeLabel":"string\u003cdate-time> | null"},"pricesRefreshedOn":{"oneOf":[{"type":"string","format":"date-time","description":"Oldest required price freshness for this section.","isRequired":true,"uniqueKey":"sections.staking.pricesRefreshedOn.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"Oldest required price freshness for this section.","isRequired":true,"uniqueKey":"sections.staking.pricesRefreshedOn.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"sections.staking.pricesRefreshedOn","typeLabel":"string\u003cdate-time> | null"},"appliedSlot":{"oneOf":[{"type":"integer","description":"Every on-chain change to this section's wallet positions up to this confirmed slot is reflected in the response, so a client can wait for it to reach the slot its transaction confirmed at. Covers position rows only, not prices or vault exchange rates. Null when the indexer has not reported a slot.","isRequired":true,"uniqueKey":"sections.staking.appliedSlot.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Every on-chain change to this section's wallet positions up to this confirmed slot is reflected in the response, so a client can wait for it to reach the slot its transaction confirmed at. Covers position rows only, not prices or vault exchange rates. Null when the indexer has not reported a slot.","isRequired":true,"uniqueKey":"sections.staking.appliedSlot.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"sections.staking.appliedSlot","typeLabel":"integer | null"},"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"Stable subcomponent error code, including klend-slot-stale, klend-slot-unavailable, and klend-reserve-accrual-missing","isRequired":true,"uniqueKey":"sections.staking.errors.items.[INDEX].code","typeLabel":"string"}},"required":["code"],"uniqueKey":"sections.staking.errors.items.[INDEX]","typeLabel":"object"},"default":[],"uniqueKey":"sections.staking.errors","typeLabel":"object[]"}},"required":["indexed","positionsRefreshedOn","pricesRefreshedOn","appliedSlot"],"isRequired":true,"uniqueKey":"sections.staking","typeLabel":"object"}},"required":["lending","multiply","leverage","liquidity","earn","privateCredit","staking"],"description":"Per-section indexing and freshness metadata.","isRequired":true,"uniqueKey":"sections","typeLabel":"object"},"lending":{"type":"array","items":{"type":"object","properties":{"obligation":{"type":"string","description":"Obligation address","example":"VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd","isRequired":true,"uniqueKey":"lending.items.[INDEX].obligation","typeLabel":"string"},"market":{"type":"string","description":"Lending market address","example":"VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd","isRequired":true,"uniqueKey":"lending.items.[INDEX].market","typeLabel":"string"},"tag":{"type":"string","enum":["Vanilla","Lending","LendingFixedRate","Multiply","MultiplyFixedRate","Leverage","LeverageFixedRate"],"description":"Obligation type tag","example":"Lending","isRequired":true,"uniqueKey":"lending.items.[INDEX].tag","typeLabel":"enum\u003cstring>"},"netValue":{"oneOf":[{"type":"string","example":"1234.56789","description":"Net account value in USD from refreshed obligation stats","isRequired":true,"uniqueKey":"lending.items.[INDEX].netValue.oneOf.0","typeLabel":"string"},{"type":"null","example":"1234.56789","description":"Net account value in USD from refreshed obligation stats","isRequired":true,"uniqueKey":"lending.items.[INDEX].netValue.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"lending.items.[INDEX].netValue","typeLabel":"string | null"},"totalDepositValue":{"oneOf":[{"type":"string","example":"1234.56789","description":"Total deposit value in USD from refreshed obligation stats","isRequired":true,"uniqueKey":"lending.items.[INDEX].totalDepositValue.oneOf.0","typeLabel":"string"},{"type":"null","example":"1234.56789","description":"Total deposit value in USD from refreshed obligation stats","isRequired":true,"uniqueKey":"lending.items.[INDEX].totalDepositValue.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"lending.items.[INDEX].totalDepositValue","typeLabel":"string | null"},"totalBorrowValue":{"oneOf":[{"type":"string","example":"1234.56789","description":"Total borrow value in USD from refreshed obligation stats","isRequired":true,"uniqueKey":"lending.items.[INDEX].totalBorrowValue.oneOf.0","typeLabel":"string"},{"type":"null","example":"1234.56789","description":"Total borrow value in USD from refreshed obligation stats","isRequired":true,"uniqueKey":"lending.items.[INDEX].totalBorrowValue.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"lending.items.[INDEX].totalBorrowValue","typeLabel":"string | null"},"ltv":{"oneOf":[{"type":"string","example":"1234.56789","description":"Current loan-to-value ratio from refreshed obligation stats","isRequired":true,"uniqueKey":"lending.items.[INDEX].ltv.oneOf.0","typeLabel":"string"},{"type":"null","example":"1234.56789","description":"Current loan-to-value ratio from refreshed obligation stats","isRequired":true,"uniqueKey":"lending.items.[INDEX].ltv.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"lending.items.[INDEX].ltv","typeLabel":"string | null"},"maxLtv":{"oneOf":[{"type":"string","example":"1234.56789","description":"Maximum loan-to-value ratio for the whole obligation from refreshed stats","isRequired":true,"uniqueKey":"lending.items.[INDEX].maxLtv.oneOf.0","typeLabel":"string"},{"type":"null","example":"1234.56789","description":"Maximum loan-to-value ratio for the whole obligation from refreshed stats","isRequired":true,"uniqueKey":"lending.items.[INDEX].maxLtv.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"lending.items.[INDEX].maxLtv","typeLabel":"string | null"},"liquidationLtv":{"oneOf":[{"type":"string","example":"1234.56789","description":"Liquidation LTV threshold from refreshed obligation stats","isRequired":true,"uniqueKey":"lending.items.[INDEX].liquidationLtv.oneOf.0","typeLabel":"string"},{"type":"null","example":"1234.56789","description":"Liquidation LTV threshold from refreshed obligation stats","isRequired":true,"uniqueKey":"lending.items.[INDEX].liquidationLtv.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"lending.items.[INDEX].liquidationLtv","typeLabel":"string | null"},"leverage":{"oneOf":[{"type":"string","example":"1234.56789","description":"Current leverage from refreshed obligation stats","isRequired":true,"uniqueKey":"lending.items.[INDEX].leverage.oneOf.0","typeLabel":"string"},{"type":"null","example":"1234.56789","description":"Current leverage from refreshed obligation stats","isRequired":true,"uniqueKey":"lending.items.[INDEX].leverage.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"lending.items.[INDEX].leverage","typeLabel":"string | null"},"netApy":{"oneOf":[{"type":"string","example":"1234.56789","description":"Current net APY as a signed fraction of equity (deposit value minus borrow value): baseApy + farmRewardsApy + assetYieldApy, from the cached reserve stats refreshed every minute. This is the current rate, not realized APY. Null when a reserve has no cached stats, a deposited or borrowed token whose yield applies to that side has its underlying yield unavailable (reserve stats underlyingApy null with underlyingYieldExpected true), a position has no price, equity is zero or negative, or there are no positions.","isRequired":true,"uniqueKey":"lending.items.[INDEX].netApy.oneOf.0","typeLabel":"string"},{"type":"null","example":"1234.56789","description":"Current net APY as a signed fraction of equity (deposit value minus borrow value): baseApy + farmRewardsApy + assetYieldApy, from the cached reserve stats refreshed every minute. This is the current rate, not realized APY. Null when a reserve has no cached stats, a deposited or borrowed token whose yield applies to that side has its underlying yield unavailable (reserve stats underlyingApy null with underlyingYieldExpected true), a position has no price, equity is zero or negative, or there are no positions.","isRequired":true,"uniqueKey":"lending.items.[INDEX].netApy.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"lending.items.[INDEX].netApy","typeLabel":"string | null"},"baseApy":{"oneOf":[{"type":"string","example":"1234.56789","description":"Lending interest net of borrow cost as a signed fraction of equity: sum of deposit value x supply APY minus borrow value x borrow APY, divided by equity. Null under the same conditions as netApy.","isRequired":true,"uniqueKey":"lending.items.[INDEX].baseApy.oneOf.0","typeLabel":"string"},{"type":"null","example":"1234.56789","description":"Lending interest net of borrow cost as a signed fraction of equity: sum of deposit value x supply APY minus borrow value x borrow APY, divided by equity. Null under the same conditions as netApy.","isRequired":true,"uniqueKey":"lending.items.[INDEX].baseApy.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"lending.items.[INDEX].baseApy","typeLabel":"string | null"},"farmRewardsApy":{"oneOf":[{"type":"string","example":"1234.56789","description":"Reserve farm rewards on deposits and borrows plus pair incentives, as a signed fraction of equity. A pair incentive counts only when the obligation holds both its collateral reserve and its debt reserve, and pays on the debt reserve's borrowed value times the collateral reserve's share of total deposit value. Null under the same conditions as netApy.","isRequired":true,"uniqueKey":"lending.items.[INDEX].farmRewardsApy.oneOf.0","typeLabel":"string"},{"type":"null","example":"1234.56789","description":"Reserve farm rewards on deposits and borrows plus pair incentives, as a signed fraction of equity. A pair incentive counts only when the obligation holds both its collateral reserve and its debt reserve, and pays on the debt reserve's borrowed value times the collateral reserve's share of total deposit value. Null under the same conditions as netApy.","isRequired":true,"uniqueKey":"lending.items.[INDEX].farmRewardsApy.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"lending.items.[INDEX].farmRewardsApy","typeLabel":"string | null"},"assetYieldApy":{"oneOf":[{"type":"string","example":"1234.56789","description":"The tokens' own yield (LST staking, yield-bearing tokens) as a signed fraction of equity; borrowing a yield-bearing token contributes negatively. Debt in a token whose yield is paid to suppliers rather than accrued by the token (USDe) contributes 0. Null under the same conditions as netApy.","isRequired":true,"uniqueKey":"lending.items.[INDEX].assetYieldApy.oneOf.0","typeLabel":"string"},{"type":"null","example":"1234.56789","description":"The tokens' own yield (LST staking, yield-bearing tokens) as a signed fraction of equity; borrowing a yield-bearing token contributes negatively. Debt in a token whose yield is paid to suppliers rather than accrued by the token (USDe) contributes 0. Null under the same conditions as netApy.","isRequired":true,"uniqueKey":"lending.items.[INDEX].assetYieldApy.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"lending.items.[INDEX].assetYieldApy","typeLabel":"string | null"},"deposits":{"type":"array","items":{"type":"object","properties":{"mint":{"type":"string","description":"Token mint address","example":"VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd","isRequired":true,"uniqueKey":"lending.items.[INDEX].deposits.items.[INDEX].mint","typeLabel":"string"},"symbol":{"type":"string","description":"Best-effort token symbol from known SQL-backed mint metadata, or UNKNOWN when unavailable","example":"SOL","isRequired":true,"uniqueKey":"lending.items.[INDEX].deposits.items.[INDEX].symbol","typeLabel":"string"},"amount":{"type":"string","description":"Token amount","example":"1234.56789","isRequired":true,"uniqueKey":"lending.items.[INDEX].deposits.items.[INDEX].amount","typeLabel":"string"},"value":{"oneOf":[{"type":"string","example":"1234.56789","description":"Current USD value for this token row","isRequired":true,"uniqueKey":"lending.items.[INDEX].deposits.items.[INDEX].value.oneOf.0","typeLabel":"string"},{"type":"null","example":"1234.56789","description":"Current USD value for this token row","isRequired":true,"uniqueKey":"lending.items.[INDEX].deposits.items.[INDEX].value.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"lending.items.[INDEX].deposits.items.[INDEX].value","typeLabel":"string | null"},"price":{"oneOf":[{"type":"string","example":"1234.56789","description":"Current token price in USD","isRequired":true,"uniqueKey":"lending.items.[INDEX].deposits.items.[INDEX].price.oneOf.0","typeLabel":"string"},{"type":"null","example":"1234.56789","description":"Current token price in USD","isRequired":true,"uniqueKey":"lending.items.[INDEX].deposits.items.[INDEX].price.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"lending.items.[INDEX].deposits.items.[INDEX].price","typeLabel":"string | null"},"maxLtv":{"type":"string","description":"Maximum loan-to-value ratio for the reserve as a fraction, adjusted for the obligation's elevation group","example":"1234.56789","isRequired":true,"uniqueKey":"lending.items.[INDEX].deposits.items.[INDEX].maxLtv","typeLabel":"string"},"liquidationLtv":{"type":"string","description":"Liquidation loan-to-value threshold for the reserve as a fraction, adjusted for the obligation's elevation group","example":"1234.56789","isRequired":true,"uniqueKey":"lending.items.[INDEX].deposits.items.[INDEX].liquidationLtv","typeLabel":"string"},"reserve":{"type":"string","description":"Resolved KLend reserve address backing this token row","example":"VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd","uniqueKey":"lending.items.[INDEX].deposits.items.[INDEX].reserve","typeLabel":"string"}},"required":["mint","symbol","amount","value","price","maxLtv","liquidationLtv"],"uniqueKey":"lending.items.[INDEX].deposits.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"lending.items.[INDEX].deposits","typeLabel":"object[]"},"borrows":{"type":"array","items":{"type":"object","properties":{"mint":{"type":"string","description":"Token mint address","example":"VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd","isRequired":true,"uniqueKey":"lending.items.[INDEX].borrows.items.[INDEX].mint","typeLabel":"string"},"symbol":{"type":"string","description":"Best-effort token symbol from known SQL-backed mint metadata, or UNKNOWN when unavailable","example":"SOL","isRequired":true,"uniqueKey":"lending.items.[INDEX].borrows.items.[INDEX].symbol","typeLabel":"string"},"amount":{"type":"string","description":"Token amount","example":"1234.56789","isRequired":true,"uniqueKey":"lending.items.[INDEX].borrows.items.[INDEX].amount","typeLabel":"string"},"value":{"oneOf":[{"type":"string","example":"1234.56789","description":"Current USD value for this token row","isRequired":true,"uniqueKey":"lending.items.[INDEX].borrows.items.[INDEX].value.oneOf.0","typeLabel":"string"},{"type":"null","example":"1234.56789","description":"Current USD value for this token row","isRequired":true,"uniqueKey":"lending.items.[INDEX].borrows.items.[INDEX].value.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"lending.items.[INDEX].borrows.items.[INDEX].value","typeLabel":"string | null"},"price":{"oneOf":[{"type":"string","example":"1234.56789","description":"Current token price in USD","isRequired":true,"uniqueKey":"lending.items.[INDEX].borrows.items.[INDEX].price.oneOf.0","typeLabel":"string"},{"type":"null","example":"1234.56789","description":"Current token price in USD","isRequired":true,"uniqueKey":"lending.items.[INDEX].borrows.items.[INDEX].price.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"lending.items.[INDEX].borrows.items.[INDEX].price","typeLabel":"string | null"},"borrowFactor":{"type":"string","description":"Borrow factor for the reserve as a fraction (e.g. 1.25); 1 when an elevation group is active","example":"1234.56789","isRequired":true,"uniqueKey":"lending.items.[INDEX].borrows.items.[INDEX].borrowFactor","typeLabel":"string"},"reserve":{"type":"string","description":"Resolved KLend reserve address backing this token row","example":"VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd","uniqueKey":"lending.items.[INDEX].borrows.items.[INDEX].reserve","typeLabel":"string"}},"required":["mint","symbol","amount","value","price","borrowFactor"],"uniqueKey":"lending.items.[INDEX].borrows.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"lending.items.[INDEX].borrows","typeLabel":"object[]"}},"required":["obligation","market","tag","netValue","totalDepositValue","totalBorrowValue","ltv","maxLtv","liquidationLtv","leverage","netApy","baseApy","farmRewardsApy","assetYieldApy","deposits","borrows"],"uniqueKey":"lending.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"lending","typeLabel":"object[]"},"multiply":{"type":"array","items":{"type":"object","properties":{"obligation":{"type":"string","description":"Obligation address","example":"VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd","isRequired":true,"uniqueKey":"multiply.items.[INDEX].obligation","typeLabel":"string"},"market":{"type":"string","description":"Lending market address","example":"VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd","isRequired":true,"uniqueKey":"multiply.items.[INDEX].market","typeLabel":"string"},"tag":{"type":"string","enum":["Vanilla","Lending","LendingFixedRate","Multiply","MultiplyFixedRate","Leverage","LeverageFixedRate"],"description":"Obligation type tag","example":"Lending","isRequired":true,"uniqueKey":"multiply.items.[INDEX].tag","typeLabel":"enum\u003cstring>"},"netValue":{"oneOf":[{"type":"string","example":"1234.56789","description":"Net account value in USD from refreshed obligation stats","isRequired":true,"uniqueKey":"multiply.items.[INDEX].netValue.oneOf.0","typeLabel":"string"},{"type":"null","example":"1234.56789","description":"Net account value in USD from refreshed obligation stats","isRequired":true,"uniqueKey":"multiply.items.[INDEX].netValue.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"multiply.items.[INDEX].netValue","typeLabel":"string | null"},"totalDepositValue":{"oneOf":[{"type":"string","example":"1234.56789","description":"Total deposit value in USD from refreshed obligation stats","isRequired":true,"uniqueKey":"multiply.items.[INDEX].totalDepositValue.oneOf.0","typeLabel":"string"},{"type":"null","example":"1234.56789","description":"Total deposit value in USD from refreshed obligation stats","isRequired":true,"uniqueKey":"multiply.items.[INDEX].totalDepositValue.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"multiply.items.[INDEX].totalDepositValue","typeLabel":"string | null"},"totalBorrowValue":{"oneOf":[{"type":"string","example":"1234.56789","description":"Total borrow value in USD from refreshed obligation stats","isRequired":true,"uniqueKey":"multiply.items.[INDEX].totalBorrowValue.oneOf.0","typeLabel":"string"},{"type":"null","example":"1234.56789","description":"Total borrow value in USD from refreshed obligation stats","isRequired":true,"uniqueKey":"multiply.items.[INDEX].totalBorrowValue.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"multiply.items.[INDEX].totalBorrowValue","typeLabel":"string | null"},"ltv":{"oneOf":[{"type":"string","example":"1234.56789","description":"Current loan-to-value ratio from refreshed obligation stats","isRequired":true,"uniqueKey":"multiply.items.[INDEX].ltv.oneOf.0","typeLabel":"string"},{"type":"null","example":"1234.56789","description":"Current loan-to-value ratio from refreshed obligation stats","isRequired":true,"uniqueKey":"multiply.items.[INDEX].ltv.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"multiply.items.[INDEX].ltv","typeLabel":"string | null"},"maxLtv":{"oneOf":[{"type":"string","example":"1234.56789","description":"Maximum loan-to-value ratio for the whole obligation from refreshed stats","isRequired":true,"uniqueKey":"multiply.items.[INDEX].maxLtv.oneOf.0","typeLabel":"string"},{"type":"null","example":"1234.56789","description":"Maximum loan-to-value ratio for the whole obligation from refreshed stats","isRequired":true,"uniqueKey":"multiply.items.[INDEX].maxLtv.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"multiply.items.[INDEX].maxLtv","typeLabel":"string | null"},"liquidationLtv":{"oneOf":[{"type":"string","example":"1234.56789","description":"Liquidation LTV threshold from refreshed obligation stats","isRequired":true,"uniqueKey":"multiply.items.[INDEX].liquidationLtv.oneOf.0","typeLabel":"string"},{"type":"null","example":"1234.56789","description":"Liquidation LTV threshold from refreshed obligation stats","isRequired":true,"uniqueKey":"multiply.items.[INDEX].liquidationLtv.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"multiply.items.[INDEX].liquidationLtv","typeLabel":"string | null"},"leverage":{"oneOf":[{"type":"string","example":"1234.56789","description":"Current leverage from refreshed obligation stats","isRequired":true,"uniqueKey":"multiply.items.[INDEX].leverage.oneOf.0","typeLabel":"string"},{"type":"null","example":"1234.56789","description":"Current leverage from refreshed obligation stats","isRequired":true,"uniqueKey":"multiply.items.[INDEX].leverage.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"multiply.items.[INDEX].leverage","typeLabel":"string | null"},"netApy":{"oneOf":[{"type":"string","example":"1234.56789","description":"Current net APY as a signed fraction of equity (deposit value minus borrow value): baseApy + farmRewardsApy + assetYieldApy, from the cached reserve stats refreshed every minute. This is the current rate, not realized APY. Null when a reserve has no cached stats, a deposited or borrowed token whose yield applies to that side has its underlying yield unavailable (reserve stats underlyingApy null with underlyingYieldExpected true), a position has no price, equity is zero or negative, or there are no positions.","isRequired":true,"uniqueKey":"multiply.items.[INDEX].netApy.oneOf.0","typeLabel":"string"},{"type":"null","example":"1234.56789","description":"Current net APY as a signed fraction of equity (deposit value minus borrow value): baseApy + farmRewardsApy + assetYieldApy, from the cached reserve stats refreshed every minute. This is the current rate, not realized APY. Null when a reserve has no cached stats, a deposited or borrowed token whose yield applies to that side has its underlying yield unavailable (reserve stats underlyingApy null with underlyingYieldExpected true), a position has no price, equity is zero or negative, or there are no positions.","isRequired":true,"uniqueKey":"multiply.items.[INDEX].netApy.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"multiply.items.[INDEX].netApy","typeLabel":"string | null"},"baseApy":{"oneOf":[{"type":"string","example":"1234.56789","description":"Lending interest net of borrow cost as a signed fraction of equity: sum of deposit value x supply APY minus borrow value x borrow APY, divided by equity. Null under the same conditions as netApy.","isRequired":true,"uniqueKey":"multiply.items.[INDEX].baseApy.oneOf.0","typeLabel":"string"},{"type":"null","example":"1234.56789","description":"Lending interest net of borrow cost as a signed fraction of equity: sum of deposit value x supply APY minus borrow value x borrow APY, divided by equity. Null under the same conditions as netApy.","isRequired":true,"uniqueKey":"multiply.items.[INDEX].baseApy.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"multiply.items.[INDEX].baseApy","typeLabel":"string | null"},"farmRewardsApy":{"oneOf":[{"type":"string","example":"1234.56789","description":"Reserve farm rewards on deposits and borrows plus pair incentives, as a signed fraction of equity. A pair incentive counts only when the obligation holds both its collateral reserve and its debt reserve, and pays on the debt reserve's borrowed value times the collateral reserve's share of total deposit value. Null under the same conditions as netApy.","isRequired":true,"uniqueKey":"multiply.items.[INDEX].farmRewardsApy.oneOf.0","typeLabel":"string"},{"type":"null","example":"1234.56789","description":"Reserve farm rewards on deposits and borrows plus pair incentives, as a signed fraction of equity. A pair incentive counts only when the obligation holds both its collateral reserve and its debt reserve, and pays on the debt reserve's borrowed value times the collateral reserve's share of total deposit value. Null under the same conditions as netApy.","isRequired":true,"uniqueKey":"multiply.items.[INDEX].farmRewardsApy.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"multiply.items.[INDEX].farmRewardsApy","typeLabel":"string | null"},"assetYieldApy":{"oneOf":[{"type":"string","example":"1234.56789","description":"The tokens' own yield (LST staking, yield-bearing tokens) as a signed fraction of equity; borrowing a yield-bearing token contributes negatively. Debt in a token whose yield is paid to suppliers rather than accrued by the token (USDe) contributes 0. Null under the same conditions as netApy.","isRequired":true,"uniqueKey":"multiply.items.[INDEX].assetYieldApy.oneOf.0","typeLabel":"string"},{"type":"null","example":"1234.56789","description":"The tokens' own yield (LST staking, yield-bearing tokens) as a signed fraction of equity; borrowing a yield-bearing token contributes negatively. Debt in a token whose yield is paid to suppliers rather than accrued by the token (USDe) contributes 0. Null under the same conditions as netApy.","isRequired":true,"uniqueKey":"multiply.items.[INDEX].assetYieldApy.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"multiply.items.[INDEX].assetYieldApy","typeLabel":"string | null"},"deposits":{"type":"array","items":{"type":"object","properties":{"mint":{"type":"string","description":"Token mint address","example":"VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd","isRequired":true,"uniqueKey":"multiply.items.[INDEX].deposits.items.[INDEX].mint","typeLabel":"string"},"symbol":{"type":"string","description":"Best-effort token symbol from known SQL-backed mint metadata, or UNKNOWN when unavailable","example":"SOL","isRequired":true,"uniqueKey":"multiply.items.[INDEX].deposits.items.[INDEX].symbol","typeLabel":"string"},"amount":{"type":"string","description":"Token amount","example":"1234.56789","isRequired":true,"uniqueKey":"multiply.items.[INDEX].deposits.items.[INDEX].amount","typeLabel":"string"},"value":{"oneOf":[{"type":"string","example":"1234.56789","description":"Current USD value for this token row","isRequired":true,"uniqueKey":"multiply.items.[INDEX].deposits.items.[INDEX].value.oneOf.0","typeLabel":"string"},{"type":"null","example":"1234.56789","description":"Current USD value for this token row","isRequired":true,"uniqueKey":"multiply.items.[INDEX].deposits.items.[INDEX].value.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"multiply.items.[INDEX].deposits.items.[INDEX].value","typeLabel":"string | null"},"price":{"oneOf":[{"type":"string","example":"1234.56789","description":"Current token price in USD","isRequired":true,"uniqueKey":"multiply.items.[INDEX].deposits.items.[INDEX].price.oneOf.0","typeLabel":"string"},{"type":"null","example":"1234.56789","description":"Current token price in USD","isRequired":true,"uniqueKey":"multiply.items.[INDEX].deposits.items.[INDEX].price.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"multiply.items.[INDEX].deposits.items.[INDEX].price","typeLabel":"string | null"},"maxLtv":{"type":"string","description":"Maximum loan-to-value ratio for the reserve as a fraction, adjusted for the obligation's elevation group","example":"1234.56789","isRequired":true,"uniqueKey":"multiply.items.[INDEX].deposits.items.[INDEX].maxLtv","typeLabel":"string"},"liquidationLtv":{"type":"string","description":"Liquidation loan-to-value threshold for the reserve as a fraction, adjusted for the obligation's elevation group","example":"1234.56789","isRequired":true,"uniqueKey":"multiply.items.[INDEX].deposits.items.[INDEX].liquidationLtv","typeLabel":"string"},"reserve":{"type":"string","description":"Resolved KLend reserve address backing this token row","example":"VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd","uniqueKey":"multiply.items.[INDEX].deposits.items.[INDEX].reserve","typeLabel":"string"}},"required":["mint","symbol","amount","value","price","maxLtv","liquidationLtv"],"uniqueKey":"multiply.items.[INDEX].deposits.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"multiply.items.[INDEX].deposits","typeLabel":"object[]"},"borrows":{"type":"array","items":{"type":"object","properties":{"mint":{"type":"string","description":"Token mint address","example":"VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd","isRequired":true,"uniqueKey":"multiply.items.[INDEX].borrows.items.[INDEX].mint","typeLabel":"string"},"symbol":{"type":"string","description":"Best-effort token symbol from known SQL-backed mint metadata, or UNKNOWN when unavailable","example":"SOL","isRequired":true,"uniqueKey":"multiply.items.[INDEX].borrows.items.[INDEX].symbol","typeLabel":"string"},"amount":{"type":"string","description":"Token amount","example":"1234.56789","isRequired":true,"uniqueKey":"multiply.items.[INDEX].borrows.items.[INDEX].amount","typeLabel":"string"},"value":{"oneOf":[{"type":"string","example":"1234.56789","description":"Current USD value for this token row","isRequired":true,"uniqueKey":"multiply.items.[INDEX].borrows.items.[INDEX].value.oneOf.0","typeLabel":"string"},{"type":"null","example":"1234.56789","description":"Current USD value for this token row","isRequired":true,"uniqueKey":"multiply.items.[INDEX].borrows.items.[INDEX].value.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"multiply.items.[INDEX].borrows.items.[INDEX].value","typeLabel":"string | null"},"price":{"oneOf":[{"type":"string","example":"1234.56789","description":"Current token price in USD","isRequired":true,"uniqueKey":"multiply.items.[INDEX].borrows.items.[INDEX].price.oneOf.0","typeLabel":"string"},{"type":"null","example":"1234.56789","description":"Current token price in USD","isRequired":true,"uniqueKey":"multiply.items.[INDEX].borrows.items.[INDEX].price.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"multiply.items.[INDEX].borrows.items.[INDEX].price","typeLabel":"string | null"},"borrowFactor":{"type":"string","description":"Borrow factor for the reserve as a fraction (e.g. 1.25); 1 when an elevation group is active","example":"1234.56789","isRequired":true,"uniqueKey":"multiply.items.[INDEX].borrows.items.[INDEX].borrowFactor","typeLabel":"string"},"reserve":{"type":"string","description":"Resolved KLend reserve address backing this token row","example":"VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd","uniqueKey":"multiply.items.[INDEX].borrows.items.[INDEX].reserve","typeLabel":"string"}},"required":["mint","symbol","amount","value","price","borrowFactor"],"uniqueKey":"multiply.items.[INDEX].borrows.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"multiply.items.[INDEX].borrows","typeLabel":"object[]"},"depositMint":{"type":"string","description":"Primary deposit token mint used for this multiply position","example":"VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd","uniqueKey":"multiply.items.[INDEX].depositMint","typeLabel":"string"},"borrowMint":{"type":"string","description":"Primary borrow token mint used for this multiply position","example":"VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd","uniqueKey":"multiply.items.[INDEX].borrowMint","typeLabel":"string"}},"required":["obligation","market","tag","netValue","totalDepositValue","totalBorrowValue","ltv","maxLtv","liquidationLtv","leverage","netApy","baseApy","farmRewardsApy","assetYieldApy","deposits","borrows"],"uniqueKey":"multiply.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"multiply","typeLabel":"object[]"},"leverage":{"type":"array","items":{"type":"object","properties":{"obligation":{"type":"string","description":"Obligation address","example":"VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd","isRequired":true,"uniqueKey":"leverage.items.[INDEX].obligation","typeLabel":"string"},"market":{"type":"string","description":"Lending market address","example":"VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd","isRequired":true,"uniqueKey":"leverage.items.[INDEX].market","typeLabel":"string"},"tag":{"type":"string","enum":["Vanilla","Lending","LendingFixedRate","Multiply","MultiplyFixedRate","Leverage","LeverageFixedRate"],"description":"Obligation type tag","example":"Lending","isRequired":true,"uniqueKey":"leverage.items.[INDEX].tag","typeLabel":"enum\u003cstring>"},"netValue":{"oneOf":[{"type":"string","example":"1234.56789","description":"Net account value in USD from refreshed obligation stats","isRequired":true,"uniqueKey":"leverage.items.[INDEX].netValue.oneOf.0","typeLabel":"string"},{"type":"null","example":"1234.56789","description":"Net account value in USD from refreshed obligation stats","isRequired":true,"uniqueKey":"leverage.items.[INDEX].netValue.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"leverage.items.[INDEX].netValue","typeLabel":"string | null"},"totalDepositValue":{"oneOf":[{"type":"string","example":"1234.56789","description":"Total deposit value in USD from refreshed obligation stats","isRequired":true,"uniqueKey":"leverage.items.[INDEX].totalDepositValue.oneOf.0","typeLabel":"string"},{"type":"null","example":"1234.56789","description":"Total deposit value in USD from refreshed obligation stats","isRequired":true,"uniqueKey":"leverage.items.[INDEX].totalDepositValue.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"leverage.items.[INDEX].totalDepositValue","typeLabel":"string | null"},"totalBorrowValue":{"oneOf":[{"type":"string","example":"1234.56789","description":"Total borrow value in USD from refreshed obligation stats","isRequired":true,"uniqueKey":"leverage.items.[INDEX].totalBorrowValue.oneOf.0","typeLabel":"string"},{"type":"null","example":"1234.56789","description":"Total borrow value in USD from refreshed obligation stats","isRequired":true,"uniqueKey":"leverage.items.[INDEX].totalBorrowValue.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"leverage.items.[INDEX].totalBorrowValue","typeLabel":"string | null"},"ltv":{"oneOf":[{"type":"string","example":"1234.56789","description":"Current loan-to-value ratio from refreshed obligation stats","isRequired":true,"uniqueKey":"leverage.items.[INDEX].ltv.oneOf.0","typeLabel":"string"},{"type":"null","example":"1234.56789","description":"Current loan-to-value ratio from refreshed obligation stats","isRequired":true,"uniqueKey":"leverage.items.[INDEX].ltv.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"leverage.items.[INDEX].ltv","typeLabel":"string | null"},"maxLtv":{"oneOf":[{"type":"string","example":"1234.56789","description":"Maximum loan-to-value ratio for the whole obligation from refreshed stats","isRequired":true,"uniqueKey":"leverage.items.[INDEX].maxLtv.oneOf.0","typeLabel":"string"},{"type":"null","example":"1234.56789","description":"Maximum loan-to-value ratio for the whole obligation from refreshed stats","isRequired":true,"uniqueKey":"leverage.items.[INDEX].maxLtv.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"leverage.items.[INDEX].maxLtv","typeLabel":"string | null"},"liquidationLtv":{"oneOf":[{"type":"string","example":"1234.56789","description":"Liquidation LTV threshold from refreshed obligation stats","isRequired":true,"uniqueKey":"leverage.items.[INDEX].liquidationLtv.oneOf.0","typeLabel":"string"},{"type":"null","example":"1234.56789","description":"Liquidation LTV threshold from refreshed obligation stats","isRequired":true,"uniqueKey":"leverage.items.[INDEX].liquidationLtv.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"leverage.items.[INDEX].liquidationLtv","typeLabel":"string | null"},"leverage":{"oneOf":[{"type":"string","example":"1234.56789","description":"Current leverage from refreshed obligation stats","isRequired":true,"uniqueKey":"leverage.items.[INDEX].leverage.oneOf.0","typeLabel":"string"},{"type":"null","example":"1234.56789","description":"Current leverage from refreshed obligation stats","isRequired":true,"uniqueKey":"leverage.items.[INDEX].leverage.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"leverage.items.[INDEX].leverage","typeLabel":"string | null"},"netApy":{"oneOf":[{"type":"string","example":"1234.56789","description":"Current net APY as a signed fraction of equity (deposit value minus borrow value): baseApy + farmRewardsApy + assetYieldApy, from the cached reserve stats refreshed every minute. This is the current rate, not realized APY. Null when a reserve has no cached stats, a deposited or borrowed token whose yield applies to that side has its underlying yield unavailable (reserve stats underlyingApy null with underlyingYieldExpected true), a position has no price, equity is zero or negative, or there are no positions.","isRequired":true,"uniqueKey":"leverage.items.[INDEX].netApy.oneOf.0","typeLabel":"string"},{"type":"null","example":"1234.56789","description":"Current net APY as a signed fraction of equity (deposit value minus borrow value): baseApy + farmRewardsApy + assetYieldApy, from the cached reserve stats refreshed every minute. This is the current rate, not realized APY. Null when a reserve has no cached stats, a deposited or borrowed token whose yield applies to that side has its underlying yield unavailable (reserve stats underlyingApy null with underlyingYieldExpected true), a position has no price, equity is zero or negative, or there are no positions.","isRequired":true,"uniqueKey":"leverage.items.[INDEX].netApy.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"leverage.items.[INDEX].netApy","typeLabel":"string | null"},"baseApy":{"oneOf":[{"type":"string","example":"1234.56789","description":"Lending interest net of borrow cost as a signed fraction of equity: sum of deposit value x supply APY minus borrow value x borrow APY, divided by equity. Null under the same conditions as netApy.","isRequired":true,"uniqueKey":"leverage.items.[INDEX].baseApy.oneOf.0","typeLabel":"string"},{"type":"null","example":"1234.56789","description":"Lending interest net of borrow cost as a signed fraction of equity: sum of deposit value x supply APY minus borrow value x borrow APY, divided by equity. Null under the same conditions as netApy.","isRequired":true,"uniqueKey":"leverage.items.[INDEX].baseApy.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"leverage.items.[INDEX].baseApy","typeLabel":"string | null"},"farmRewardsApy":{"oneOf":[{"type":"string","example":"1234.56789","description":"Reserve farm rewards on deposits and borrows plus pair incentives, as a signed fraction of equity. A pair incentive counts only when the obligation holds both its collateral reserve and its debt reserve, and pays on the debt reserve's borrowed value times the collateral reserve's share of total deposit value. Null under the same conditions as netApy.","isRequired":true,"uniqueKey":"leverage.items.[INDEX].farmRewardsApy.oneOf.0","typeLabel":"string"},{"type":"null","example":"1234.56789","description":"Reserve farm rewards on deposits and borrows plus pair incentives, as a signed fraction of equity. A pair incentive counts only when the obligation holds both its collateral reserve and its debt reserve, and pays on the debt reserve's borrowed value times the collateral reserve's share of total deposit value. Null under the same conditions as netApy.","isRequired":true,"uniqueKey":"leverage.items.[INDEX].farmRewardsApy.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"leverage.items.[INDEX].farmRewardsApy","typeLabel":"string | null"},"assetYieldApy":{"oneOf":[{"type":"string","example":"1234.56789","description":"The tokens' own yield (LST staking, yield-bearing tokens) as a signed fraction of equity; borrowing a yield-bearing token contributes negatively. Debt in a token whose yield is paid to suppliers rather than accrued by the token (USDe) contributes 0. Null under the same conditions as netApy.","isRequired":true,"uniqueKey":"leverage.items.[INDEX].assetYieldApy.oneOf.0","typeLabel":"string"},{"type":"null","example":"1234.56789","description":"The tokens' own yield (LST staking, yield-bearing tokens) as a signed fraction of equity; borrowing a yield-bearing token contributes negatively. Debt in a token whose yield is paid to suppliers rather than accrued by the token (USDe) contributes 0. Null under the same conditions as netApy.","isRequired":true,"uniqueKey":"leverage.items.[INDEX].assetYieldApy.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"leverage.items.[INDEX].assetYieldApy","typeLabel":"string | null"},"deposits":{"type":"array","items":{"type":"object","properties":{"mint":{"type":"string","description":"Token mint address","example":"VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd","isRequired":true,"uniqueKey":"leverage.items.[INDEX].deposits.items.[INDEX].mint","typeLabel":"string"},"symbol":{"type":"string","description":"Best-effort token symbol from known SQL-backed mint metadata, or UNKNOWN when unavailable","example":"SOL","isRequired":true,"uniqueKey":"leverage.items.[INDEX].deposits.items.[INDEX].symbol","typeLabel":"string"},"amount":{"type":"string","description":"Token amount","example":"1234.56789","isRequired":true,"uniqueKey":"leverage.items.[INDEX].deposits.items.[INDEX].amount","typeLabel":"string"},"value":{"oneOf":[{"type":"string","example":"1234.56789","description":"Current USD value for this token row","isRequired":true,"uniqueKey":"leverage.items.[INDEX].deposits.items.[INDEX].value.oneOf.0","typeLabel":"string"},{"type":"null","example":"1234.56789","description":"Current USD value for this token row","isRequired":true,"uniqueKey":"leverage.items.[INDEX].deposits.items.[INDEX].value.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"leverage.items.[INDEX].deposits.items.[INDEX].value","typeLabel":"string | null"},"price":{"oneOf":[{"type":"string","example":"1234.56789","description":"Current token price in USD","isRequired":true,"uniqueKey":"leverage.items.[INDEX].deposits.items.[INDEX].price.oneOf.0","typeLabel":"string"},{"type":"null","example":"1234.56789","description":"Current token price in USD","isRequired":true,"uniqueKey":"leverage.items.[INDEX].deposits.items.[INDEX].price.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"leverage.items.[INDEX].deposits.items.[INDEX].price","typeLabel":"string | null"},"maxLtv":{"type":"string","description":"Maximum loan-to-value ratio for the reserve as a fraction, adjusted for the obligation's elevation group","example":"1234.56789","isRequired":true,"uniqueKey":"leverage.items.[INDEX].deposits.items.[INDEX].maxLtv","typeLabel":"string"},"liquidationLtv":{"type":"string","description":"Liquidation loan-to-value threshold for the reserve as a fraction, adjusted for the obligation's elevation group","example":"1234.56789","isRequired":true,"uniqueKey":"leverage.items.[INDEX].deposits.items.[INDEX].liquidationLtv","typeLabel":"string"},"reserve":{"type":"string","description":"Resolved KLend reserve address backing this token row","example":"VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd","uniqueKey":"leverage.items.[INDEX].deposits.items.[INDEX].reserve","typeLabel":"string"}},"required":["mint","symbol","amount","value","price","maxLtv","liquidationLtv"],"uniqueKey":"leverage.items.[INDEX].deposits.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"leverage.items.[INDEX].deposits","typeLabel":"object[]"},"borrows":{"type":"array","items":{"type":"object","properties":{"mint":{"type":"string","description":"Token mint address","example":"VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd","isRequired":true,"uniqueKey":"leverage.items.[INDEX].borrows.items.[INDEX].mint","typeLabel":"string"},"symbol":{"type":"string","description":"Best-effort token symbol from known SQL-backed mint metadata, or UNKNOWN when unavailable","example":"SOL","isRequired":true,"uniqueKey":"leverage.items.[INDEX].borrows.items.[INDEX].symbol","typeLabel":"string"},"amount":{"type":"string","description":"Token amount","example":"1234.56789","isRequired":true,"uniqueKey":"leverage.items.[INDEX].borrows.items.[INDEX].amount","typeLabel":"string"},"value":{"oneOf":[{"type":"string","example":"1234.56789","description":"Current USD value for this token row","isRequired":true,"uniqueKey":"leverage.items.[INDEX].borrows.items.[INDEX].value.oneOf.0","typeLabel":"string"},{"type":"null","example":"1234.56789","description":"Current USD value for this token row","isRequired":true,"uniqueKey":"leverage.items.[INDEX].borrows.items.[INDEX].value.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"leverage.items.[INDEX].borrows.items.[INDEX].value","typeLabel":"string | null"},"price":{"oneOf":[{"type":"string","example":"1234.56789","description":"Current token price in USD","isRequired":true,"uniqueKey":"leverage.items.[INDEX].borrows.items.[INDEX].price.oneOf.0","typeLabel":"string"},{"type":"null","example":"1234.56789","description":"Current token price in USD","isRequired":true,"uniqueKey":"leverage.items.[INDEX].borrows.items.[INDEX].price.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"leverage.items.[INDEX].borrows.items.[INDEX].price","typeLabel":"string | null"},"borrowFactor":{"type":"string","description":"Borrow factor for the reserve as a fraction (e.g. 1.25); 1 when an elevation group is active","example":"1234.56789","isRequired":true,"uniqueKey":"leverage.items.[INDEX].borrows.items.[INDEX].borrowFactor","typeLabel":"string"},"reserve":{"type":"string","description":"Resolved KLend reserve address backing this token row","example":"VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd","uniqueKey":"leverage.items.[INDEX].borrows.items.[INDEX].reserve","typeLabel":"string"}},"required":["mint","symbol","amount","value","price","borrowFactor"],"uniqueKey":"leverage.items.[INDEX].borrows.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"leverage.items.[INDEX].borrows","typeLabel":"object[]"},"depositMint":{"type":"string","description":"Primary deposit token mint used for this leverage position","example":"VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd","uniqueKey":"leverage.items.[INDEX].depositMint","typeLabel":"string"},"borrowMint":{"type":"string","description":"Primary borrow token mint used for this leverage position","example":"VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd","uniqueKey":"leverage.items.[INDEX].borrowMint","typeLabel":"string"}},"required":["obligation","market","tag","netValue","totalDepositValue","totalBorrowValue","ltv","maxLtv","liquidationLtv","leverage","netApy","baseApy","farmRewardsApy","assetYieldApy","deposits","borrows"],"uniqueKey":"leverage.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"leverage","typeLabel":"object[]"},"liquidity":{"type":"array","items":{"type":"object","properties":{"strategy":{"type":"string","description":"Strategy address","example":"VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd","isRequired":true,"uniqueKey":"liquidity.items.[INDEX].strategy","typeLabel":"string"},"shareMint":{"type":"string","description":"Strategy share mint address","example":"VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd","isRequired":true,"uniqueKey":"liquidity.items.[INDEX].shareMint","typeLabel":"string"},"shares":{"type":"string","description":"Total strategy shares held directly or staked in farms","example":"1234.56789","isRequired":true,"uniqueKey":"liquidity.items.[INDEX].shares","typeLabel":"string"},"netValue":{"oneOf":[{"type":"string","example":"1234.56789","description":"Current net position value in USD","isRequired":true,"uniqueKey":"liquidity.items.[INDEX].netValue.oneOf.0","typeLabel":"string"},{"type":"null","example":"1234.56789","description":"Current net position value in USD","isRequired":true,"uniqueKey":"liquidity.items.[INDEX].netValue.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"liquidity.items.[INDEX].netValue","typeLabel":"string | null"},"tokenA":{"type":"object","properties":{"mint":{"type":"string","description":"Token mint address","example":"VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd","isRequired":true,"uniqueKey":"liquidity.items.[INDEX].tokenA.mint","typeLabel":"string"},"symbol":{"type":"string","description":"Best-effort token symbol from known SQL-backed mint metadata, or UNKNOWN when unavailable","example":"SOL","isRequired":true,"uniqueKey":"liquidity.items.[INDEX].tokenA.symbol","typeLabel":"string"},"amount":{"type":"string","description":"Token amount","example":"1234.56789","isRequired":true,"uniqueKey":"liquidity.items.[INDEX].tokenA.amount","typeLabel":"string"},"value":{"oneOf":[{"type":"string","example":"1234.56789","description":"Current USD value for this token row","isRequired":true,"uniqueKey":"liquidity.items.[INDEX].tokenA.value.oneOf.0","typeLabel":"string"},{"type":"null","example":"1234.56789","description":"Current USD value for this token row","isRequired":true,"uniqueKey":"liquidity.items.[INDEX].tokenA.value.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"liquidity.items.[INDEX].tokenA.value","typeLabel":"string | null"},"price":{"oneOf":[{"type":"string","example":"1234.56789","description":"Current token price in USD","isRequired":true,"uniqueKey":"liquidity.items.[INDEX].tokenA.price.oneOf.0","typeLabel":"string"},{"type":"null","example":"1234.56789","description":"Current token price in USD","isRequired":true,"uniqueKey":"liquidity.items.[INDEX].tokenA.price.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"liquidity.items.[INDEX].tokenA.price","typeLabel":"string | null"},"reserve":{"type":"string","description":"Resolved KLend reserve address backing this token row","example":"VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd","uniqueKey":"liquidity.items.[INDEX].tokenA.reserve","typeLabel":"string"}},"required":["mint","symbol","amount","value","price"],"isRequired":true,"uniqueKey":"liquidity.items.[INDEX].tokenA","typeLabel":"object"},"tokenB":{"type":"object","properties":{"mint":{"type":"string","description":"Token mint address","example":"VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd","isRequired":true,"uniqueKey":"liquidity.items.[INDEX].tokenB.mint","typeLabel":"string"},"symbol":{"type":"string","description":"Best-effort token symbol from known SQL-backed mint metadata, or UNKNOWN when unavailable","example":"SOL","isRequired":true,"uniqueKey":"liquidity.items.[INDEX].tokenB.symbol","typeLabel":"string"},"amount":{"type":"string","description":"Token amount","example":"1234.56789","isRequired":true,"uniqueKey":"liquidity.items.[INDEX].tokenB.amount","typeLabel":"string"},"value":{"oneOf":[{"type":"string","example":"1234.56789","description":"Current USD value for this token row","isRequired":true,"uniqueKey":"liquidity.items.[INDEX].tokenB.value.oneOf.0","typeLabel":"string"},{"type":"null","example":"1234.56789","description":"Current USD value for this token row","isRequired":true,"uniqueKey":"liquidity.items.[INDEX].tokenB.value.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"liquidity.items.[INDEX].tokenB.value","typeLabel":"string | null"},"price":{"oneOf":[{"type":"string","example":"1234.56789","description":"Current token price in USD","isRequired":true,"uniqueKey":"liquidity.items.[INDEX].tokenB.price.oneOf.0","typeLabel":"string"},{"type":"null","example":"1234.56789","description":"Current token price in USD","isRequired":true,"uniqueKey":"liquidity.items.[INDEX].tokenB.price.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"liquidity.items.[INDEX].tokenB.price","typeLabel":"string | null"},"reserve":{"type":"string","description":"Resolved KLend reserve address backing this token row","example":"VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd","uniqueKey":"liquidity.items.[INDEX].tokenB.reserve","typeLabel":"string"}},"required":["mint","symbol","amount","value","price"],"isRequired":true,"uniqueKey":"liquidity.items.[INDEX].tokenB","typeLabel":"object"}},"required":["strategy","shareMint","shares","netValue","tokenA","tokenB"],"uniqueKey":"liquidity.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"liquidity","typeLabel":"object[]"},"earn":{"type":"array","items":{"type":"object","properties":{"vault":{"type":"string","description":"Vault address","example":"VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd","isRequired":true,"uniqueKey":"earn.items.[INDEX].vault","typeLabel":"string"},"tokenMint":{"type":"string","description":"Vault underlying token mint","example":"VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd","isRequired":true,"uniqueKey":"earn.items.[INDEX].tokenMint","typeLabel":"string"},"symbol":{"type":"string","description":"Vault underlying token symbol","example":"USDC","isRequired":true,"uniqueKey":"earn.items.[INDEX].symbol","typeLabel":"string"},"name":{"type":"string","description":"Vault display name from resources or decoded vault state","example":"JitoSOL","isRequired":true,"uniqueKey":"earn.items.[INDEX].name","typeLabel":"string"},"netValue":{"oneOf":[{"type":"string","example":"1234.56789","description":"Current position value in USD","isRequired":true,"uniqueKey":"earn.items.[INDEX].netValue.oneOf.0","typeLabel":"string"},{"type":"null","example":"1234.56789","description":"Current position value in USD","isRequired":true,"uniqueKey":"earn.items.[INDEX].netValue.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"earn.items.[INDEX].netValue","typeLabel":"string | null"},"shares":{"type":"string","description":"Number of shares held","example":"1234.56789","isRequired":true,"uniqueKey":"earn.items.[INDEX].shares","typeLabel":"string"},"amount":{"type":"string","description":"Underlying token amount for the position","example":"1234.56789","isRequired":true,"uniqueKey":"earn.items.[INDEX].amount","typeLabel":"string"}},"required":["vault","tokenMint","symbol","name","netValue","shares","amount"],"uniqueKey":"earn.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"earn","typeLabel":"object[]"},"privateCredit":{"type":"array","items":{"type":"object","properties":{"vault":{"type":"string","description":"Vault address","example":"VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd","isRequired":true,"uniqueKey":"privateCredit.items.[INDEX].vault","typeLabel":"string"},"tokenMint":{"type":"string","description":"Vault underlying token mint","example":"VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd","isRequired":true,"uniqueKey":"privateCredit.items.[INDEX].tokenMint","typeLabel":"string"},"symbol":{"type":"string","description":"Vault underlying token symbol","example":"USDC","isRequired":true,"uniqueKey":"privateCredit.items.[INDEX].symbol","typeLabel":"string"},"name":{"type":"string","description":"Vault name","example":"Maple USDC","isRequired":true,"uniqueKey":"privateCredit.items.[INDEX].name","typeLabel":"string"},"netValue":{"oneOf":[{"type":"string","example":"1234.56789","description":"Current position value in USD","isRequired":true,"uniqueKey":"privateCredit.items.[INDEX].netValue.oneOf.0","typeLabel":"string"},{"type":"null","example":"1234.56789","description":"Current position value in USD","isRequired":true,"uniqueKey":"privateCredit.items.[INDEX].netValue.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"privateCredit.items.[INDEX].netValue","typeLabel":"string | null"},"shares":{"type":"string","description":"Number of shares held","example":"1234.56789","isRequired":true,"uniqueKey":"privateCredit.items.[INDEX].shares","typeLabel":"string"},"amount":{"type":"string","description":"Underlying token amount for the position","example":"1234.56789","isRequired":true,"uniqueKey":"privateCredit.items.[INDEX].amount","typeLabel":"string"}},"required":["vault","tokenMint","symbol","name","netValue","shares","amount"],"uniqueKey":"privateCredit.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"privateCredit","typeLabel":"object[]"},"staking":{"type":"array","items":{"type":"object","properties":{"mint":{"type":"string","description":"Staked token mint address","example":"VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd","isRequired":true,"uniqueKey":"staking.items.[INDEX].mint","typeLabel":"string"},"symbol":{"type":"string","description":"Staked token symbol","example":"KMNO","isRequired":true,"uniqueKey":"staking.items.[INDEX].symbol","typeLabel":"string"},"farm":{"type":"string","description":"Farm address where the staking position is held","example":"VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd","isRequired":true,"uniqueKey":"staking.items.[INDEX].farm","typeLabel":"string"},"amount":{"type":"string","description":"Amount of KMNO staked","example":"1234.56789","isRequired":true,"uniqueKey":"staking.items.[INDEX].amount","typeLabel":"string"},"value":{"oneOf":[{"type":"string","example":"1234.56789","description":"Current USD value of staked KMNO","isRequired":true,"uniqueKey":"staking.items.[INDEX].value.oneOf.0","typeLabel":"string"},{"type":"null","example":"1234.56789","description":"Current USD value of staked KMNO","isRequired":true,"uniqueKey":"staking.items.[INDEX].value.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"staking.items.[INDEX].value","typeLabel":"string | null"},"price":{"oneOf":[{"type":"string","example":"1234.56789","description":"Current staked token price in USD","isRequired":true,"uniqueKey":"staking.items.[INDEX].price.oneOf.0","typeLabel":"string"},{"type":"null","example":"1234.56789","description":"Current staked token price in USD","isRequired":true,"uniqueKey":"staking.items.[INDEX].price.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"staking.items.[INDEX].price","typeLabel":"string | null"}},"required":["mint","symbol","farm","amount","value","price"],"uniqueKey":"staking.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"staking","typeLabel":"object[]"}},"required":["timestamp","sections","lending","multiply","leverage","liquidity","earn","privateCredit","staking"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"timestamp":"2026-06-12T11:16:12.657Z","sections":{"lending":{"indexed":true,"positionsRefreshedOn":"2026-06-11T23:14:19.969Z","pricesRefreshedOn":"2026-06-12T11:12:29.057Z","appliedSlot":454526593,"errors":[]},"multiply":{"indexed":true,"positionsRefreshedOn":"2026-06-11T23:13:54.680Z","pricesRefreshedOn":"2026-06-12T11:12:29.057Z","appliedSlot":454526593,"errors":[]},"leverage":{"indexed":true,"positionsRefreshedOn":"2026-06-11T23:14:00.518Z","pricesRefreshedOn":"2026-06-12T11:12:29.057Z","appliedSlot":454526593,"errors":[]},"liquidity":{"indexed":true,"positionsRefreshedOn":"2026-06-11T23:11:53.211Z","pricesRefreshedOn":"2026-06-11T23:14:24.861Z","appliedSlot":454526593,"errors":[]},"earn":{"indexed":true,"positionsRefreshedOn":"2026-06-11T23:12:29.633Z","pricesRefreshedOn":"2026-06-12T11:12:29.057Z","appliedSlot":454526593,"errors":[]},"privateCredit":{"indexed":true,"positionsRefreshedOn":"2026-06-11T23:12:29.846Z","pricesRefreshedOn":"2026-06-12T11:12:29.057Z","appliedSlot":454526593,"errors":[]},"staking":{"indexed":true,"positionsRefreshedOn":"2026-06-11T23:04:34.002Z","pricesRefreshedOn":"2026-06-12T11:12:29.057Z","appliedSlot":454526593,"errors":[]}},"lending":[{"obligation":"HpAQMFgpSJ3XZWEXtSQgJmuL3Fd8QepJSG79csgq3hoB","market":"5wJeMrUYECGq41fxRESKALVcHnNX26TAWy4W98yULsua","tag":"Vanilla","netValue":"262.00710654164595037","totalDepositValue":"491.89391304710577576","totalBorrowValue":"229.88680650545982539","ltv":"0.4673503786241097951","maxLtv":"0.5727335057760832411","liquidationLtv":"0.63241141170317723635","leverage":"1.8774067602205262589","netApy":"-0.0446","baseApy":"-0.057","farmRewardsApy":"0.0124","assetYieldApy":"0","deposits":[{"mint":"XsoCS1TfEyfFhfvj8EtZ528L3CaKBDBRqRapnBbDF2W","symbol":"SPYx","amount":"0.16082255065800625522","value":"119.1703926699327137","price":"741.005488237479553","reserve":"UvXjBuC7YZYaGB9Rn1PpBD1GySmjzunXgE8Zev9ua8d","maxLtv":"0.73","liquidationLtv":"0.75"}],"borrows":[{"mint":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","symbol":"USDC","amount":"229.95449131043213799","value":"229.88680650545982539","price":"0.99970566","reserve":"97zoywd8mPZsGTg8q1wdD2Wgkdrs2tqusp1Qqcxbyj7E","borrowFactor":"1"}]}],"multiply":[{"obligation":"2JsWdyxA15WodMBzRY5uNUJDvL71xm9NwfMj6qdYi3SC","market":"7u3HeHxYDLhnCoErrtycNokbQYbWGzLs6JSDqGAv5PfF","tag":"Multiply","netValue":"39.032947857306441512","totalDepositValue":"124.32509095187057771","totalBorrowValue":"85.292143094564136198","ltv":"0.68604126843215345899","maxLtv":"0.87000000000000000002","liquidationLtv":"0.91999999999999999997","leverage":"3.1851319917308934971","netApy":"0.141793","baseApy":"-0.118591","farmRewardsApy":"0.0215","assetYieldApy":"0.238884","deposits":[{"mint":"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn","symbol":"JitoSOL","amount":"1.4488817124626824571","value":"124.32509095187057771","price":"85.807619685221685924","reserve":"EVbyPKrHG6WBfm4dLxLMJpUDY43cCAcHSpV3KYjKsktW","maxLtv":"0.87","liquidationLtv":"0.92"}],"borrows":[{"mint":"So11111111111111111111111111111111111111112","symbol":"SOL","amount":"1.276825076608483649","value":"85.292143094564136198","price":"66.80017855","reserve":"d4A2prbA2whesmvHaL88BH6Ewn5N4bTSU2Ze8P6Bc4Q","borrowFactor":"1"}],"depositMint":"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn","borrowMint":"So11111111111111111111111111111111111111112"}],"leverage":[{"obligation":"VgtvJ1iCDAb65pWbwhvX33X6CWMWMdrYRABEhNTJ9xq","market":"7u3HeHxYDLhnCoErrtycNokbQYbWGzLs6JSDqGAv5PfF","tag":"Leverage","netValue":"8.774498333310038026","totalDepositValue":"23.724451929066735492","totalBorrowValue":"14.949953595756697466","ltv":"0.6301495874575001704","maxLtv":"0.75","liquidationLtv":"0.80000000000000000002","leverage":"2.7037958214663046734","netApy":"-0.116562","baseApy":"-0.116562","farmRewardsApy":"0","assetYieldApy":"0","deposits":[{"mint":"7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs","symbol":"ETH","amount":"0.014174648995927885562","value":"23.724451929066735492","price":"1673.72412085","reserve":"febGYTnFX4GbSGoFHFeJXUHgNaK53fB23uDins9Jp1E","maxLtv":"0.75","liquidationLtv":"0.8"}],"borrows":[{"mint":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","symbol":"USDC","amount":"14.954355260684127232","value":"14.949953595756697466","price":"0.99970566","reserve":"D6q6wuQSrifJKZYpR1M8R4YawnLDtDsMmWM1NbBmgJ59","borrowFactor":"1"}],"depositMint":"7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs","borrowMint":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"}],"liquidity":[{"strategy":"HBuYwvq67VKnLyKxPzDjzskyRMk7ps39gwHdvaPGwdmQ","shareMint":"7XB1azPg9hmD196uiGNa61EyvXbCmQhg8jSdptRGkRTZ","shares":"216.673457","netValue":"26.383693978132575086","tokenA":{"mint":"JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN","symbol":"JUP","amount":"54.602417609162028891","value":"9.1141301646553401798","price":"0.16691807"},"tokenB":{"mint":"bSo13r4TkiE4KumL71LsHTPpL2euBYLFx6h9HP3piy1","symbol":"bSOL","amount":"0.19898556021252914791","value":"17.269563813477234906","price":"86.788025196563257466"}}],"earn":[{"vault":"7cYGMEwQKhdYdugAyQBEqtwG6KhHyuEDcgUrdfGaV6qV","tokenMint":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","symbol":"USDC","name":"Core+ USDC Vault","netValue":"102.43833649457444653","shares":"97.742099","amount":"102.46849707200261978"}],"privateCredit":[{"vault":"91b1opzHNUQobfLZxGMNYT5qDRKoqV8FdsdQBmH4wBxy","tokenMint":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","symbol":"USDC","name":"Kamino Institutional USDC","netValue":"10.357873888364687946","shares":"10","amount":"10.360923522594328361"}],"staking":[{"mint":"KMNo3nJsBXfcpJTVhZcXLW7RmTwTt4GVFE7suUBo9sS","symbol":"KMNO","farm":"2sFZDpBn4sA42uNbAD6QzQ98rPSmqnPyksYe6SJKVvay","amount":"1700.2533519964832604","value":"30.92680935374059216","price":"0.01818953"}]}}},"exampleType":"examples"}},"exampleType":"examples"},"a86b2883-42bd-4f88-97a6-4ed36f38c8ca":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"High-level error message describing the failure","example":"Invalid query params","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"details":{"type":"array","items":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"details.items.[INDEX].additionalProperties","typeLabel":"any"},"uniqueKey":"details.items.[INDEX]","typeLabel":"object"},"description":"Detailed validation issues (present only for validation errors)","uniqueKey":"details","typeLabel":"object[]"}},"required":["error"],"description":"Bad request response (400)","example":{"error":"Invalid query request","details":[{"code":"invalid_union","errors":[[{"code":"custom","path":[],"message":"Invalid date string"}],[{"expected":"number","code":"invalid_type","path":[],"message":"Invalid input: expected number, received string"}]],"path":["start"],"message":"Invalid input"}]},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"Invalid query request","details":[{"code":"invalid_union","errors":[[{"code":"custom","path":[],"message":"Invalid date string"}],[{"expected":"number","code":"invalid_type","path":[],"message":"Invalid input: expected number, received string"}]],"path":["start"],"message":"Invalid input"}]}}},"exampleType":"generated"}},"exampleType":"generated"},"95f81ce6-cc23-41d5-a01d-c926e493c230":{"description":"Internal Server Error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Error message for internal server failure","example":"An internal error occurred","isRequired":true,"uniqueKey":"error","typeLabel":"string"}},"required":["error"],"description":"Internal server error response (500)","example":{"error":"An internal error occurred"},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"An internal error occurred"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{},"servers":{"0e13c83b-e1ef-463a-bec4-4eb69532e966":{"url":"https://api.kamino.finance"}}},"originalFileLocation":"kamino-api.json"},"subdomain":"kamino-3d73a151","siteName":"Kamino Docs","title":"Get portfolio source data for a wallet - Kamino Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-10T15:54:23.748Z","originalFileLocation":"build/portfolio/get-portfolio-source-data-for-a-wallet.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Returns source position rows across Kamino products (lending, multiply, leverage, liquidity, earn, private credit, staking). Portfolio totals, counts, fees, historical PnL, and display-only rollups are intentionally left to client composition or their dedicated endpoints. After a transaction, pass minSlot to read a portfolio that includes it.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Kamino Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/kamino-3d73a151/TKxHlmhBKtq3ekJ8/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/kamino-3d73a151/TKxHlmhBKtq3ekJ8/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/kamino-3d73a151/TKxHlmhBKtq3ekJ8/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/kamino-3d73a151/TKxHlmhBKtq3ekJ8/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/kamino-3d73a151/TKxHlmhBKtq3ekJ8/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/kamino-3d73a151/TKxHlmhBKtq3ekJ8/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/kamino-3d73a151/TKxHlmhBKtq3ekJ8/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/kamino-3d73a151/TKxHlmhBKtq3ekJ8/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/kamino-3d73a151/TKxHlmhBKtq3ekJ8/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Get portfolio source data for a wallet - Kamino Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Returns source position rows across Kamino products (lending, multiply, leverage, liquidity, earn, private credit, staking). Portfolio totals, counts, fees, historical PnL, and display-only rollups are intentionally left to client composition or their dedicated endpoints. After a transaction, pass minSlot to read a portfolio that includes it.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Kamino Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.kamino.com/build/portfolio/get-portfolio-source-data-for-a-wallet\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://kamino-3d73a151.mintlify.site/_mintlify/api/og/v2?division=Portfolio\u0026amp;title=Get+portfolio+source+data+for+a+wallet\u0026amp;description=Returns+source+position+rows+across+Kamino+products+%28lending%2C+multiply%2C+leverage%2C+liquidity%2C+earn%2C+private+credit%2C+staking%29.+Portfolio+totals%2C+counts%2C+fees%2C+his\u0026amp;theme=d3833c2a4df0bd4f2980a795\u0026amp;signature=edf1c777bd8a7350b8f921a35059e563c95bf06e0c1812a557ac99bdfb084a5c\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Get portfolio source data for a wallet - Kamino Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Returns source position rows across Kamino products (lending, multiply, leverage, liquidity, earn, private credit, staking). Portfolio totals, counts, fees, historical PnL, and display-only rollups are intentionally left to client composition or their dedicated endpoints. After a transaction, pass minSlot to read a portfolio that includes it.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://kamino-3d73a151.mintlify.site/_mintlify/api/og/v2?division=Portfolio\u0026amp;title=Get+portfolio+source+data+for+a+wallet\u0026amp;description=Returns+source+position+rows+across+Kamino+products+%28lending%2C+multiply%2C+leverage%2C+liquidity%2C+earn%2C+private+credit%2C+staking%29.+Portfolio+totals%2C+counts%2C+fees%2C+his\u0026amp;theme=d3833c2a4df0bd4f2980a795\u0026amp;signature=edf1c777bd8a7350b8f921a35059e563c95bf06e0c1812a557ac99bdfb084a5c\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/kamino-3d73a151/TKxHlmhBKtq3ekJ8/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Kamino Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#082A56\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.kamino.com/build/portfolio/get-portfolio-source-data-for-a-wallet\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/build/portfolio/get-portfolio-source-data-for-a-wallet.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.kamino.com/#organization\",\"name\":\"Kamino Docs\",\"url\":\"https://docs.kamino.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/kamino-3d73a151/EHpt5rRzyV5R3dXt/images/logo/light.svg?fit=max\u0026auto=format\u0026n=EHpt5rRzyV5R3dXt\u0026q=85\u0026s=41146f93128a10f923dfe0829b84ceeb\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.kamino.com#website\",\"name\":\"Kamino Docs\",\"url\":\"https://docs.kamino.com\",\"publisher\":{\"@id\":\"https://docs.kamino.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.kamino.com/build/portfolio/get-portfolio-source-data-for-a-wallet#webpage\",\"url\":\"https://docs.kamino.com/build/portfolio/get-portfolio-source-data-for-a-wallet\",\"name\":\"Get portfolio source data for a wallet\",\"description\":\"Returns source position rows across Kamino products (lending, multiply, leverage, liquidity, earn, private credit, staking). Portfolio totals, counts, fees, historical PnL, and display-only rollups are intentionally left to client composition or their dedicated endpoints. After a transaction, pass minSlot to read a portfolio that includes it.\",\"dateModified\":\"2026-11-10T15:54:23.748Z\",\"isPartOf\":{\"@id\":\"https://docs.kamino.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.kamino.com/build/portfolio/get-portfolio-source-data-for-a-wallet#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.kamino.com/build/portfolio/get-portfolio-source-data-for-a-wallet#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Full API Reference\",\"item\":\"https://docs.kamino.com/build/kamino-lend-borrow/get-transaction-to-borrow-liquidity-from-a-klend-reserve\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Get portfolio source data for a wallet\",\"item\":\"https://docs.kamino.com/build/portfolio/get-portfolio-source-data-for-a-wallet\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.kamino.com/build/portfolio/get-portfolio-source-data-for-a-wallet#apireference\",\"headline\":\"Get portfolio source data for a wallet\",\"name\":\"Get portfolio source data for a wallet\",\"description\":\"Returns source position rows across Kamino products (lending, multiply, leverage, liquidity, earn, private credit, staking). Portfolio totals, counts, fees, historical PnL, and display-only rollups are intentionally left to client composition or their dedicated endpoints. After a transaction, pass minSlot to read a portfolio that includes it.\",\"url\":\"https://docs.kamino.com/build/portfolio/get-portfolio-source-data-for-a-wallet\",\"mainEntityOfPage\":{\"@id\":\"https://docs.kamino.com/build/portfolio/get-portfolio-source-data-for-a-wallet#webpage\"},\"dateModified\":\"2026-11-10T15:54:23.748Z\",\"publisher\":{\"@id\":\"https://docs.kamino.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.kamino.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Kamino Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Kamino Docs","nav":{"global":{"anchors":[]},"products":[{"product":"Docs","icon":"house","description":"Kamino Protocol Documentation","pages":[{"title":"Docs","href":""}]},{"product":"Buildkit","icon":"screwdriver-wrench","description":"Developer Documentation and APIs","tabs":[{"tab":"Get Started","pages":[{"title":"Get Started","href":"/build"}]},{"tab":"Developers","pages":[{"title":"Developers","href":"/build/developers/overview"}]},{"tab":"Earn","pages":[{"title":"Earn","href":"/build/earn"}]},{"tab":"Borrow","pages":[{"title":"Borrow","href":"/build/borrow"}]},{"tab":"Multiply","pages":[{"title":"Multiply","href":"/build/developers/multiply/overview"}]},{"tab":"Liquidity","pages":[{"title":"Liquidity","href":"/build/developers/liquidity/overview"}]},{"tab":"Rewards","pages":[{"title":"Rewards","href":"/build/developers/rewards/overview"}]},{"tab":"Oracle","pages":[{"title":"Oracle","href":"/build/developers/oracle/overview"}]},{"tab":"Portfolio","pages":[{"title":"Portfolio","href":"/build/developers/portfolio"}]},{"tab":"AI","pages":[{"title":"AI","href":"/build/agentic-finance/building-with-llms"}]},{"tab":"API Reference","groups":[{"group":"API Reference","icon":"code","pages":[{"title":"Kamino API","sidebarTitle":"Introduction","href":"/build/api-reference/introduction"}]},{"group":"Distributor Codes","icon":"tag","pages":[{"title":"Distributor codes","sidebarTitle":"Distributor codes","href":"/build/api-reference/distributors"},{"group":"Analytics","pages":[{"title":"Get distributor transactions of a vault","openapi":"kamino-api.json GET /kvaults/vaults/{pubkey}/distributor-transactions","href":"/build/api-reference/earn/distributors/vault-distributor-transactions"},{"title":"Get transactions for a distributor code","openapi":"kamino-api.json GET /kvaults/distributors/{code}/transactions","href":"/build/api-reference/earn/distributors/distributor-transactions"},{"title":"Get transactions for a distributor code in a vault","openapi":"kamino-api.json GET /kvaults/distributors/{code}/vaults/{vault}/transactions","href":"/build/api-reference/earn/distributors/distributor-vault-transactions"},{"title":"Get wallet totals for a distributor code","openapi":"kamino-api.json GET /kvaults/distributors/{code}/wallets","href":"/build/api-reference/earn/distributors/distributor-wallets"}]}]},{"group":"Earn","icon":"chart-line","pages":[{"group":"Vault Data","pages":[{"title":"Get all kvaults","openapi":"kamino-api.json GET /kvaults/vaults","href":"/build/api-reference/earn/vault-data/vaults-list"},{"title":"Get KVault by address","openapi":"kamino-api.json GET /kvaults/vaults/{pubkey}","href":"/build/api-reference/earn/vault-data/vault-detail"},{"title":"Get current KVault metrics","openapi":"kamino-api.json GET /kvaults/vaults/{pubkey}/metrics","href":"/build/api-reference/earn/vault-data/vault-metrics"},{"title":"Get historical KVault metrics","openapi":"kamino-api.json GET /kvaults/vaults/{pubkey}/metrics/history","href":"/build/api-reference/earn/vault-data/vault-metrics-history"},{"title":"Get historical KVault allocation volume","openapi":"kamino-api.json GET /kvaults/vaults/{pubkey}/allocation-volume/history","href":"/build/api-reference/earn/vault-data/vault-allocation-history"},{"title":"Get all KVault season rewards","openapi":"kamino-api.json GET /kvaults/rewards","href":"/build/api-reference/earn/vault-data/vaults-rewards"},{"title":"Get summary of the KVault program earnings","openapi":"kamino-api.json GET /kvaults/summary","href":"/build/api-reference/earn/vault-data/vaults-summary"},{"title":"Get metadata for KVault token","openapi":"kamino-api.json GET /kvaults/mints/{pubkey}/metadata","href":"/build/api-reference/earn/vault-data/vault-mint-metadata"},{"title":"Get icon for KVault token","openapi":"kamino-api.json GET /kvaults/mints/{pubkey}/metadata/image.svg","href":"/build/api-reference/earn/vault-data/vault-mint-image"}]},{"group":"User Data","pages":[{"title":"Get historical user metrics for all KVault positions","openapi":"kamino-api.json GET /kvaults/users/{pubkey}/metrics/history","href":"/build/api-reference/earn/user-data/user-metrics-history"},{"title":"Get user KVault transactions","openapi":"kamino-api.json GET /kvaults/users/{pubkey}/transactions","href":"/build/api-reference/earn/user-data/user-transactions"},{"title":"Get all user KVault positions","openapi":"kamino-api.json GET /kvaults/users/{pubkey}/positions","href":"/build/api-reference/earn/user-data/user-positions"},{"title":"Get user position for a specific KVault","openapi":"kamino-api.json GET /kvaults/users/{userPubkey}/positions/{vaultPubkey}","href":"/build/api-reference/earn/user-data/user-vault-position"},{"title":"Get historical user metrics for a single KVault","openapi":"kamino-api.json GET /kvaults/users/{userPubkey}/vaults/{vaultPubkey}/metrics/history","href":"/build/api-reference/earn/user-data/user-vault-metrics-history"},{"title":"Get user KVault PnL","openapi":"kamino-api.json GET /kvaults/users/{userPubkey}/vaults/{vaultPubkey}/pnl","href":"/build/api-reference/earn/user-data/user-vault-pnl"},{"title":"Get user KVault PnL history","openapi":"kamino-api.json GET /kvaults/users/{userPubkey}/vaults/{vaultPubkey}/pnl/history","href":"/build/api-reference/earn/user-data/user-vault-pnl-history"}]},{"group":"Deposit Txn","pages":[{"title":"Get transaction to deposit into a kvault","openapi":"ktx-api.json POST /ktx/kvault/deposit","href":"/build/api-reference/earn/actions/deposit/kvault-deposit"},{"title":"Get instructions to deposit into a kvault","openapi":"ktx-api.json POST /ktx/kvault/deposit-instructions","href":"/build/api-reference/earn/actions/deposit/kvault-deposit-instructions"}]},{"group":"Withdraw Txn","pages":[{"title":"Get transaction to withdraw from a kvault","openapi":"ktx-api.json POST /ktx/kvault/withdraw","href":"/build/api-reference/earn/actions/withdraw/kvault-withdraw"},{"title":"Get instructions to withdraw from a kvault","openapi":"ktx-api.json POST /ktx/kvault/withdraw-instructions","href":"/build/api-reference/earn/actions/withdraw/kvault-withdraw-instructions"}]}]},{"group":"Borrow","icon":"coins","pages":[{"group":"Market Data","pages":[{"title":"Get all Kamino Markets config","openapi":"kamino-api.json GET /v2/kamino-market","href":"/build/api-reference/borrow/market-data/markets-list"},{"title":"Get Kamino Market config","openapi":"kamino-api.json GET /v2/kamino-market/{pubkey}","href":"/build/api-reference/borrow/market-data/market-detail"},{"title":"Get metrics for market reserves","openapi":"kamino-api.json GET /kamino-market/{pubkey}/reserves/metrics","href":"/build/api-reference/borrow/market-data/market-reserves-metrics"},{"title":"Get KLend reserve history","openapi":"kamino-api.json GET /kamino-market/{marketPubkey}/reserves/{reservePubkey}/metrics/history","href":"/build/api-reference/borrow/market-data/market-reserve-metrics-history"},{"title":"Get metrics for leverage/multiply vaults","openapi":"kamino-api.json GET /kamino-market/{pubkey}/leverage/metrics","href":"/build/api-reference/borrow/market-data/market-leverage-metrics"},{"title":"Get KLend market reserves account data","openapi":"kamino-api.json GET /kamino-market/reserves/account-data","href":"/build/api-reference/borrow/market-data/market-reserves-account-data"}]},{"group":"User and Loans Data","pages":[{"title":"Get user KLend rewards","openapi":"kamino-api.json GET /klend/users/{pubkey}/rewards","href":"/build/api-reference/borrow/user-and-loans-data/user-rewards"},{"title":"Get information about a loan (obligation)","openapi":"kamino-api.json GET /klend/loans/{pubkey}","href":"/build/api-reference/borrow/user-and-loans-data/loan-detail"},{"title":"Get all user obligations","openapi":"kamino-api.json GET /kamino-market/{marketPubkey}/users/{userPubkey}/obligations","href":"/build/api-reference/borrow/user-and-loans-data/user-obligations"},{"title":"Get profit and loss for an obligation","openapi":"kamino-api.json GET /v2/kamino-market/{marketPubkey}/obligations/{obligationPubkey}/pnl","href":"/build/api-reference/borrow/user-and-loans-data/obligation-pnl"},{"title":"Get KLend obligation history","openapi":"kamino-api.json GET /v2/kamino-market/{marketPubkey}/obligations/{obligationPubkey}/metrics/history","href":"/build/api-reference/borrow/user-and-loans-data/obligation-metrics-history"}]},{"group":"Rewards","pages":[{"title":"Get KLend rewards","openapi":"kamino-api.json GET /klend/rewards","href":"/build/api-reference/borrow/rewards/rewards-list"},{"title":"Get KLend reward history","openapi":"kamino-api.json GET /klend/{depositReservePubkey}/{borrowReservePubkey}/rewards/history","href":"/build/api-reference/borrow/rewards/rewards-history"}]},{"group":"Deposit Txn","pages":[{"title":"Get transaction to deposit into a klend reserve","openapi":"ktx-api.json POST /ktx/klend/deposit","href":"/build/api-reference/borrow/actions/deposit/klend-deposit"},{"title":"Get instructions to deposit into a klend reserve","openapi":"ktx-api.json POST /ktx/klend/deposit-instructions","href":"/build/api-reference/borrow/actions/deposit/klend-deposit-instructions"}]},{"group":"Withdraw Txn","pages":[{"title":"Get transaction to withdraw from a klend reserve","openapi":"ktx-api.json POST /ktx/klend/withdraw","href":"/build/api-reference/borrow/actions/withdraw/klend-withdraw"},{"title":"Get instructions to withdraw from a klend reserve","openapi":"ktx-api.json POST /ktx/klend/withdraw-instructions","href":"/build/api-reference/borrow/actions/withdraw/klend-withdraw-instructions"}]},{"group":"Borrow Txn","pages":[{"title":"Get transaction to borrow liquidity from a klend reserve","openapi":"ktx-api.json POST /ktx/klend/borrow","href":"/build/api-reference/borrow/actions/borrow/klend-borrow"},{"title":"Get instructions to borrow liquidity from a klend reserve","openapi":"ktx-api.json POST /ktx/klend/borrow-instructions","href":"/build/api-reference/borrow/actions/borrow/klend-borrow-instructions"}]},{"group":"Repay Txn","pages":[{"title":"Get transaction to repay debt of a klend reserve","openapi":"ktx-api.json POST /ktx/klend/repay","href":"/build/api-reference/borrow/actions/repay/klend-repay"},{"title":"Get instructions to repay debt of a klend reserve","openapi":"ktx-api.json POST /ktx/klend/repay-instructions","href":"/build/api-reference/borrow/actions/repay/klend-repay-instructions"}]}]},{"group":"Liquidity","icon":"droplet","pages":[{"group":"Strategy Data","pages":[{"title":"Get all strategies","openapi":"kamino-extra-api.json GET /strategies","href":"/build/api-reference/liquidity/strategy-data/strategies-list"},{"title":"Get strategy metrics","openapi":"kamino-extra-api.json GET /strategies/{pubkey}/metrics","href":"/build/api-reference/liquidity/strategy-data/strategy-metrics"},{"title":"Get strategy historical metrics","openapi":"kamino-extra-api.json GET /v2/strategies/{pubkey}/history","href":"/build/api-reference/liquidity/strategy-data/strategy-metrics-history"},{"title":"Get total strategy TVL","openapi":"kamino-extra-api.json GET /strategies/tvl","href":"/build/api-reference/liquidity/strategy-data/strategies-tvl"},{"title":"Get strategy fees and rewards","openapi":"kamino-extra-api.json GET /strategies/fees-and-rewards","href":"/build/api-reference/liquidity/strategy-data/strategies-fees-and-rewards"}]},{"group":"User Data","pages":[{"title":"Get user PnL","openapi":"kamino-extra-api.json GET /v2/strategies/{strategyPubkey}/shareholders/{walletPubkey}/pnl","href":"/build/api-reference/liquidity/user-data/user-pnl"},{"title":"Get user PnL history","openapi":"kamino-extra-api.json GET /v2/strategies/{strategyPubkey}/shareholders/{walletPubkey}/pnl/history","href":"/build/api-reference/liquidity/user-data/user-pnl-history"},{"title":"Get user fees and rewards","openapi":"kamino-extra-api.json GET /strategies/{strategyPubkey}/shareholders/{walletPubkey}/fees-and-rewards","href":"/build/api-reference/liquidity/user-data/user-fees-and-rewards"},{"title":"Get user rewards history","openapi":"kamino-extra-api.json GET /strategies/shareholders/{walletPubkey}/rewards/history","href":"/build/api-reference/liquidity/user-data/user-rewards-history"},{"title":"Get user transactions","openapi":"kamino-extra-api.json GET /v2/shareholders/{walletPubkey}/transactions","href":"/build/api-reference/liquidity/user-data/user-transactions"}]}]},{"group":"Oracle","icon":"satellite-dish","pages":[{"group":"Prices","pages":[{"title":"Get oracle prices","openapi":"kamino-api.json GET /oracles/prices","href":"/build/api-reference/oracle/oracle-prices"},{"title":"Get token prices","openapi":"kamino-extra-api.json GET /prices","href":"/build/api-reference/oracle/token-prices"},{"title":"Get token price history","openapi":"kamino-extra-api.json GET /prices/history","href":"/build/api-reference/oracle/token-prices-history"}]}]},{"group":"Rewards","icon":"seedling","pages":[{"group":"Farm Data","pages":[{"title":"Get farm transactions","openapi":"kamino-api.json GET /farms/{farmPubkey}/transactions","href":"/build/api-reference/rewards/farm-transactions"},{"title":"Get farm management history","openapi":"kamino-api.json GET /farms/{farmPubkey}/management-history","href":"/build/api-reference/rewards/farm-management-history"}]},{"group":"User Data","pages":[{"title":"Get user farm transactions","openapi":"kamino-api.json GET /farms/users/{pubkey}/transactions","href":"/build/api-reference/rewards/user-transactions"}]}]},{"group":"Portfolio","icon":"chart-pie","pages":[{"group":"Wallet Data","pages":[{"title":"Get portfolio source data for a wallet","openapi":"kamino-api.json GET /portfolio/{pubkey}","href":"/build/api-reference/portfolio/portfolio-source-data"},{"title":"Get pending farm rewards for a wallet","openapi":"kamino-api.json GET /portfolio/{pubkey}/rewards","href":"/build/api-reference/portfolio/portfolio-rewards"}]}]},{"group":"Tokens","icon":"coins","pages":[{"title":"Get tokens","openapi":"kamino-extra-api.json GET /tokens-api/tokens","href":"/build/api-reference/tokens/token-list"}]},{"group":"Swap","icon":"right-left","pages":[{"group":"Route","pages":[{"title":"Swap","openapi":"kswap-api.json GET /kswap/swap/","href":"/build/api-reference/kswap/swap"}]}]},{"group":"Lookup Tables","icon":"table","pages":[{"group":"Managed LUTs","pages":[{"title":"Find Lookup Tables for addresses","openapi":"kamino-api.json POST /luts/find-minimal","href":"/build/api-reference/luts/find-minimal"},{"title":"Get managed LUTs for a product","openapi":"kamino-api.json GET /luts/managed","href":"/build/api-reference/luts/managed"},{"title":"Get managed LUTs for multiple products","openapi":"kamino-api.json GET /luts/managed/batch","href":"/build/api-reference/luts/managed-batch"},{"title":"Get managed LUTs by product type","openapi":"kamino-api.json GET /luts/managed/product-type/{productType}","href":"/build/api-reference/luts/managed-product-type"},{"title":"Register a new vault with its on-chain LUT","openapi":"kamino-api.json POST /luts/managed/new-vault","href":"/build/api-reference/luts/new-vault"}]}]},{"group":"Full API Reference","icon":"folder","pages":[{"group":"Actions","pages":[{"group":"Kamino Lend Borrow","pages":[{"title":"Get transaction to borrow liquidity from a klend reserve","deprecated":null,"version":null,"openapi":"/ktx-api.json post /ktx/klend/borrow","href":"/build/kamino-lend-borrow/get-transaction-to-borrow-liquidity-from-a-klend-reserve"},{"title":"Get instructions to borrow liquidity from a klend reserve","deprecated":null,"version":null,"openapi":"/ktx-api.json post /ktx/klend/borrow-instructions","href":"/build/kamino-lend-borrow/get-instructions-to-borrow-liquidity-from-a-klend-reserve"}]},{"group":"Kamino Lend Deposit","pages":[{"title":"Get transaction to deposit into a klend reserve","deprecated":null,"version":null,"openapi":"/ktx-api.json post /ktx/klend/deposit","href":"/build/kamino-lend-deposit/get-transaction-to-deposit-into-a-klend-reserve"},{"title":"Get instructions to deposit into a klend reserve","deprecated":null,"version":null,"openapi":"/ktx-api.json post /ktx/klend/deposit-instructions","href":"/build/kamino-lend-deposit/get-instructions-to-deposit-into-a-klend-reserve"}]},{"group":"Kamino Lend Repay","pages":[{"title":"Get transaction to repay debt of a klend reserve","deprecated":null,"version":null,"openapi":"/ktx-api.json post /ktx/klend/repay","href":"/build/kamino-lend-repay/get-transaction-to-repay-debt-of-a-klend-reserve"},{"title":"Get instructions to repay debt of a klend reserve","deprecated":null,"version":null,"openapi":"/ktx-api.json post /ktx/klend/repay-instructions","href":"/build/kamino-lend-repay/get-instructions-to-repay-debt-of-a-klend-reserve"}]},{"group":"Kamino Lend Withdraw","pages":[{"title":"Get transaction to withdraw from a klend reserve","deprecated":null,"version":null,"openapi":"/ktx-api.json post /ktx/klend/withdraw","href":"/build/kamino-lend-withdraw/get-transaction-to-withdraw-from-a-klend-reserve"},{"title":"Get instructions to withdraw from a klend reserve","deprecated":null,"version":null,"openapi":"/ktx-api.json post /ktx/klend/withdraw-instructions","href":"/build/kamino-lend-withdraw/get-instructions-to-withdraw-from-a-klend-reserve"}]},{"group":"Kamino Earn Deposit","pages":[{"title":"Get transaction to deposit into a kvault","deprecated":null,"version":null,"openapi":"/ktx-api.json post /ktx/kvault/deposit","href":"/build/kamino-earn-deposit/get-transaction-to-deposit-into-a-kvault"},{"title":"Get instructions to deposit into a kvault","deprecated":null,"version":null,"openapi":"/ktx-api.json post /ktx/kvault/deposit-instructions","href":"/build/kamino-earn-deposit/get-instructions-to-deposit-into-a-kvault"}]},{"group":"Kamino Earn Withdraw","pages":[{"title":"Get transaction to withdraw from a kvault","deprecated":null,"version":null,"openapi":"/ktx-api.json post /ktx/kvault/withdraw","href":"/build/kamino-earn-withdraw/get-transaction-to-withdraw-from-a-kvault"},{"title":"Get instructions to withdraw from a kvault","deprecated":null,"version":null,"openapi":"/ktx-api.json post /ktx/kvault/withdraw-instructions","href":"/build/kamino-earn-withdraw/get-instructions-to-withdraw-from-a-kvault"}]}]},{"group":"Kamino Lend Markets","pages":[{"title":"Get KLend Market metrics history","deprecated":null,"version":null,"openapi":"/kamino-api.json get /kamino-market/{pubkey}/metrics/history","href":"/build/kamino-lend-markets/get-klend-market-metrics-history"},{"title":"Get KLend reserve history","deprecated":null,"version":null,"openapi":"/kamino-api.json get /kamino-market/{marketPubkey}/reserves/{reservePubkey}/metrics/history","href":"/build/kamino-lend-markets/get-klend-reserve-history"},{"title":"Get metrics for market reserves","deprecated":null,"version":null,"openapi":"/kamino-api.json get /kamino-market/{pubkey}/reserves/metrics","href":"/build/kamino-lend-markets/get-metrics-for-market-reserves"},{"title":"Get metrics for leverage/multiply vaults","deprecated":null,"version":null,"openapi":"/kamino-api.json get /kamino-market/{pubkey}/leverage/metrics","href":"/build/kamino-lend-markets/get-metrics-for-leveragemultiply-vaults"},{"title":"Get KLend market reserves account data","deprecated":null,"version":null,"openapi":"/kamino-api.json get /kamino-market/reserves/account-data","href":"/build/kamino-lend-markets/get-klend-market-reserves-account-data"},{"title":"Get collateral reserves with borrowable reserves","deprecated":null,"version":null,"openapi":"/kamino-api.json get /markets/collateral-reserves","href":"/build/kamino-lend-markets/get-collateral-reserves-with-borrowable-reserves"},{"title":"Get max leverage per Multiply pair","deprecated":null,"version":null,"openapi":"/kamino-api.json get /markets/multiply-pairs","href":"/build/kamino-lend-markets/get-max-leverage-per-multiply-pair"},{"title":"Get metadata for multiple markets","deprecated":null,"version":null,"openapi":"/kamino-api.json get /markets/batch/metadata","href":"/build/kamino-lend-markets/get-metadata-for-multiple-markets"},{"title":"Get metadata for a market","deprecated":null,"version":null,"openapi":"/kamino-api.json get /markets/{marketPubkey}/metadata","href":"/build/kamino-lend-markets/get-metadata-for-a-market"},{"title":"Get charts for a market","deprecated":null,"version":null,"openapi":"/kamino-api.json get /markets/{marketPubkey}/charts","href":"/build/kamino-lend-markets/get-charts-for-a-market"},{"title":"Get all Kamino Markets config","deprecated":null,"version":null,"openapi":"/kamino-api.json get /v2/kamino-market","href":"/build/kamino-lend-markets/get-all-kamino-markets-config"},{"title":"Get Kamino Market config","deprecated":null,"version":null,"openapi":"/kamino-api.json get /v2/kamino-market/{pubkey}","href":"/build/kamino-lend-markets/get-kamino-market-config"}]},{"group":"Kamino Lend Yield","pages":[{"title":"Get KLend reserve borrow APY and staking APY history","deprecated":null,"version":null,"openapi":"/kamino-api.json get /kamino-market/{marketPubkey}/reserves/{reservePubkey}/borrow-and-staking-apys/history","href":"/build/kamino-lend-yield/get-klend-reserve-borrow-apy-and-staking-apy-history"},{"title":"Get KLend reserve borrow APY and median staking APY history","deprecated":null,"version":null,"openapi":"/kamino-api.json get /kamino-market/{marketPubkey}/reserves/{reservePubkey}/borrow-and-staking-apys/history/median","href":"/build/kamino-lend-yield/get-klend-reserve-borrow-apy-and-median-staking-apy-history"},{"title":"Get a KLend deposit position history","deprecated":null,"version":null,"openapi":"/kamino-api.json get /v3/kamino-market/{marketPubkey}/obligations/{obligationPubkey}/deposits/{reservePubkey}/metrics/history","href":"/build/kamino-lend-yield/get-a-klend-deposit-position-history"},{"title":"Get stored interest fees earned per obligation","deprecated":null,"version":null,"openapi":"/kamino-api.json get /v3/kamino-market/{marketPubkey}/obligations/{obligationPubkey}/interest-fees","href":"/build/kamino-lend-yield/get-stored-interest-fees-earned-per-obligation"},{"title":"Get stored interest fees paid per obligation","deprecated":null,"version":null,"openapi":"/kamino-api.json get /v3/kamino-market/{marketPubkey}/obligations/{obligationPubkey}/interest-paid","href":"/build/kamino-lend-yield/get-stored-interest-fees-paid-per-obligation"},{"title":"Get interest fees earned per obligation","deprecated":true,"version":null,"openapi":"/kamino-api.json get /v2/kamino-market/{marketPubkey}/obligations/{obligationPubkey}/interest-fees","href":"/build/kamino-lend-yield/get-interest-fees-earned-per-obligation"},{"title":"Get interest fees paid per obligation","deprecated":true,"version":null,"openapi":"/kamino-api.json get /v2/kamino-market/{marketPubkey}/obligations/{obligationPubkey}/interest-paid","href":"/build/kamino-lend-yield/get-interest-fees-paid-per-obligation"},{"title":"Get user KLend rewards","deprecated":null,"version":null,"openapi":"/kamino-api.json get /klend/users/{pubkey}/rewards","href":"/build/kamino-lend-yield/get-user-klend-rewards"},{"title":"Get KLend rewards","deprecated":null,"version":null,"openapi":"/kamino-api.json get /klend/rewards","href":"/build/kamino-lend-yield/get-klend-rewards"},{"title":"Get KLend reward history","deprecated":null,"version":null,"openapi":"/kamino-api.json get /klend/{depositReservePubkey}/{borrowReservePubkey}/rewards/history","href":"/build/kamino-lend-yield/get-klend-reward-history"}]},{"group":"Kamino Lend User Loans","pages":[{"title":"Get all user obligations","deprecated":null,"version":null,"openapi":"/kamino-api.json get /kamino-market/{marketPubkey}/users/{userPubkey}/obligations","href":"/build/kamino-lend-user-loans/get-all-user-obligations"},{"title":"Get obligation analytics history","deprecated":null,"version":null,"openapi":"/kamino-api.json get /v2/kamino-market/{marketPubkey}/obligations/{obligationPubkey}/analytics/history","href":"/build/kamino-lend-user-loans/get-obligation-analytics-history"},{"title":"Get profit and loss for an obligation","deprecated":null,"version":null,"openapi":"/kamino-api.json get /v2/kamino-market/{marketPubkey}/obligations/{obligationPubkey}/pnl","href":"/build/kamino-lend-user-loans/get-profit-and-loss-for-an-obligation"},{"title":"Get profit and loss history for an obligation","deprecated":null,"version":null,"openapi":"/kamino-api.json get /v2/kamino-market/{marketPubkey}/obligations/{obligationPubkey}/pnl/history","href":"/build/kamino-lend-user-loans/get-profit-and-loss-history-for-an-obligation"},{"title":"Get KLend obligation history","deprecated":null,"version":null,"openapi":"/kamino-api.json get /v2/kamino-market/{marketPubkey}/obligations/{obligationPubkey}/metrics/history","href":"/build/kamino-lend-user-loans/get-klend-obligation-history"},{"title":"Get information about a loan (obligation)","deprecated":null,"version":null,"openapi":"/kamino-api.json get /klend/loans/{pubkey}","href":"/build/kamino-lend-user-loans/get-information-about-a-loan-obligation"}]},{"group":"Kamino Lend Reserves","pages":[{"title":"Get charts for a reserve","deprecated":null,"version":null,"openapi":"/kamino-api.json get /reserves/{reservePubkey}/charts","href":"/build/kamino-lend-reserves/get-charts-for-a-reserve"},{"title":"Get stats for multiple reserves","deprecated":null,"version":null,"openapi":"/kamino-api.json get /reserves/batch/stats","href":"/build/kamino-lend-reserves/get-stats-for-multiple-reserves"},{"title":"Get stats for a reserve","deprecated":null,"version":null,"openapi":"/kamino-api.json get /reserves/{reservePubkey}/stats","href":"/build/kamino-lend-reserves/get-stats-for-a-reserve"}]},{"group":"Kamino Liquidity","pages":[{"title":"Get Liquidity transactions by shareholder wallet address","deprecated":null,"version":null,"openapi":"/kamino-api.json get /v2/shareholders/{pubkey}/transactions","href":"/build/kamino-liquidity/get-liquidity-transactions-by-shareholder-wallet-address"}]},{"group":"Kamino Lend Transactions","pages":[{"title":"Get obligation transactions","deprecated":null,"version":null,"openapi":"/kamino-api.json get /v2/kamino-market/{marketPubkey}/obligations/{obligationPubkey}/transactions","href":"/build/kamino-lend-transactions/get-obligation-transactions"},{"title":"Get user transactions across all markets","deprecated":null,"version":null,"openapi":"/kamino-api.json get /v2/kamino-market/users/{userPubkey}/transactions","href":"/build/kamino-lend-transactions/get-user-transactions-across-all-markets"},{"title":"Get user transactions","deprecated":null,"version":null,"openapi":"/kamino-api.json get /v2/kamino-market/{marketPubkey}/users/{userPubkey}/transactions","href":"/build/kamino-lend-transactions/get-user-transactions"},{"title":"Get bulk market transactions","deprecated":null,"version":null,"openapi":"/kamino-api.json post /v2/kamino-market/{pubkey}/transactions","href":"/build/kamino-lend-transactions/get-bulk-market-transactions"},{"title":"Get user transactions across all markets (v3)","deprecated":null,"version":null,"openapi":"/kamino-api.json get /v3/kamino-market/users/{userPubkey}/transactions","href":"/build/kamino-lend-transactions/get-user-transactions-across-all-markets-v3"},{"title":"Get user transactions (v3)","deprecated":null,"version":null,"openapi":"/kamino-api.json get /v3/kamino-market/{marketPubkey}/users/{userPubkey}/transactions","href":"/build/kamino-lend-transactions/get-user-transactions-v3"},{"title":"Get bulk market transactions (v3)","deprecated":null,"version":null,"openapi":"/kamino-api.json post /v3/kamino-market/{pubkey}/transactions","href":"/build/kamino-lend-transactions/get-bulk-market-transactions-v3"},{"title":"Get paginated user transaction history","deprecated":null,"version":null,"openapi":"/kamino-api.json get /v3/kamino-market/users/{userPubkey}/transaction-history","href":"/build/kamino-lend-transactions/get-paginated-user-transaction-history"}]},{"group":"Kamino Lend Borrow Orders","pages":[{"title":"Get borrow order fills for an obligation","deprecated":null,"version":null,"openapi":"/kamino-api.json get /v2/kamino-market/obligations/{pubkey}/borrow-order-fills","href":"/build/kamino-lend-borrow-orders/get-borrow-order-fills-for-an-obligation"},{"title":"Get all obligations with open borrow orders in a market","deprecated":null,"version":null,"openapi":"/kamino-api.json get /v2/kamino-market/{pubkey}/obligations-with-open-borrow-orders","href":"/build/kamino-lend-borrow-orders/get-all-obligations-with-open-borrow-orders-in-a-market"}]},{"group":"Yields","pages":[{"title":"Get yield history","deprecated":null,"version":null,"openapi":"/kamino-api.json get /yields/{yieldSource}/history","href":"/build/yields/get-yield-history"},{"title":"Get principal token yields","deprecated":null,"version":null,"openapi":"/kamino-api.json get /yields/principal-tokens","href":"/build/yields/get-principal-token-yields"},{"title":"Get underlying token yield history","deprecated":null,"version":null,"openapi":"/kamino-api.json get /v2/underlying-yields/{mint}/history","href":"/build/yields/get-underlying-token-yield-history"}]},{"group":"Airdrop","pages":[{"title":"Get user airdrop allocations","deprecated":null,"version":null,"openapi":"/kamino-api.json get /v2/airdrop/users/{pubkey}/allocations","href":"/build/airdrop/get-user-airdrop-allocations"},{"title":"Get airdrop metrics","deprecated":null,"version":null,"openapi":"/kamino-api.json get /v2/airdrop/metrics","href":"/build/airdrop/get-airdrop-metrics"}]},{"group":"Staking Yields","pages":[{"title":"Get staking yields","deprecated":null,"version":null,"openapi":"/kamino-api.json get /v2/staking-yields","href":"/build/staking-yields/get-staking-yields"},{"title":"Get median staking yields","deprecated":null,"version":null,"openapi":"/kamino-api.json get /v2/staking-yields/median","href":"/build/staking-yields/get-median-staking-yields"},{"title":"Get mean staking yields","deprecated":null,"version":null,"openapi":"/kamino-api.json get /v2/staking-yields/mean","href":"/build/staking-yields/get-mean-staking-yields"}]},{"group":"Other","pages":[{"title":"Get Solana epochs metadata","deprecated":null,"version":null,"openapi":"/kamino-api.json get /epochs","href":"/build/other/get-solana-epochs-metadata"},{"title":"Get median Solana slot duration","deprecated":null,"version":null,"openapi":"/kamino-api.json get /slots/duration","href":"/build/other/get-median-solana-slot-duration"},{"title":"Get owner net value history","deprecated":null,"version":null,"openapi":"/kamino-api.json get /owners/{pubkey}/net-values/history","href":"/build/other/get-owner-net-value-history"},{"title":"Get filtered owner net value history","deprecated":null,"version":null,"openapi":"/kamino-api.json get /owners/{pubkey}/net-values/history/filtered","href":"/build/other/get-filtered-owner-net-value-history"},{"title":"Get Kamino oracle prices","deprecated":null,"version":null,"openapi":"/kamino-api.json get /oracles/prices","href":"/build/other/get-kamino-oracle-prices"},{"title":"Get USD benchmark lending rates","deprecated":null,"version":null,"openapi":"/kamino-api.json get /benchmark-rates/usd","href":"/build/other/get-usd-benchmark-lending-rates"},{"title":"Get SOFR rate history","deprecated":null,"version":null,"openapi":"/kamino-api.json get /benchmark-rates/sofr/history","href":"/build/other/get-sofr-rate-history"}]},{"group":"Kamino Earn User","pages":[{"title":"Get user KVault transactions","deprecated":null,"version":null,"openapi":"/kamino-api.json get /kvaults/users/{pubkey}/transactions","href":"/build/kamino-earn-user/get-user-kvault-transactions"},{"title":"Get all user KVault positions","deprecated":null,"version":null,"openapi":"/kamino-api.json get /kvaults/users/{pubkey}/positions","href":"/build/kamino-earn-user/get-all-user-kvault-positions"},{"title":"Get user position for a specific KVault","deprecated":null,"version":null,"openapi":"/kamino-api.json get /kvaults/users/{userPubkey}/positions/{vaultPubkey}","href":"/build/kamino-earn-user/get-user-position-for-a-specific-kvault"},{"title":"Get historical user metrics for all KVault positions","deprecated":null,"version":null,"openapi":"/kamino-api.json get /kvaults/users/{pubkey}/metrics/history","href":"/build/kamino-earn-user/get-historical-user-metrics-for-all-kvault-positions"},{"title":"Get historical user metrics for a single KVault","deprecated":null,"version":null,"openapi":"/kamino-api.json get /kvaults/users/{userPubkey}/vaults/{vaultPubkey}/metrics/history","href":"/build/kamino-earn-user/get-historical-user-metrics-for-a-single-kvault"},{"title":"Get user KVault PnL","deprecated":null,"version":null,"openapi":"/kamino-api.json get /kvaults/users/{userPubkey}/vaults/{vaultPubkey}/pnl","href":"/build/kamino-earn-user/get-user-kvault-pnl"},{"title":"Get user KVault PnL history","deprecated":null,"version":null,"openapi":"/kamino-api.json get /kvaults/users/{userPubkey}/vaults/{vaultPubkey}/pnl/history","href":"/build/kamino-earn-user/get-user-kvault-pnl-history"},{"title":"Get season user rewards","deprecated":null,"version":null,"openapi":"/kamino-api.json get /kvaults/users/{pubkey}/rewards","href":"/build/kamino-earn-user/get-season-user-rewards"}]},{"group":"Kamino Earn Vaults","pages":[{"title":"Get KVault allocation transactions","deprecated":null,"version":null,"openapi":"/kamino-api.json get /kvaults/vaults/{pubkey}/allocation-transactions","href":"/build/kamino-earn-vaults/get-kvault-allocation-transactions"},{"title":"Bulk get KVault transactions","deprecated":null,"version":null,"openapi":"/kamino-api.json post /kvaults/transactions","href":"/build/kamino-earn-vaults/bulk-get-kvault-transactions"},{"title":"Get KVault transactions by vault","deprecated":null,"version":null,"openapi":"/kamino-api.json post /kvaults/vaults/{pubkey}/transactions","href":"/build/kamino-earn-vaults/get-kvault-transactions-by-vault"},{"title":"Get currently queued withdraw-ticket redemptions for a vault","deprecated":null,"version":null,"openapi":"/kamino-api.json get /kvaults/vaults/{pubkey}/enqueued-withdraw-transactions","href":"/build/kamino-earn-vaults/get-currently-queued-withdraw-ticket-redemptions-for-a-vault"},{"title":"Get the live withdraw queue of a KVault","deprecated":null,"version":null,"openapi":"/kamino-api.json get /kvaults/vaults/{pubkey}/withdraw-queue","href":"/build/kamino-earn-vaults/get-the-live-withdraw-queue-of-a-kvault"},{"title":"Get all kvaults","deprecated":null,"version":null,"openapi":"/kamino-api.json get /kvaults/vaults","href":"/build/kamino-earn-vaults/get-all-kvaults"},{"title":"Get current KVault allocations","deprecated":null,"version":null,"openapi":"/kamino-api.json get /kvaults/vaults/{pubkey}/allocations","href":"/build/kamino-earn-vaults/get-current-kvault-allocations"},{"title":"Get current metrics for multiple KVaults","deprecated":null,"version":null,"openapi":"/kamino-api.json get /kvaults/vaults/metrics","href":"/build/kamino-earn-vaults/get-current-metrics-for-multiple-kvaults"},{"title":"Get KVault account data","deprecated":null,"version":null,"openapi":"/kamino-api.json get /kvaults/vaults/account-data","href":"/build/kamino-earn-vaults/get-kvault-account-data"},{"title":"Get stats for multiple KVaults","deprecated":null,"version":null,"openapi":"/kamino-api.json get /kvaults/vaults/batch/stats","href":"/build/kamino-earn-vaults/get-stats-for-multiple-kvaults"},{"title":"Get stats for a KVault","deprecated":null,"version":null,"openapi":"/kamino-api.json get /kvaults/vaults/{pubkey}/stats","href":"/build/kamino-earn-vaults/get-stats-for-a-kvault"},{"title":"Get historical metrics for multiple KVaults","deprecated":null,"version":null,"openapi":"/kamino-api.json get /kvaults/vaults/metrics/history","href":"/build/kamino-earn-vaults/get-historical-metrics-for-multiple-kvaults"},{"title":"Get KVault by address","deprecated":null,"version":null,"openapi":"/kamino-api.json get /kvaults/vaults/{pubkey}","href":"/build/kamino-earn-vaults/get-kvault-by-address"},{"title":"Get the share distribution of a KVault","deprecated":null,"version":null,"openapi":"/kamino-api.json get /kvaults/vaults/{pubkey}/holders","href":"/build/kamino-earn-vaults/get-the-share-distribution-of-a-kvault"},{"title":"Get historical KVault metrics","deprecated":null,"version":null,"openapi":"/kamino-api.json get /kvaults/vaults/{pubkey}/metrics/history","href":"/build/kamino-earn-vaults/get-historical-kvault-metrics"},{"title":"Get current KVault metrics","deprecated":null,"version":null,"openapi":"/kamino-api.json get /kvaults/vaults/{pubkey}/metrics","href":"/build/kamino-earn-vaults/get-current-kvault-metrics"},{"title":"Get historical KVault allocation volume","deprecated":null,"version":null,"openapi":"/kamino-api.json get /kvaults/vaults/{pubkey}/allocation-volume/history","href":"/build/kamino-earn-vaults/get-historical-kvault-allocation-volume"},{"title":"Compare historical KVault returns","deprecated":null,"version":null,"openapi":"/kamino-api.json get /kvaults/vaults/{pubkey}/returns-comparison","href":"/build/kamino-earn-vaults/compare-historical-kvault-returns"}]},{"group":"Multiply","pages":[{"title":"Get lifetime wallet Multiply earnings","deprecated":null,"version":null,"openapi":"/kamino-api.json get /owners/{pubkey}/multiply/pnl","href":"/build/multiply/get-lifetime-wallet-multiply-earnings"},{"title":"Get cumulative wallet Multiply earnings history","deprecated":null,"version":null,"openapi":"/kamino-api.json get /owners/{pubkey}/multiply/pnl/history","href":"/build/multiply/get-cumulative-wallet-multiply-earnings-history"}]},{"group":"Kamino Swap","pages":[{"title":"Get Swap transactions by user wallet address","deprecated":null,"version":null,"openapi":"/kamino-api.json get /kamino-swap/users/{pubkey}/transactions","href":"/build/kamino-swap/get-swap-transactions-by-user-wallet-address"}]},{"group":"Kamino Earn Vault Metadata","pages":[{"title":"Get metadata for KVault token","deprecated":null,"version":null,"openapi":"/kamino-api.json get /kvaults/mints/{pubkey}/metadata","href":"/build/kamino-earn-vault-metadata/get-metadata-for-kvault-token"},{"title":"Get icon for KVault token","deprecated":null,"version":null,"openapi":"/kamino-api.json get /kvaults/mints/{pubkey}/metadata/image.svg","href":"/build/kamino-earn-vault-metadata/get-icon-for-kvault-token"}]},{"group":"Lookup Tables","pages":[{"title":"Find Lookup Tables for addresses","deprecated":null,"version":null,"openapi":"/kamino-api.json post /luts/find-minimal","href":"/build/lookup-tables/find-lookup-tables-for-addresses"},{"title":"Get managed LUTs for a product","deprecated":null,"version":null,"openapi":"/kamino-api.json get /luts/managed","href":"/build/lookup-tables/get-managed-luts-for-a-product"},{"title":"Get managed LUTs for multiple products","deprecated":null,"version":null,"openapi":"/kamino-api.json get /luts/managed/batch","href":"/build/lookup-tables/get-managed-luts-for-multiple-products"},{"title":"Get managed LUTs by product type","deprecated":null,"version":null,"openapi":"/kamino-api.json get /luts/managed/product-type/{productType}","href":"/build/lookup-tables/get-managed-luts-by-product-type"},{"title":"Register a new vault with its on-chain LUT","deprecated":null,"version":null,"openapi":"/kamino-api.json post /luts/managed/new-vault","href":"/build/lookup-tables/register-a-new-vault-with-its-on-chain-lut"}]},{"group":"Season Rewards","pages":[{"title":"Get all KVault season rewards","deprecated":null,"version":null,"openapi":"/kamino-api.json get /kvaults/rewards","href":"/build/season-rewards/get-all-kvault-season-rewards"},{"title":"Get user staking boosts","deprecated":null,"version":null,"openapi":"/kamino-api.json get /users/{pubkey}/staking-boosts","href":"/build/season-rewards/get-user-staking-boosts"},{"title":"Get summary of the KVault program earnings","deprecated":null,"version":null,"openapi":"/kamino-api.json get /kvaults/summary","href":"/build/season-rewards/get-summary-of-the-kvault-program-earnings"},{"title":"Get user season rewards","deprecated":null,"version":null,"openapi":"/kamino-api.json get /season-rewards/users/{pubkey}","href":"/build/season-rewards/get-user-season-rewards"},{"title":"Get user season claim status","deprecated":null,"version":null,"openapi":"/kamino-api.json get /season-rewards/users/{pubkey}/claim-status","href":"/build/season-rewards/get-user-season-claim-status"},{"title":"Get final vesting pool allocation","deprecated":null,"version":null,"openapi":"/kamino-api.json get /season-rewards/final-vesting-pool","href":"/build/season-rewards/get-final-vesting-pool-allocation"}]},{"group":"Private Credit","pages":[{"title":"Get private credit metrics","deprecated":null,"version":null,"openapi":"/kamino-api.json get /kvaults/private-credit/metrics","href":"/build/private-credit/get-private-credit-metrics"},{"title":"Get private credit metrics history","deprecated":null,"version":null,"openapi":"/kamino-api.json get /kvaults/private-credit/metrics/history","href":"/build/private-credit/get-private-credit-metrics-history"}]},{"group":"Farms","pages":[{"title":"Get user farms transactions","deprecated":null,"version":null,"openapi":"/kamino-api.json get /farms/users/{pubkey}/transactions","href":"/build/farms/get-user-farms-transactions"},{"title":"Get farm transactions","deprecated":null,"version":null,"openapi":"/kamino-api.json get /farms/{farmPubkey}/transactions","href":"/build/farms/get-farm-transactions"},{"title":"Get farm management history","description":"Get management instructions for a specific farm (with pagination).","deprecated":null,"version":null,"openapi":"/kamino-api.json get /farms/{farmPubkey}/management-history","href":"/build/farms/get-farm-management-history"}]},{"group":"Portfolio","pages":[{"title":"Get portfolio source data for a wallet","deprecated":null,"version":null,"openapi":"/kamino-api.json get /portfolio/{pubkey}","href":"/build/portfolio/get-portfolio-source-data-for-a-wallet"},{"title":"Get pending farm rewards for a wallet","description":"Returns pending farm reward source rows across Kamino products. USD reward totals are composed on the client from price data.","deprecated":null,"version":null,"openapi":"/kamino-api.json get /portfolio/{pubkey}/rewards","href":"/build/portfolio/get-pending-farm-rewards-for-a-wallet"}]},{"group":"User","pages":[{"title":"Get raw token holdings for a wallet","deprecated":null,"version":null,"openapi":"/kamino-api.json get /user/{walletPubkey}/holdings","href":"/build/user/get-raw-token-holdings-for-a-wallet"}]},{"group":"Earn","pages":[{"title":"Get a wallet earn activity feed","deprecated":null,"version":null,"openapi":"/kamino-api.json get /v3/earn/users/{userPubkey}/activity","href":"/build/earn/get-a-wallet-earn-activity-feed"},{"title":"Get a wallet earn summary","deprecated":null,"version":null,"openapi":"/kamino-api.json get /v3/earn/users/{userPubkey}/summary","href":"/build/earn/get-a-wallet-earn-summary"},{"title":"Get wallet token earnings and growth history","deprecated":null,"version":null,"openapi":"/kamino-api.json get /v3/earn/users/{userPubkey}/tokens/{tokenMint}/metrics/history","href":"/build/earn/get-wallet-token-earnings-and-growth-history"},{"title":"Get wallet earnings and growth history for all tokens","deprecated":null,"version":null,"openapi":"/kamino-api.json get /v3/earn/users/{userPubkey}/tokens/metrics/history","href":"/build/earn/get-wallet-earnings-and-growth-history-for-all-tokens"}]},{"group":"Prices","pages":[{"title":"Get token USD price history","deprecated":null,"version":null,"openapi":"/kamino-api.json get /v2/prices/{mint}/history","href":"/build/prices/get-token-usd-price-history"}]},{"group":"Distributors","pages":[{"title":"Create a distributor","deprecated":null,"version":null,"openapi":"/kamino-api.json post /distributors","href":"/build/distributors/create-a-distributor"},{"title":"Get distributor-tagged transactions of a vault","deprecated":null,"version":null,"openapi":"/kamino-api.json get /kvaults/vaults/{pubkey}/distributor-transactions","href":"/build/distributors/get-distributor-tagged-transactions-of-a-vault"},{"title":"Get transactions tagged with a distributor code","deprecated":null,"version":null,"openapi":"/kamino-api.json get /kvaults/distributors/{code}/transactions","href":"/build/distributors/get-transactions-tagged-with-a-distributor-code"},{"title":"Get transactions tagged with a distributor code on one vault","deprecated":null,"version":null,"openapi":"/kamino-api.json get /kvaults/distributors/{code}/vaults/{vault}/transactions","href":"/build/distributors/get-transactions-tagged-with-a-distributor-code-on-one-vault"},{"title":"Get per-wallet totals for a distributor code","deprecated":null,"version":null,"openapi":"/kamino-api.json get /kvaults/distributors/{code}/wallets","href":"/build/distributors/get-per-wallet-totals-for-a-distributor-code"}]}]}]},{"tab":"Tutorials","pages":[{"title":"Tutorials","href":"/build/tutorials/earn"}]},{"tab":"Recipes","pages":[{"title":"Recipes","href":"/build/resources/building-with-llms"}]},{"tab":"Kamino CLI","pages":[{"title":"Kamino CLI","href":"/build/cli"}]}]},{"product":"Curators","icon":"star","description":"Curator Documentation","pages":[{"title":"Curators","href":"/curators"}]}]},"basePath":"","title":"Get portfolio source data for a wallet - Kamino Docs","buildId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","deploymentId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-C-hEh3I2.js","utils-CnF4QiUD.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-C7PVNbel.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-8ytevL2A.js","snippetPresets-BT1alx3v.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BLXC0i_W.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-CyLIGI9_.js","shallow-DC0lGVIW.js","getApiPlaygroundDisplay-CgDQ85tN.js","CodeSnippet-6-I-Gpv9.js","CodeSnippets-BAk1kDdu.js","Page-C945cI-W.js","getPastedJson-B276RuWN.js","icon-BqP8etTm.js","MethodPill-DM6sbxG1.js","DuplicateIcon-PyJglOaE.js","createIcon-CMeOMAc_.js","DynamicMarkdown-BoyYAA8K.js","SectionHeading-DAYv3gvZ.js","axios-vUo_bRtp.js","Markdown-BhTTmazV.js","clsx-CR-RHrVC.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CBUH0-zX.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BmARFYNC.js"]}