curl --request POST \
--url https://core-api-dev.vanish.trade/borrow/pending \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"user_address": "<string>",
"timestamp": "<string>",
"signature": "<string>"
}
'import requests
url = "https://core-api-dev.vanish.trade/borrow/pending"
payload = {
"user_address": "<string>",
"timestamp": "<string>",
"signature": "<string>"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({user_address: '<string>', timestamp: '<string>', signature: '<string>'})
};
fetch('https://core-api-dev.vanish.trade/borrow/pending', 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://core-api-dev.vanish.trade/borrow/pending",
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([
'user_address' => '<string>',
'timestamp' => '<string>',
'signature' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$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://core-api-dev.vanish.trade/borrow/pending"
payload := strings.NewReader("{\n \"user_address\": \"<string>\",\n \"timestamp\": \"<string>\",\n \"signature\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
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://core-api-dev.vanish.trade/borrow/pending")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"user_address\": \"<string>\",\n \"timestamp\": \"<string>\",\n \"signature\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://core-api-dev.vanish.trade/borrow/pending")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"user_address\": \"<string>\",\n \"timestamp\": \"<string>\",\n \"signature\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body[
{
"tx_id": "<string>",
"action_type": "borrow",
"status": "pending",
"created_at": "<string>",
"frozen_balance_changes": [
{
"token_address": "<string>",
"change": "<string>"
}
]
}
]{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}Get Pending Lending Actions
Fetches the user’s pending lending and settle actions - those submitted but never committed. Call POST /borrow/commit with each returned tx_id to resolve them.
Deposits, trades, and withdrawals are returned by POST /account/pending instead. Requires a read signature; see Signing Requests and Recovering Pending Commits.
curl --request POST \
--url https://core-api-dev.vanish.trade/borrow/pending \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"user_address": "<string>",
"timestamp": "<string>",
"signature": "<string>"
}
'import requests
url = "https://core-api-dev.vanish.trade/borrow/pending"
payload = {
"user_address": "<string>",
"timestamp": "<string>",
"signature": "<string>"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({user_address: '<string>', timestamp: '<string>', signature: '<string>'})
};
fetch('https://core-api-dev.vanish.trade/borrow/pending', 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://core-api-dev.vanish.trade/borrow/pending",
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([
'user_address' => '<string>',
'timestamp' => '<string>',
'signature' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$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://core-api-dev.vanish.trade/borrow/pending"
payload := strings.NewReader("{\n \"user_address\": \"<string>\",\n \"timestamp\": \"<string>\",\n \"signature\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
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://core-api-dev.vanish.trade/borrow/pending")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"user_address\": \"<string>\",\n \"timestamp\": \"<string>\",\n \"signature\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://core-api-dev.vanish.trade/borrow/pending")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"user_address\": \"<string>\",\n \"timestamp\": \"<string>\",\n \"signature\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body[
{
"tx_id": "<string>",
"action_type": "borrow",
"status": "pending",
"created_at": "<string>",
"frozen_balance_changes": [
{
"token_address": "<string>",
"change": "<string>"
}
]
}
]{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}Authorizations
Body
Request payload for querying pending lending actions.
The Solana wallet address of the user.
The current timestamp in milliseconds used for signature verification. Read-scoped: accepted within 24 hours. Can be provided as a string or a number
^[0-9]+$Signature of the 'By signing, I hereby agree to Vanish's Terms of Service and agree to be bound by them (docs.vanish.trade/legal/TOS)
Details: read:{timestamp}' string signed using the user's wallet. Note the field name is signature on this endpoint, not user_signature.
Response
A successful response containing a list of the user's pending lending actions.
Transaction id of the pending action on chain
Type of pending action.
borrow, settle Current status of the action. Every row returned by this endpoint is expected to be pending.
pending Timestamp indicating when the action was created.
The balance changes recorded when the action was initiated, before on-chain confirmation.
Show child attributes
Show child attributes
