Register a new vault with its on-chain LUT
curl --request POST \
--url https://api.kamino.finance/luts/managed/new-vault \
--header 'Content-Type: application/json' \
--data '
{
"vaultAddress": "6KhEbVjFg8bNkpTSyEfGJhMGtv2bRQiAKKbKZLPvrBFm",
"lutAddress": "3Kz4sMiBCxg7JdCCjwRTHtFsQRqJCSKh5pVERhPfMzYF"
}
'const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
vaultAddress: '6KhEbVjFg8bNkpTSyEfGJhMGtv2bRQiAKKbKZLPvrBFm',
lutAddress: '3Kz4sMiBCxg7JdCCjwRTHtFsQRqJCSKh5pVERhPfMzYF'
})
};
fetch('https://api.kamino.finance/luts/managed/new-vault', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.kamino.finance/luts/managed/new-vault"
payload = {
"vaultAddress": "6KhEbVjFg8bNkpTSyEfGJhMGtv2bRQiAKKbKZLPvrBFm",
"lutAddress": "3Kz4sMiBCxg7JdCCjwRTHtFsQRqJCSKh5pVERhPfMzYF"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)false{
"productId": 1,
"vaultAddress": "6KhEbVjFg8bNkpTSyEfGJhMGtv2bRQiAKKbKZLPvrBFm",
"lutAddress": "3Kz4sMiBCxg7JdCCjwRTHtFsQRqJCSKh5pVERhPfMzYF",
"lutEntryId": 1
}{
"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"
}
]
}{
"error": "Not authorized for this request. Please include the basic auth headers."
}{
"metadata": "Account could not be found"
}{
"error": "An internal error occurred"
}Managed LUTs
Register a new vault with its on-chain LUT
Verifies the vault and LUT exist on-chain, then registers the vault product and LUT entry. Private (authorized) API access only, please add a basic auth header to your request.
POST
/
luts
/
managed
/
new-vault
Register a new vault with its on-chain LUT
curl --request POST \
--url https://api.kamino.finance/luts/managed/new-vault \
--header 'Content-Type: application/json' \
--data '
{
"vaultAddress": "6KhEbVjFg8bNkpTSyEfGJhMGtv2bRQiAKKbKZLPvrBFm",
"lutAddress": "3Kz4sMiBCxg7JdCCjwRTHtFsQRqJCSKh5pVERhPfMzYF"
}
'const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
vaultAddress: '6KhEbVjFg8bNkpTSyEfGJhMGtv2bRQiAKKbKZLPvrBFm',
lutAddress: '3Kz4sMiBCxg7JdCCjwRTHtFsQRqJCSKh5pVERhPfMzYF'
})
};
fetch('https://api.kamino.finance/luts/managed/new-vault', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.kamino.finance/luts/managed/new-vault"
payload = {
"vaultAddress": "6KhEbVjFg8bNkpTSyEfGJhMGtv2bRQiAKKbKZLPvrBFm",
"lutAddress": "3Kz4sMiBCxg7JdCCjwRTHtFsQRqJCSKh5pVERhPfMzYF"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)false{
"productId": 1,
"vaultAddress": "6KhEbVjFg8bNkpTSyEfGJhMGtv2bRQiAKKbKZLPvrBFm",
"lutAddress": "3Kz4sMiBCxg7JdCCjwRTHtFsQRqJCSKh5pVERhPfMzYF",
"lutEntryId": 1
}{
"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"
}
]
}{
"error": "Not authorized for this request. Please include the basic auth headers."
}{
"metadata": "Account could not be found"
}{
"error": "An internal error occurred"
}Body
application/json
Response
OK
The created/existing product ID
Example:
1
Vault account address
Example:
"6KhEbVjFg8bNkpTSyEfGJhMGtv2bRQiAKKbKZLPvrBFm"
Lookup table address
Example:
"3Kz4sMiBCxg7JdCCjwRTHtFsQRqJCSKh5pVERhPfMzYF"
The created/existing LUT entry ID
Example:
1