from compass_api_sdk import CompassAPI, models
with CompassAPI(
api_key_auth="<YOUR_API_KEY_HERE>",
) as compass_api:
res = compass_api.ethena.ethena_request(amount="ALL", chain=models.EthenaRequestToWithdrawRequestChain.ETHEREUM, sender="0x85b049df4E74AFF38c6D79F3c71Ae4C998b69342", 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.ethena.ethenaRequest({
amount: "ALL",
chain: "ethereum",
sender: "0x85b049df4E74AFF38c6D79F3c71Ae4C998b69342",
});
console.log(result);
}
run();curl --request POST \
--url https://api.compasslabs.ai/v1/ethena/request \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"chain": "ethereum",
"sender": "0x85b049df4E74AFF38c6D79F3c71Ae4C998b69342",
"amount": "ALL"
}
'const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
chain: 'ethereum',
sender: '0x85b049df4E74AFF38c6D79F3c71Ae4C998b69342',
amount: 'ALL'
})
};
fetch('https://api.compasslabs.ai/v1/ethena/request', 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/ethena/request",
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' => 'ethereum',
'sender' => '0x85b049df4E74AFF38c6D79F3c71Ae4C998b69342',
'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/ethena/request"
payload := strings.NewReader("{\n \"chain\": \"ethereum\",\n \"sender\": \"0x85b049df4E74AFF38c6D79F3c71Ae4C998b69342\",\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/ethena/request")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"chain\": \"ethereum\",\n \"sender\": \"0x85b049df4E74AFF38c6D79F3c71Ae4C998b69342\",\n \"amount\": \"ALL\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.compasslabs.ai/v1/ethena/request")
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\": \"ethereum\",\n \"sender\": \"0x85b049df4E74AFF38c6D79F3c71Ae4C998b69342\",\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"
},
"cooldown_duration_days": 123
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Request to Withdraw USDe
Request to withdraw deposited USDe from Ethena’s vault.
The Ethena vault requires a cooldown period. Once a request to withdraw a specified amount of USDe has been submitted, the alloted cooldown period must pass before the withdraw USDe transaction can be submitted.
If an additional amount of USDe is requested to be withdrawn anytime before withdrawing the originally requested amount, the cooldown period restarts.
Yield is not earned on USDe while in its cooldown period.
An allowance does not have to be set to initiate the cooldown period.
from compass_api_sdk import CompassAPI, models
with CompassAPI(
api_key_auth="<YOUR_API_KEY_HERE>",
) as compass_api:
res = compass_api.ethena.ethena_request(amount="ALL", chain=models.EthenaRequestToWithdrawRequestChain.ETHEREUM, sender="0x85b049df4E74AFF38c6D79F3c71Ae4C998b69342", 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.ethena.ethenaRequest({
amount: "ALL",
chain: "ethereum",
sender: "0x85b049df4E74AFF38c6D79F3c71Ae4C998b69342",
});
console.log(result);
}
run();curl --request POST \
--url https://api.compasslabs.ai/v1/ethena/request \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"chain": "ethereum",
"sender": "0x85b049df4E74AFF38c6D79F3c71Ae4C998b69342",
"amount": "ALL"
}
'const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
chain: 'ethereum',
sender: '0x85b049df4E74AFF38c6D79F3c71Ae4C998b69342',
amount: 'ALL'
})
};
fetch('https://api.compasslabs.ai/v1/ethena/request', 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/ethena/request",
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' => 'ethereum',
'sender' => '0x85b049df4E74AFF38c6D79F3c71Ae4C998b69342',
'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/ethena/request"
payload := strings.NewReader("{\n \"chain\": \"ethereum\",\n \"sender\": \"0x85b049df4E74AFF38c6D79F3c71Ae4C998b69342\",\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/ethena/request")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"chain\": \"ethereum\",\n \"sender\": \"0x85b049df4E74AFF38c6D79F3c71Ae4C998b69342\",\n \"amount\": \"ALL\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.compasslabs.ai/v1/ethena/request")
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\": \"ethereum\",\n \"sender\": \"0x85b049df4E74AFF38c6D79F3c71Ae4C998b69342\",\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"
},
"cooldown_duration_days": 123
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Body
The amount of USDe to request to withdraw from Ethena's vault. If set to 'ALL', your total deposited USDe amount will be requested to be withdrawn.
1.5
ethereum "ethereum"
The address of the transaction sender.
"0x29F20a192328eF1aD35e1564aBFf4Be9C5ce5f7B"
"ETHENA_REQUEST_WITHDRAW"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"
}
The duration of days that must pass before a position can be withdrawn from the Ethena vault after a request to withdraw has been made.
Was this page helpful?