from compass_api_sdk import CompassAPI, models
with CompassAPI(
api_key_auth="<YOUR_API_KEY_HERE>",
) as compass_api:
res = compass_api.erc_4626_vaults.vaults_withdraw(vault_address="0xfdB431E661372fA1146efB70bf120ECDed944a78", amount="ALL", chain=models.VaultWithdrawRequestChain.BASE, sender="0x52680FEe4CC87AFB748F98F9B2f8D80190b8EF2c", estimate_gas=True)
# Handle response
print(res)import { CompassApiSDK } from "@compass-labs/api-sdk";
const compassApiSDK = new CompassApiSDK({
apiKeyAuth: "<YOUR_API_KEY_HERE>",
});
async function run() {
const result = await compassApiSDK.erc4626Vaults.vaultsWithdraw({
vaultAddress: "0xfdB431E661372fA1146efB70bf120ECDed944a78",
amount: "ALL",
chain: "base",
sender: "0x52680FEe4CC87AFB748F98F9B2f8D80190b8EF2c",
});
console.log(result);
}
run();curl --request POST \
--url https://api.compasslabs.ai/v1/vaults/withdraw \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"chain": "base",
"sender": "0x52680FEe4CC87AFB748F98F9B2f8D80190b8EF2c",
"vault_address": "0xfdB431E661372fA1146efB70bf120ECDed944a78",
"amount": "ALL"
}
'const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
chain: 'base',
sender: '0x52680FEe4CC87AFB748F98F9B2f8D80190b8EF2c',
vault_address: '0xfdB431E661372fA1146efB70bf120ECDed944a78',
amount: 'ALL'
})
};
fetch('https://api.compasslabs.ai/v1/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://api.compasslabs.ai/v1/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([
'chain' => 'base',
'sender' => '0x52680FEe4CC87AFB748F98F9B2f8D80190b8EF2c',
'vault_address' => '0xfdB431E661372fA1146efB70bf120ECDed944a78',
'amount' => 'ALL'
]),
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://api.compasslabs.ai/v1/vaults/withdraw"
payload := strings.NewReader("{\n \"chain\": \"base\",\n \"sender\": \"0x52680FEe4CC87AFB748F98F9B2f8D80190b8EF2c\",\n \"vault_address\": \"0xfdB431E661372fA1146efB70bf120ECDed944a78\",\n \"amount\": \"ALL\"\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://api.compasslabs.ai/v1/vaults/withdraw")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"chain\": \"base\",\n \"sender\": \"0x52680FEe4CC87AFB748F98F9B2f8D80190b8EF2c\",\n \"vault_address\": \"0xfdB431E661372fA1146efB70bf120ECDed944a78\",\n \"amount\": \"ALL\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.compasslabs.ai/v1/vaults/withdraw")
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 \"chain\": \"base\",\n \"sender\": \"0x52680FEe4CC87AFB748F98F9B2f8D80190b8EF2c\",\n \"vault_address\": \"0xfdB431E661372fA1146efB70bf120ECDed944a78\",\n \"amount\": \"ALL\"\n}"
response = http.request(request)
puts response.read_body{
"transaction": {
"chainId": "0x2105",
"data": "0x1688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c762000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000675f4a3d",
"from": "0x4A83b4413CF41C3244027e1590E35a0F48403F0c",
"gas": "0x7a120",
"maxFeePerGas": "0x59682f00",
"maxPriorityFeePerGas": "0x3b9aca00",
"nonce": "0x5",
"to": "0x4e1DCf7AD4e460CfD30791CCC4F9c8a4f820ec67",
"value": "0x0"
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Withdraw from Vault
Withdraw deposited tokens from a Vault (ERC-4626 Standard).
The passive yield earned on token deposits is represented by the increased value of the shares received upon depositing tokens. Trade in these shares for the tokens you deposited plus any accrued yield.
from compass_api_sdk import CompassAPI, models
with CompassAPI(
api_key_auth="<YOUR_API_KEY_HERE>",
) as compass_api:
res = compass_api.erc_4626_vaults.vaults_withdraw(vault_address="0xfdB431E661372fA1146efB70bf120ECDed944a78", amount="ALL", chain=models.VaultWithdrawRequestChain.BASE, sender="0x52680FEe4CC87AFB748F98F9B2f8D80190b8EF2c", estimate_gas=True)
# Handle response
print(res)import { CompassApiSDK } from "@compass-labs/api-sdk";
const compassApiSDK = new CompassApiSDK({
apiKeyAuth: "<YOUR_API_KEY_HERE>",
});
async function run() {
const result = await compassApiSDK.erc4626Vaults.vaultsWithdraw({
vaultAddress: "0xfdB431E661372fA1146efB70bf120ECDed944a78",
amount: "ALL",
chain: "base",
sender: "0x52680FEe4CC87AFB748F98F9B2f8D80190b8EF2c",
});
console.log(result);
}
run();curl --request POST \
--url https://api.compasslabs.ai/v1/vaults/withdraw \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"chain": "base",
"sender": "0x52680FEe4CC87AFB748F98F9B2f8D80190b8EF2c",
"vault_address": "0xfdB431E661372fA1146efB70bf120ECDed944a78",
"amount": "ALL"
}
'const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
chain: 'base',
sender: '0x52680FEe4CC87AFB748F98F9B2f8D80190b8EF2c',
vault_address: '0xfdB431E661372fA1146efB70bf120ECDed944a78',
amount: 'ALL'
})
};
fetch('https://api.compasslabs.ai/v1/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://api.compasslabs.ai/v1/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([
'chain' => 'base',
'sender' => '0x52680FEe4CC87AFB748F98F9B2f8D80190b8EF2c',
'vault_address' => '0xfdB431E661372fA1146efB70bf120ECDed944a78',
'amount' => 'ALL'
]),
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://api.compasslabs.ai/v1/vaults/withdraw"
payload := strings.NewReader("{\n \"chain\": \"base\",\n \"sender\": \"0x52680FEe4CC87AFB748F98F9B2f8D80190b8EF2c\",\n \"vault_address\": \"0xfdB431E661372fA1146efB70bf120ECDed944a78\",\n \"amount\": \"ALL\"\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://api.compasslabs.ai/v1/vaults/withdraw")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"chain\": \"base\",\n \"sender\": \"0x52680FEe4CC87AFB748F98F9B2f8D80190b8EF2c\",\n \"vault_address\": \"0xfdB431E661372fA1146efB70bf120ECDed944a78\",\n \"amount\": \"ALL\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.compasslabs.ai/v1/vaults/withdraw")
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 \"chain\": \"base\",\n \"sender\": \"0x52680FEe4CC87AFB748F98F9B2f8D80190b8EF2c\",\n \"vault_address\": \"0xfdB431E661372fA1146efB70bf120ECDed944a78\",\n \"amount\": \"ALL\"\n}"
response = http.request(request)
puts response.read_body{
"transaction": {
"chainId": "0x2105",
"data": "0x1688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c762000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000675f4a3d",
"from": "0x4A83b4413CF41C3244027e1590E35a0F48403F0c",
"gas": "0x7a120",
"maxFeePerGas": "0x59682f00",
"maxPriorityFeePerGas": "0x3b9aca00",
"nonce": "0x5",
"to": "0x4e1DCf7AD4e460CfD30791CCC4F9c8a4f820ec67",
"value": "0x0"
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Body
The vault address you are withdrawing from.
"0xbEef047a543E45807105E51A8BBEFCc5950fcfBa"
The amount of tokens to withdraw from the vault. If set to 'ALL', your total deposited token amount will be withdrawn.
1.5
arbitrum, base, ethereum "base"
The address of the transaction sender.
"0x29F20a192328eF1aD35e1564aBFf4Be9C5ce5f7B"
"VAULT_WITHDRAW"The address which will receive the tokens withdrawn. Defaults to the sender.
Determines whether to estimate gas costs for transactions, also verifying that the transaction can be successfully executed.
Response
Successful Response
The unsigned transaction data. User must sign and broadcast to network.
- UnsignedTransaction
- UserOperationResponse
Show child attributes
Show child attributes
{ "chainId": "0x2105", "data": "0x1688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c762000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000675f4a3d", "from": "0x4A83b4413CF41C3244027e1590E35a0F48403F0c", "gas": "0x7a120", "maxFeePerGas": "0x59682f00", "maxPriorityFeePerGas": "0x3b9aca00", "nonce": "0x5", "to": "0x4e1DCf7AD4e460CfD30791CCC4F9c8a4f820ec67", "value": "0x0" }
Was this page helpful?