Compare historical KVault returns
curl --request GET \
--url https://api.kamino.finance/kvaults/vaults/{pubkey}/returns-comparisonconst options = {method: 'GET'};
fetch('https://api.kamino.finance/kvaults/vaults/{pubkey}/returns-comparison', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.kamino.finance/kvaults/vaults/{pubkey}/returns-comparison"
response = requests.get(url)
print(response.text)false{
"asOf": "2023-11-07T05:31:56Z",
"inceptionDate": "2023-11-07T05:31:56Z",
"series": [
{
"name": "vault",
"cumulative": {
"m1": "1234.56789",
"m3": "1234.56789",
"m6": "1234.56789",
"y1": "1234.56789",
"ytd": "1234.56789",
"sinceInception": "1234.56789"
},
"averageMonthly": {
"m1": "1234.56789",
"m3": "1234.56789",
"m6": "1234.56789",
"y1": "1234.56789",
"ytd": "1234.56789",
"sinceInception": "1234.56789"
}
}
]
}{
"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"
}
]
}{
"metadata": "Account could not be found"
}{
"error": "An internal error occurred"
}Kamino Earn Vaults
Compare historical KVault returns
Compare KVault historical returns with SOFR and the DeFi USD benchmark. Benchmark series are forward-filled for up to 7 days and return null beyond that.
GET
/
kvaults
/
vaults
/
{pubkey}
/
returns-comparison
Compare historical KVault returns
curl --request GET \
--url https://api.kamino.finance/kvaults/vaults/{pubkey}/returns-comparisonconst options = {method: 'GET'};
fetch('https://api.kamino.finance/kvaults/vaults/{pubkey}/returns-comparison', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.kamino.finance/kvaults/vaults/{pubkey}/returns-comparison"
response = requests.get(url)
print(response.text)false{
"asOf": "2023-11-07T05:31:56Z",
"inceptionDate": "2023-11-07T05:31:56Z",
"series": [
{
"name": "vault",
"cumulative": {
"m1": "1234.56789",
"m3": "1234.56789",
"m6": "1234.56789",
"y1": "1234.56789",
"ytd": "1234.56789",
"sinceInception": "1234.56789"
},
"averageMonthly": {
"m1": "1234.56789",
"m3": "1234.56789",
"m6": "1234.56789",
"y1": "1234.56789",
"ytd": "1234.56789",
"sinceInception": "1234.56789"
}
}
]
}{
"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"
}
]
}{
"metadata": "Account could not be found"
}{
"error": "An internal error occurred"
}Path Parameters
Valid base58-encoded address
Example:
"VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd"