Vault withdraw
curl --request POST \
--url https://tars.loopscale.com/v1/markets/lending_vaults/withdraw \
--header 'Content-Type: application/json' \
--header 'user-wallet: <user-wallet>' \
--data '
{
"amountPrincipal": 123,
"maxAmountLp": 123,
"vault": "<string>",
"withdrawAll": true
}
'import requests
url = "https://tars.loopscale.com/v1/markets/lending_vaults/withdraw"
payload = {
"amountPrincipal": 123,
"maxAmountLp": 123,
"vault": "<string>",
"withdrawAll": True
}
headers = {
"user-wallet": "<user-wallet>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'user-wallet': '<user-wallet>', 'Content-Type': 'application/json'},
body: JSON.stringify({amountPrincipal: 123, maxAmountLp: 123, vault: '<string>', withdrawAll: true})
};
fetch('https://tars.loopscale.com/v1/markets/lending_vaults/withdraw', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://tars.loopscale.com/v1/markets/lending_vaults/withdraw",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'amountPrincipal' => 123,
'maxAmountLp' => 123,
'vault' => '<string>',
'withdrawAll' => true
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"user-wallet: <user-wallet>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://tars.loopscale.com/v1/markets/lending_vaults/withdraw"
payload := strings.NewReader("{\n \"amountPrincipal\": 123,\n \"maxAmountLp\": 123,\n \"vault\": \"<string>\",\n \"withdrawAll\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("user-wallet", "<user-wallet>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://tars.loopscale.com/v1/markets/lending_vaults/withdraw")
.header("user-wallet", "<user-wallet>")
.header("Content-Type", "application/json")
.body("{\n \"amountPrincipal\": 123,\n \"maxAmountLp\": 123,\n \"vault\": \"<string>\",\n \"withdrawAll\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://tars.loopscale.com/v1/markets/lending_vaults/withdraw")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["user-wallet"] = '<user-wallet>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"amountPrincipal\": 123,\n \"maxAmountLp\": 123,\n \"vault\": \"<string>\",\n \"withdrawAll\": true\n}"
response = http.request(request)
puts response.read_body{
"transaction": {
"message": "<string>",
"signatures": [
{
"publicKey": "<string>",
"signature": "<string>"
}
]
},
"stakeAccount": "<string>"
}"Something went wrong: You have an error in your SQL syntax.""Failed to deserialize the JSON body into the target type: missing field `mints` at line 1 column 1."Loopscale Vaults
Withdraw from Vault
Withdraw funds from a target lending Vault. If any deposits remain, the previous stake account and reward schedule is deleted and a new one is created.
POST
/
markets
/
lending_vaults
/
withdraw
Vault withdraw
curl --request POST \
--url https://tars.loopscale.com/v1/markets/lending_vaults/withdraw \
--header 'Content-Type: application/json' \
--header 'user-wallet: <user-wallet>' \
--data '
{
"amountPrincipal": 123,
"maxAmountLp": 123,
"vault": "<string>",
"withdrawAll": true
}
'import requests
url = "https://tars.loopscale.com/v1/markets/lending_vaults/withdraw"
payload = {
"amountPrincipal": 123,
"maxAmountLp": 123,
"vault": "<string>",
"withdrawAll": True
}
headers = {
"user-wallet": "<user-wallet>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'user-wallet': '<user-wallet>', 'Content-Type': 'application/json'},
body: JSON.stringify({amountPrincipal: 123, maxAmountLp: 123, vault: '<string>', withdrawAll: true})
};
fetch('https://tars.loopscale.com/v1/markets/lending_vaults/withdraw', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://tars.loopscale.com/v1/markets/lending_vaults/withdraw",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'amountPrincipal' => 123,
'maxAmountLp' => 123,
'vault' => '<string>',
'withdrawAll' => true
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"user-wallet: <user-wallet>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://tars.loopscale.com/v1/markets/lending_vaults/withdraw"
payload := strings.NewReader("{\n \"amountPrincipal\": 123,\n \"maxAmountLp\": 123,\n \"vault\": \"<string>\",\n \"withdrawAll\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("user-wallet", "<user-wallet>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://tars.loopscale.com/v1/markets/lending_vaults/withdraw")
.header("user-wallet", "<user-wallet>")
.header("Content-Type", "application/json")
.body("{\n \"amountPrincipal\": 123,\n \"maxAmountLp\": 123,\n \"vault\": \"<string>\",\n \"withdrawAll\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://tars.loopscale.com/v1/markets/lending_vaults/withdraw")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["user-wallet"] = '<user-wallet>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"amountPrincipal\": 123,\n \"maxAmountLp\": 123,\n \"vault\": \"<string>\",\n \"withdrawAll\": true\n}"
response = http.request(request)
puts response.read_body{
"transaction": {
"message": "<string>",
"signatures": [
{
"publicKey": "<string>",
"signature": "<string>"
}
]
},
"stakeAccount": "<string>"
}"Something went wrong: You have an error in your SQL syntax.""Failed to deserialize the JSON body into the target type: missing field `mints` at line 1 column 1."Headers
Wallet address of the withdrawing user
Body
application/json
Amount of Principal tokens to withdraw (in lamports)
Maximum number of LP tokens you are willing to accept in exchange for your principal withdrawal, in the event Vault loses value between quote and execution
Lending Vault address
Set to true to withdraw all available principal (ignores amountPrincipal and maxAmountLp)
⌘I