{"openapi":"3.1.0","info":{"title":"Kamino Transactions API","version":"1.0.0"},"components":{"schemas":{}},"paths":{"/ktx/klend/borrow":{"post":{"summary":"Get transaction to borrow liquidity from a klend reserve","tags":["Kamino Lend Borrow"],"description":"Borrow liquidity from the specified Kamino Lend market reserve","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"wallet":{"description":"User wallet address (base58) that will also sign the transaction","format":"solana-base58-address","minLength":32,"maxLength":44,"type":"string","example":"KUMtRazMP7vwvc2kthnGZ9Cq6ZsGRiYC97snMYepNx9"},"market":{"description":"Target Kamino Lend market address","format":"solana-base58-address","minLength":32,"maxLength":44,"type":"string","example":"7u3HeHxYDLhnCoErrtycNokbQYbWGzLs6JSDqGAv5PfF"},"reserve":{"description":"Target Kamino Lend Reserve address. The reserve must belong to the specified market","format":"solana-base58-address","minLength":32,"maxLength":44,"type":"string","example":"D6q6wuQSrifJKZYpR1M8R4YawnLDtDsMmWM1NbBmgJ59"},"amount":{"description":"Amount of liquidity token to borrow (in decimal format, not lamports)","format":"decimal-positive-amount","type":"string","example":"0.1234"}},"required":["wallet","market","reserve","amount"]}}},"required":true},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"transaction":{"description":"Encoded transaction ready to send","type":"string","example":"AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAQAEB4U90z775Z0G20Lzbx64AwbcGsJTUS+D6M2d1yQDvRL+MXyh2DY6ZPXvcFUmkblzqU7UrFcH4BAOPAPQXUWHKZS66KvlDTwMypF/H+icat/xVYNA0OvZ+RMaheXL0QJajAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD9ps6fZhmN2HDYqYbzBnXEb4Pi9Sg0h5UvXVBWPj73qMlyWPTiSJ8bs9ECkUjg2DC1oTmdr/EIQEjnvY2+n4WQTZCvHbiTnsNf+U2WQNV9zDJ5S7Phu2b9OuhJqE3NuUsuvLnkdJfjUAGox8/57aeYKvmQtCaruy3qoGNzwovloCBQYAAQAHAxEBAQYRAAsIDw0HAgEQEREEBgoJDgwQ8iPGiVLh8rYA4fUFAAAAAAGC6dRmw0Z9LrKw2cy+tHvb9JXuHBu0d9Dar60DX6fr5AUFLxMJAQYVBAsCBwM="}},"required":["transaction"]}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"description":"HTTP error code","type":"number","example":400},"message":{"description":"Error message describing the issue","type":"string"},"error":{"description":"Short description of the http status code","type":"string","example":"Bad Request"},"code":{"description":"Kamino error code","anyOf":[{"type":"string","enum":["DECIMAL_TO_LAMPORTS_OVERFLOW"]},{"type":"string","enum":["KLEND_MARKET_NOT_FOUND"]},{"type":"string","enum":["KLEND_OBLIGATION_NOT_FOUND"]},{"type":"string","enum":["KLEND_RESERVE_NOT_FOUND"]},{"type":"string","enum":["KVAULT_NOT_FOUND"]},{"type":"string","enum":["TRANSACTION_SIZE_ERROR"]}]}},"required":["statusCode","message","error"]}}}}}}},"/ktx/klend/borrow-instructions":{"post":{"summary":"Get instructions to borrow liquidity from a klend reserve","tags":["Kamino Lend Borrow"],"description":"Instructions to borrow liquidity from the specified Kamino Lend market reserve. Additionally includes lookup tables to use to compress transaction size","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"wallet":{"description":"User wallet address (base58) that will also sign the transaction","format":"solana-base58-address","minLength":32,"maxLength":44,"type":"string","example":"KUMtRazMP7vwvc2kthnGZ9Cq6ZsGRiYC97snMYepNx9"},"market":{"description":"Target Kamino Lend market address","format":"solana-base58-address","minLength":32,"maxLength":44,"type":"string","example":"7u3HeHxYDLhnCoErrtycNokbQYbWGzLs6JSDqGAv5PfF"},"reserve":{"description":"Target Kamino Lend Reserve address. The reserve must belong to the specified market","format":"solana-base58-address","minLength":32,"maxLength":44,"type":"string","example":"D6q6wuQSrifJKZYpR1M8R4YawnLDtDsMmWM1NbBmgJ59"},"amount":{"description":"Amount of liquidity token to borrow (in decimal format, not lamports)","format":"decimal-positive-amount","type":"string","example":"0.1234"}},"required":["wallet","market","reserve","amount"]}}},"required":true},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"instructions":{"type":"array","items":{"type":"object","properties":{"accounts":{"type":"array","items":{"type":"object","properties":{"address":{"type":"string"},"role":{"type":"string"},"signer":{"type":"object","properties":{"address":{"type":"string"}},"required":["address"]}},"required":["address","role"],"example":{"address":"9y7uLMUMW6EiRwH1aJFSp9Zka7dVx2JdZKA3858u6YHT","role":"WRITABLE_SIGNER","signer":{"address":"9y7uLMUMW6EiRwH1aJFSp9Zka7dVx2JdZKA3858u6YHT"}}}},"data":{"anyOf":[{"type":"string"},{"type":"null"}],"example":"8iPGiVLh8rYA4fUFAAAAAA=="},"programAddress":{"type":"string","example":"KvauGMspG5k6rtzrqqn7WNn3oZdyKqLKwK2XWQ8FLjd"}},"required":["accounts","data","programAddress"]}},"lutsByAddress":{"type":"object","additionalProperties":{"type":"array","items":{"description":"Referenced LUT address","type":"string"}},"example":{"9p2oT9J6BojHigd3V5qXzrwsQf4dtgMgLxtrzLVR3rwu":["sadmBTQm5HJsyzWHEjV4YwG9CiahZKVDVqAyS4Wx1zH","HDsayqAsDWy3QvANGqh2yNraqcD8Fnjgh73Mhb3WRS5E","EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"]}}},"required":["instructions","lutsByAddress"]}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"description":"HTTP error code","type":"number","example":400},"message":{"description":"Error message describing the issue","type":"string"},"error":{"description":"Short description of the http status code","type":"string","example":"Bad Request"},"code":{"description":"Kamino error code","anyOf":[{"type":"string","enum":["DECIMAL_TO_LAMPORTS_OVERFLOW"]},{"type":"string","enum":["KLEND_MARKET_NOT_FOUND"]},{"type":"string","enum":["KLEND_OBLIGATION_NOT_FOUND"]},{"type":"string","enum":["KLEND_RESERVE_NOT_FOUND"]},{"type":"string","enum":["KVAULT_NOT_FOUND"]},{"type":"string","enum":["TRANSACTION_SIZE_ERROR"]}]}},"required":["statusCode","message","error"]}}}}}}},"/ktx/klend/deposit":{"post":{"summary":"Get transaction to deposit into a klend reserve","tags":["Kamino Lend Deposit"],"description":"Deposit tokens into the specified Kamino Lend market reserve","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"wallet":{"description":"User wallet address (base58) that will also sign the transaction","format":"solana-base58-address","minLength":32,"maxLength":44,"type":"string","example":"KUMtRazMP7vwvc2kthnGZ9Cq6ZsGRiYC97snMYepNx9"},"market":{"description":"Target Kamino Lend market address","format":"solana-base58-address","minLength":32,"maxLength":44,"type":"string","example":"7u3HeHxYDLhnCoErrtycNokbQYbWGzLs6JSDqGAv5PfF"},"reserve":{"description":"Target Kamino Lend Reserve address. The reserve must belong to the specified market","format":"solana-base58-address","minLength":32,"maxLength":44,"type":"string","example":"D6q6wuQSrifJKZYpR1M8R4YawnLDtDsMmWM1NbBmgJ59"},"amount":{"description":"Amount of liquidity token to deposit (in decimal format, not lamports)","format":"decimal-positive-amount","type":"string","example":"0.1234"}},"required":["wallet","market","reserve","amount"]}}},"required":true},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"transaction":{"description":"Encoded transaction ready to send","type":"string","example":"AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAQAEB4U90z775Z0G20Lzbx64AwbcGsJTUS+D6M2d1yQDvRL+MXyh2DY6ZPXvcFUmkblzqU7UrFcH4BAOPAPQXUWHKZS66KvlDTwMypF/H+icat/xVYNA0OvZ+RMaheXL0QJajAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD9ps6fZhmN2HDYqYbzBnXEb4Pi9Sg0h5UvXVBWPj73qMlyWPTiSJ8bs9ECkUjg2DC1oTmdr/EIQEjnvY2+n4WQTZCvHbiTnsNf+U2WQNV9zDJ5S7Phu2b9OuhJqE3NuUsuvLnkdJfjUAGox8/57aeYKvmQtCaruy3qoGNzwovloCBQYAAQAHAxEBAQYRAAsIDw0HAgEQEREEBgoJDgwQ8iPGiVLh8rYA4fUFAAAAAAGC6dRmw0Z9LrKw2cy+tHvb9JXuHBu0d9Dar60DX6fr5AUFLxMJAQYVBAsCBwM="}},"required":["transaction"]}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"description":"HTTP error code","type":"number","example":400},"message":{"description":"Error message describing the issue","type":"string"},"error":{"description":"Short description of the http status code","type":"string","example":"Bad Request"},"code":{"description":"Kamino error code","anyOf":[{"type":"string","enum":["DECIMAL_TO_LAMPORTS_OVERFLOW"]},{"type":"string","enum":["KLEND_MARKET_NOT_FOUND"]},{"type":"string","enum":["KLEND_OBLIGATION_NOT_FOUND"]},{"type":"string","enum":["KLEND_RESERVE_NOT_FOUND"]},{"type":"string","enum":["KVAULT_NOT_FOUND"]},{"type":"string","enum":["TRANSACTION_SIZE_ERROR"]}]}},"required":["statusCode","message","error"]}}}}}}},"/ktx/klend/deposit-instructions":{"post":{"summary":"Get instructions to deposit into a klend reserve","tags":["Kamino Lend Deposit"],"description":"Instructions to deposit tokens into the specified Kamino Lend market reserve. Additionally includes lookup tables to use to compress transaction size","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"wallet":{"description":"User wallet address (base58) that will also sign the transaction","format":"solana-base58-address","minLength":32,"maxLength":44,"type":"string","example":"KUMtRazMP7vwvc2kthnGZ9Cq6ZsGRiYC97snMYepNx9"},"market":{"description":"Target Kamino Lend market address","format":"solana-base58-address","minLength":32,"maxLength":44,"type":"string","example":"7u3HeHxYDLhnCoErrtycNokbQYbWGzLs6JSDqGAv5PfF"},"reserve":{"description":"Target Kamino Lend Reserve address. The reserve must belong to the specified market","format":"solana-base58-address","minLength":32,"maxLength":44,"type":"string","example":"D6q6wuQSrifJKZYpR1M8R4YawnLDtDsMmWM1NbBmgJ59"},"amount":{"description":"Amount of liquidity token to deposit (in decimal format, not lamports)","format":"decimal-positive-amount","type":"string","example":"0.1234"}},"required":["wallet","market","reserve","amount"]}}},"required":true},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"instructions":{"type":"array","items":{"type":"object","properties":{"accounts":{"type":"array","items":{"type":"object","properties":{"address":{"type":"string"},"role":{"type":"string"},"signer":{"type":"object","properties":{"address":{"type":"string"}},"required":["address"]}},"required":["address","role"],"example":{"address":"9y7uLMUMW6EiRwH1aJFSp9Zka7dVx2JdZKA3858u6YHT","role":"WRITABLE_SIGNER","signer":{"address":"9y7uLMUMW6EiRwH1aJFSp9Zka7dVx2JdZKA3858u6YHT"}}}},"data":{"anyOf":[{"type":"string"},{"type":"null"}],"example":"8iPGiVLh8rYA4fUFAAAAAA=="},"programAddress":{"type":"string","example":"KvauGMspG5k6rtzrqqn7WNn3oZdyKqLKwK2XWQ8FLjd"}},"required":["accounts","data","programAddress"]}},"lutsByAddress":{"type":"object","additionalProperties":{"type":"array","items":{"description":"Referenced LUT address","type":"string"}},"example":{"9p2oT9J6BojHigd3V5qXzrwsQf4dtgMgLxtrzLVR3rwu":["sadmBTQm5HJsyzWHEjV4YwG9CiahZKVDVqAyS4Wx1zH","HDsayqAsDWy3QvANGqh2yNraqcD8Fnjgh73Mhb3WRS5E","EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"]}}},"required":["instructions","lutsByAddress"]}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"description":"HTTP error code","type":"number","example":400},"message":{"description":"Error message describing the issue","type":"string"},"error":{"description":"Short description of the http status code","type":"string","example":"Bad Request"},"code":{"description":"Kamino error code","anyOf":[{"type":"string","enum":["DECIMAL_TO_LAMPORTS_OVERFLOW"]},{"type":"string","enum":["KLEND_MARKET_NOT_FOUND"]},{"type":"string","enum":["KLEND_OBLIGATION_NOT_FOUND"]},{"type":"string","enum":["KLEND_RESERVE_NOT_FOUND"]},{"type":"string","enum":["KVAULT_NOT_FOUND"]},{"type":"string","enum":["TRANSACTION_SIZE_ERROR"]}]}},"required":["statusCode","message","error"]}}}}}}},"/ktx/klend/repay":{"post":{"summary":"Get transaction to repay debt of a klend reserve","tags":["Kamino Lend Repay"],"description":"Repay a debt position for the specified Kamino Lend market reserve","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"wallet":{"description":"User wallet address (base58) that will also sign the transaction","format":"solana-base58-address","minLength":32,"maxLength":44,"type":"string","example":"KUMtRazMP7vwvc2kthnGZ9Cq6ZsGRiYC97snMYepNx9"},"market":{"description":"Target Kamino Lend market address","format":"solana-base58-address","minLength":32,"maxLength":44,"type":"string","example":"7u3HeHxYDLhnCoErrtycNokbQYbWGzLs6JSDqGAv5PfF"},"reserve":{"description":"Target Kamino Lend Reserve address. The reserve must belong to the specified market","format":"solana-base58-address","minLength":32,"maxLength":44,"type":"string","example":"D6q6wuQSrifJKZYpR1M8R4YawnLDtDsMmWM1NbBmgJ59"},"amount":{"description":"Amount of debt to repay (in decimal format, not lamports)","format":"decimal-positive-amount","type":"string","example":"0.1234"}},"required":["wallet","market","reserve","amount"]}}},"required":true},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"transaction":{"description":"Encoded transaction ready to send","type":"string","example":"AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAQAEB4U90z775Z0G20Lzbx64AwbcGsJTUS+D6M2d1yQDvRL+MXyh2DY6ZPXvcFUmkblzqU7UrFcH4BAOPAPQXUWHKZS66KvlDTwMypF/H+icat/xVYNA0OvZ+RMaheXL0QJajAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD9ps6fZhmN2HDYqYbzBnXEb4Pi9Sg0h5UvXVBWPj73qMlyWPTiSJ8bs9ECkUjg2DC1oTmdr/EIQEjnvY2+n4WQTZCvHbiTnsNf+U2WQNV9zDJ5S7Phu2b9OuhJqE3NuUsuvLnkdJfjUAGox8/57aeYKvmQtCaruy3qoGNzwovloCBQYAAQAHAxEBAQYRAAsIDw0HAgEQEREEBgoJDgwQ8iPGiVLh8rYA4fUFAAAAAAGC6dRmw0Z9LrKw2cy+tHvb9JXuHBu0d9Dar60DX6fr5AUFLxMJAQYVBAsCBwM="}},"required":["transaction"]}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"description":"HTTP error code","type":"number","example":400},"message":{"description":"Error message describing the issue","type":"string"},"error":{"description":"Short description of the http status code","type":"string","example":"Bad Request"},"code":{"description":"Kamino error code","anyOf":[{"type":"string","enum":["DECIMAL_TO_LAMPORTS_OVERFLOW"]},{"type":"string","enum":["KLEND_MARKET_NOT_FOUND"]},{"type":"string","enum":["KLEND_OBLIGATION_NOT_FOUND"]},{"type":"string","enum":["KLEND_RESERVE_NOT_FOUND"]},{"type":"string","enum":["KVAULT_NOT_FOUND"]},{"type":"string","enum":["TRANSACTION_SIZE_ERROR"]}]}},"required":["statusCode","message","error"]}}}}}}},"/ktx/klend/repay-instructions":{"post":{"summary":"Get instructions to repay debt of a klend reserve","tags":["Kamino Lend Repay"],"description":"Instructions to repay a debt position for the specified Kamino Lend market reserve. Additionally includes lookup tables to use to compress transaction size","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"wallet":{"description":"User wallet address (base58) that will also sign the transaction","format":"solana-base58-address","minLength":32,"maxLength":44,"type":"string","example":"KUMtRazMP7vwvc2kthnGZ9Cq6ZsGRiYC97snMYepNx9"},"market":{"description":"Target Kamino Lend market address","format":"solana-base58-address","minLength":32,"maxLength":44,"type":"string","example":"7u3HeHxYDLhnCoErrtycNokbQYbWGzLs6JSDqGAv5PfF"},"reserve":{"description":"Target Kamino Lend Reserve address. The reserve must belong to the specified market","format":"solana-base58-address","minLength":32,"maxLength":44,"type":"string","example":"D6q6wuQSrifJKZYpR1M8R4YawnLDtDsMmWM1NbBmgJ59"},"amount":{"description":"Amount of debt to repay (in decimal format, not lamports)","format":"decimal-positive-amount","type":"string","example":"0.1234"}},"required":["wallet","market","reserve","amount"]}}},"required":true},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"instructions":{"type":"array","items":{"type":"object","properties":{"accounts":{"type":"array","items":{"type":"object","properties":{"address":{"type":"string"},"role":{"type":"string"},"signer":{"type":"object","properties":{"address":{"type":"string"}},"required":["address"]}},"required":["address","role"],"example":{"address":"9y7uLMUMW6EiRwH1aJFSp9Zka7dVx2JdZKA3858u6YHT","role":"WRITABLE_SIGNER","signer":{"address":"9y7uLMUMW6EiRwH1aJFSp9Zka7dVx2JdZKA3858u6YHT"}}}},"data":{"anyOf":[{"type":"string"},{"type":"null"}],"example":"8iPGiVLh8rYA4fUFAAAAAA=="},"programAddress":{"type":"string","example":"KvauGMspG5k6rtzrqqn7WNn3oZdyKqLKwK2XWQ8FLjd"}},"required":["accounts","data","programAddress"]}},"lutsByAddress":{"type":"object","additionalProperties":{"type":"array","items":{"description":"Referenced LUT address","type":"string"}},"example":{"9p2oT9J6BojHigd3V5qXzrwsQf4dtgMgLxtrzLVR3rwu":["sadmBTQm5HJsyzWHEjV4YwG9CiahZKVDVqAyS4Wx1zH","HDsayqAsDWy3QvANGqh2yNraqcD8Fnjgh73Mhb3WRS5E","EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"]}}},"required":["instructions","lutsByAddress"]}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"description":"HTTP error code","type":"number","example":400},"message":{"description":"Error message describing the issue","type":"string"},"error":{"description":"Short description of the http status code","type":"string","example":"Bad Request"},"code":{"description":"Kamino error code","anyOf":[{"type":"string","enum":["DECIMAL_TO_LAMPORTS_OVERFLOW"]},{"type":"string","enum":["KLEND_MARKET_NOT_FOUND"]},{"type":"string","enum":["KLEND_OBLIGATION_NOT_FOUND"]},{"type":"string","enum":["KLEND_RESERVE_NOT_FOUND"]},{"type":"string","enum":["KVAULT_NOT_FOUND"]},{"type":"string","enum":["TRANSACTION_SIZE_ERROR"]}]}},"required":["statusCode","message","error"]}}}}}}},"/ktx/klend/withdraw":{"post":{"summary":"Get transaction to withdraw from a klend reserve","tags":["Kamino Lend Withdraw"],"description":"Withdraw tokens from the specified Kamino Lend market reserve","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"wallet":{"description":"User wallet address (base58) that will also sign the transaction","format":"solana-base58-address","minLength":32,"maxLength":44,"type":"string","example":"KUMtRazMP7vwvc2kthnGZ9Cq6ZsGRiYC97snMYepNx9"},"market":{"description":"Target Kamino Lend market address","format":"solana-base58-address","minLength":32,"maxLength":44,"type":"string","example":"7u3HeHxYDLhnCoErrtycNokbQYbWGzLs6JSDqGAv5PfF"},"reserve":{"description":"Target Kamino Lend Reserve address. The reserve must belong to the specified market","format":"solana-base58-address","minLength":32,"maxLength":44,"type":"string","example":"D6q6wuQSrifJKZYpR1M8R4YawnLDtDsMmWM1NbBmgJ59"},"amount":{"description":"Amount of liquidity token to withdraw (in decimal format, not lamports)","format":"decimal-positive-amount","type":"string","example":"0.1234"}},"required":["wallet","market","reserve","amount"]}}},"required":true},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"transaction":{"description":"Encoded transaction ready to send","type":"string","example":"AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAQAEB4U90z775Z0G20Lzbx64AwbcGsJTUS+D6M2d1yQDvRL+MXyh2DY6ZPXvcFUmkblzqU7UrFcH4BAOPAPQXUWHKZS66KvlDTwMypF/H+icat/xVYNA0OvZ+RMaheXL0QJajAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD9ps6fZhmN2HDYqYbzBnXEb4Pi9Sg0h5UvXVBWPj73qMlyWPTiSJ8bs9ECkUjg2DC1oTmdr/EIQEjnvY2+n4WQTZCvHbiTnsNf+U2WQNV9zDJ5S7Phu2b9OuhJqE3NuUsuvLnkdJfjUAGox8/57aeYKvmQtCaruy3qoGNzwovloCBQYAAQAHAxEBAQYRAAsIDw0HAgEQEREEBgoJDgwQ8iPGiVLh8rYA4fUFAAAAAAGC6dRmw0Z9LrKw2cy+tHvb9JXuHBu0d9Dar60DX6fr5AUFLxMJAQYVBAsCBwM="}},"required":["transaction"]}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"description":"HTTP error code","type":"number","example":400},"message":{"description":"Error message describing the issue","type":"string"},"error":{"description":"Short description of the http status code","type":"string","example":"Bad Request"},"code":{"description":"Kamino error code","anyOf":[{"type":"string","enum":["DECIMAL_TO_LAMPORTS_OVERFLOW"]},{"type":"string","enum":["KLEND_MARKET_NOT_FOUND"]},{"type":"string","enum":["KLEND_OBLIGATION_NOT_FOUND"]},{"type":"string","enum":["KLEND_RESERVE_NOT_FOUND"]},{"type":"string","enum":["KVAULT_NOT_FOUND"]},{"type":"string","enum":["TRANSACTION_SIZE_ERROR"]}]}},"required":["statusCode","message","error"]}}}}}}},"/ktx/klend/withdraw-instructions":{"post":{"summary":"Get instructions to withdraw from a klend reserve","tags":["Kamino Lend Withdraw"],"description":"Instructions to withdraw tokens from the specified Kamino Lend market reserve. Additionally includes lookup tables to use to compress transaction size","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"wallet":{"description":"User wallet address (base58) that will also sign the transaction","format":"solana-base58-address","minLength":32,"maxLength":44,"type":"string","example":"KUMtRazMP7vwvc2kthnGZ9Cq6ZsGRiYC97snMYepNx9"},"market":{"description":"Target Kamino Lend market address","format":"solana-base58-address","minLength":32,"maxLength":44,"type":"string","example":"7u3HeHxYDLhnCoErrtycNokbQYbWGzLs6JSDqGAv5PfF"},"reserve":{"description":"Target Kamino Lend Reserve address. The reserve must belong to the specified market","format":"solana-base58-address","minLength":32,"maxLength":44,"type":"string","example":"D6q6wuQSrifJKZYpR1M8R4YawnLDtDsMmWM1NbBmgJ59"},"amount":{"description":"Amount of liquidity token to withdraw (in decimal format, not lamports)","format":"decimal-positive-amount","type":"string","example":"0.1234"}},"required":["wallet","market","reserve","amount"]}}},"required":true},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"instructions":{"type":"array","items":{"type":"object","properties":{"accounts":{"type":"array","items":{"type":"object","properties":{"address":{"type":"string"},"role":{"type":"string"},"signer":{"type":"object","properties":{"address":{"type":"string"}},"required":["address"]}},"required":["address","role"],"example":{"address":"9y7uLMUMW6EiRwH1aJFSp9Zka7dVx2JdZKA3858u6YHT","role":"WRITABLE_SIGNER","signer":{"address":"9y7uLMUMW6EiRwH1aJFSp9Zka7dVx2JdZKA3858u6YHT"}}}},"data":{"anyOf":[{"type":"string"},{"type":"null"}],"example":"8iPGiVLh8rYA4fUFAAAAAA=="},"programAddress":{"type":"string","example":"KvauGMspG5k6rtzrqqn7WNn3oZdyKqLKwK2XWQ8FLjd"}},"required":["accounts","data","programAddress"]}},"lutsByAddress":{"type":"object","additionalProperties":{"type":"array","items":{"description":"Referenced LUT address","type":"string"}},"example":{"9p2oT9J6BojHigd3V5qXzrwsQf4dtgMgLxtrzLVR3rwu":["sadmBTQm5HJsyzWHEjV4YwG9CiahZKVDVqAyS4Wx1zH","HDsayqAsDWy3QvANGqh2yNraqcD8Fnjgh73Mhb3WRS5E","EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"]}}},"required":["instructions","lutsByAddress"]}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"description":"HTTP error code","type":"number","example":400},"message":{"description":"Error message describing the issue","type":"string"},"error":{"description":"Short description of the http status code","type":"string","example":"Bad Request"},"code":{"description":"Kamino error code","anyOf":[{"type":"string","enum":["DECIMAL_TO_LAMPORTS_OVERFLOW"]},{"type":"string","enum":["KLEND_MARKET_NOT_FOUND"]},{"type":"string","enum":["KLEND_OBLIGATION_NOT_FOUND"]},{"type":"string","enum":["KLEND_RESERVE_NOT_FOUND"]},{"type":"string","enum":["KVAULT_NOT_FOUND"]},{"type":"string","enum":["TRANSACTION_SIZE_ERROR"]}]}},"required":["statusCode","message","error"]}}}}}}},"/ktx/kvault/deposit":{"post":{"summary":"Get transaction to deposit into a kvault","tags":["Kamino Earn Deposit"],"description":"Deposit tokens into a specified Kamino Earn Vault","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"wallet":{"description":"User wallet address (base58) that will also sign the transaction","format":"solana-base58-address","minLength":32,"maxLength":44,"type":"string","example":"KUMtRazMP7vwvc2kthnGZ9Cq6ZsGRiYC97snMYepNx9"},"kvault":{"description":"Target Kamino vault address","format":"solana-base58-address","minLength":32,"maxLength":44,"type":"string","example":"HDsayqAsDWy3QvANGqh2yNraqcD8Fnjgh73Mhb3WRS5E"},"amount":{"description":"Amount to deposit (in decimal format, not lamports)","format":"decimal-positive-amount","type":"string","example":"0.1234"}},"required":["wallet","kvault","amount"]}}},"required":true},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"transaction":{"description":"Encoded transaction ready to send","type":"string","example":"AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAQAEB4U90z775Z0G20Lzbx64AwbcGsJTUS+D6M2d1yQDvRL+MXyh2DY6ZPXvcFUmkblzqU7UrFcH4BAOPAPQXUWHKZS66KvlDTwMypF/H+icat/xVYNA0OvZ+RMaheXL0QJajAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD9ps6fZhmN2HDYqYbzBnXEb4Pi9Sg0h5UvXVBWPj73qMlyWPTiSJ8bs9ECkUjg2DC1oTmdr/EIQEjnvY2+n4WQTZCvHbiTnsNf+U2WQNV9zDJ5S7Phu2b9OuhJqE3NuUsuvLnkdJfjUAGox8/57aeYKvmQtCaruy3qoGNzwovloCBQYAAQAHAxEBAQYRAAsIDw0HAgEQEREEBgoJDgwQ8iPGiVLh8rYA4fUFAAAAAAGC6dRmw0Z9LrKw2cy+tHvb9JXuHBu0d9Dar60DX6fr5AUFLxMJAQYVBAsCBwM="}},"required":["transaction"]}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"description":"HTTP error code","type":"number","example":400},"message":{"description":"Error message describing the issue","type":"string"},"error":{"description":"Short description of the http status code","type":"string","example":"Bad Request"},"code":{"description":"Kamino error code","anyOf":[{"type":"string","enum":["DECIMAL_TO_LAMPORTS_OVERFLOW"]},{"type":"string","enum":["KLEND_MARKET_NOT_FOUND"]},{"type":"string","enum":["KLEND_OBLIGATION_NOT_FOUND"]},{"type":"string","enum":["KLEND_RESERVE_NOT_FOUND"]},{"type":"string","enum":["KVAULT_NOT_FOUND"]},{"type":"string","enum":["TRANSACTION_SIZE_ERROR"]}]}},"required":["statusCode","message","error"]}}}}}}},"/ktx/kvault/deposit-instructions":{"post":{"summary":"Get instructions to deposit into a kvault","tags":["Kamino Earn Deposit"],"description":"Instructions to deposit tokens into a specified Kamino Earn Vault. Additionally includes lookup tables to use to compress transaction size","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"wallet":{"description":"User wallet address (base58) that will also sign the transaction","format":"solana-base58-address","minLength":32,"maxLength":44,"type":"string","example":"KUMtRazMP7vwvc2kthnGZ9Cq6ZsGRiYC97snMYepNx9"},"kvault":{"description":"Target Kamino vault address","format":"solana-base58-address","minLength":32,"maxLength":44,"type":"string","example":"HDsayqAsDWy3QvANGqh2yNraqcD8Fnjgh73Mhb3WRS5E"},"amount":{"description":"Amount to deposit (in decimal format, not lamports)","format":"decimal-positive-amount","type":"string","example":"0.1234"}},"required":["wallet","kvault","amount"]}}},"required":true},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"instructions":{"type":"array","items":{"type":"object","properties":{"accounts":{"type":"array","items":{"type":"object","properties":{"address":{"type":"string"},"role":{"type":"string"},"signer":{"type":"object","properties":{"address":{"type":"string"}},"required":["address"]}},"required":["address","role"],"example":{"address":"9y7uLMUMW6EiRwH1aJFSp9Zka7dVx2JdZKA3858u6YHT","role":"WRITABLE_SIGNER","signer":{"address":"9y7uLMUMW6EiRwH1aJFSp9Zka7dVx2JdZKA3858u6YHT"}}}},"data":{"anyOf":[{"type":"string"},{"type":"null"}],"example":"8iPGiVLh8rYA4fUFAAAAAA=="},"programAddress":{"type":"string","example":"KvauGMspG5k6rtzrqqn7WNn3oZdyKqLKwK2XWQ8FLjd"}},"required":["accounts","data","programAddress"]}},"lutsByAddress":{"type":"object","additionalProperties":{"type":"array","items":{"description":"Referenced LUT address","type":"string"}},"example":{"9p2oT9J6BojHigd3V5qXzrwsQf4dtgMgLxtrzLVR3rwu":["sadmBTQm5HJsyzWHEjV4YwG9CiahZKVDVqAyS4Wx1zH","HDsayqAsDWy3QvANGqh2yNraqcD8Fnjgh73Mhb3WRS5E","EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"]}}},"required":["instructions","lutsByAddress"]}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"description":"HTTP error code","type":"number","example":400},"message":{"description":"Error message describing the issue","type":"string"},"error":{"description":"Short description of the http status code","type":"string","example":"Bad Request"},"code":{"description":"Kamino error code","anyOf":[{"type":"string","enum":["DECIMAL_TO_LAMPORTS_OVERFLOW"]},{"type":"string","enum":["KLEND_MARKET_NOT_FOUND"]},{"type":"string","enum":["KLEND_OBLIGATION_NOT_FOUND"]},{"type":"string","enum":["KLEND_RESERVE_NOT_FOUND"]},{"type":"string","enum":["KVAULT_NOT_FOUND"]},{"type":"string","enum":["TRANSACTION_SIZE_ERROR"]}]}},"required":["statusCode","message","error"]}}}}}}},"/ktx/kvault/withdraw":{"post":{"summary":"Get transaction to withdraw from a kvault","tags":["Kamino Earn Withdraw"],"description":"Withdraw tokens from a specified Kamino Earn Vault","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"wallet":{"description":"User wallet address (base58) that will also sign the transaction","format":"solana-base58-address","minLength":32,"maxLength":44,"type":"string","example":"KUMtRazMP7vwvc2kthnGZ9Cq6ZsGRiYC97snMYepNx9"},"kvault":{"description":"Target Kamino vault address","format":"solana-base58-address","minLength":32,"maxLength":44,"type":"string","example":"HDsayqAsDWy3QvANGqh2yNraqcD8Fnjgh73Mhb3WRS5E"},"amount":{"description":"Amount to withdraw (in decimal format, not lamports), use U64::MAX to withdraw all","format":"decimal-positive-amount","type":"string","example":"0.1234"}},"required":["wallet","kvault","amount"]}}},"required":true},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"transaction":{"description":"Encoded transaction ready to send","type":"string","example":"AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAQAEB4U90z775Z0G20Lzbx64AwbcGsJTUS+D6M2d1yQDvRL+MXyh2DY6ZPXvcFUmkblzqU7UrFcH4BAOPAPQXUWHKZS66KvlDTwMypF/H+icat/xVYNA0OvZ+RMaheXL0QJajAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD9ps6fZhmN2HDYqYbzBnXEb4Pi9Sg0h5UvXVBWPj73qMlyWPTiSJ8bs9ECkUjg2DC1oTmdr/EIQEjnvY2+n4WQTZCvHbiTnsNf+U2WQNV9zDJ5S7Phu2b9OuhJqE3NuUsuvLnkdJfjUAGox8/57aeYKvmQtCaruy3qoGNzwovloCBQYAAQAHAxEBAQYRAAsIDw0HAgEQEREEBgoJDgwQ8iPGiVLh8rYA4fUFAAAAAAGC6dRmw0Z9LrKw2cy+tHvb9JXuHBu0d9Dar60DX6fr5AUFLxMJAQYVBAsCBwM="}},"required":["transaction"]}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"description":"HTTP error code","type":"number","example":400},"message":{"description":"Error message describing the issue","type":"string"},"error":{"description":"Short description of the http status code","type":"string","example":"Bad Request"},"code":{"description":"Kamino error code","anyOf":[{"type":"string","enum":["DECIMAL_TO_LAMPORTS_OVERFLOW"]},{"type":"string","enum":["KLEND_MARKET_NOT_FOUND"]},{"type":"string","enum":["KLEND_OBLIGATION_NOT_FOUND"]},{"type":"string","enum":["KLEND_RESERVE_NOT_FOUND"]},{"type":"string","enum":["KVAULT_NOT_FOUND"]},{"type":"string","enum":["TRANSACTION_SIZE_ERROR"]}]}},"required":["statusCode","message","error"]}}}}}}},"/ktx/kvault/withdraw-instructions":{"post":{"summary":"Get instructions to withdraw from a kvault","tags":["Kamino Earn Withdraw"],"description":"Instructions to withdraw tokens from a specified Kamino Earn Vault. Additionally includes lookup tables to use to compress transaction size","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"wallet":{"description":"User wallet address (base58) that will also sign the transaction","format":"solana-base58-address","minLength":32,"maxLength":44,"type":"string","example":"KUMtRazMP7vwvc2kthnGZ9Cq6ZsGRiYC97snMYepNx9"},"kvault":{"description":"Target Kamino vault address","format":"solana-base58-address","minLength":32,"maxLength":44,"type":"string","example":"HDsayqAsDWy3QvANGqh2yNraqcD8Fnjgh73Mhb3WRS5E"},"amount":{"description":"Amount to withdraw (in decimal format, not lamports), use U64::MAX to withdraw all","format":"decimal-positive-amount","type":"string","example":"0.1234"}},"required":["wallet","kvault","amount"]}}},"required":true},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"instructions":{"type":"array","items":{"type":"object","properties":{"accounts":{"type":"array","items":{"type":"object","properties":{"address":{"type":"string"},"role":{"type":"string"},"signer":{"type":"object","properties":{"address":{"type":"string"}},"required":["address"]}},"required":["address","role"],"example":{"address":"9y7uLMUMW6EiRwH1aJFSp9Zka7dVx2JdZKA3858u6YHT","role":"WRITABLE_SIGNER","signer":{"address":"9y7uLMUMW6EiRwH1aJFSp9Zka7dVx2JdZKA3858u6YHT"}}}},"data":{"anyOf":[{"type":"string"},{"type":"null"}],"example":"8iPGiVLh8rYA4fUFAAAAAA=="},"programAddress":{"type":"string","example":"KvauGMspG5k6rtzrqqn7WNn3oZdyKqLKwK2XWQ8FLjd"}},"required":["accounts","data","programAddress"]}},"lutsByAddress":{"type":"object","additionalProperties":{"type":"array","items":{"description":"Referenced LUT address","type":"string"}},"example":{"9p2oT9J6BojHigd3V5qXzrwsQf4dtgMgLxtrzLVR3rwu":["sadmBTQm5HJsyzWHEjV4YwG9CiahZKVDVqAyS4Wx1zH","HDsayqAsDWy3QvANGqh2yNraqcD8Fnjgh73Mhb3WRS5E","EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"]}}},"required":["instructions","lutsByAddress"]}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"description":"HTTP error code","type":"number","example":400},"message":{"description":"Error message describing the issue","type":"string"},"error":{"description":"Short description of the http status code","type":"string","example":"Bad Request"},"code":{"description":"Kamino error code","anyOf":[{"type":"string","enum":["DECIMAL_TO_LAMPORTS_OVERFLOW"]},{"type":"string","enum":["KLEND_MARKET_NOT_FOUND"]},{"type":"string","enum":["KLEND_OBLIGATION_NOT_FOUND"]},{"type":"string","enum":["KLEND_RESERVE_NOT_FOUND"]},{"type":"string","enum":["KVAULT_NOT_FOUND"]},{"type":"string","enum":["TRANSACTION_SIZE_ERROR"]}]}},"required":["statusCode","message","error"]}}}}}}}},"servers":[{"url":"https://api.kamino.finance"}]}