from compass_api_sdk import CompassAPI, models
with CompassAPI(
api_key_auth="<YOUR_API_KEY_HERE>",
) as compass_api:
res = compass_api.aerodrome_slipstream.aerodrome_slipstream_liquidity_provision_withdraw(token_id=10433247, percentage_for_withdrawal=1, chain=models.AerodromeSlipstreamWithdrawLiquidityProvisionRequestChain.BASE, sender="0x29F20a192328eF1aD35e1564aBFf4Be9C5ce5f7B", 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.aerodromeSlipstream.aerodromeSlipstreamLiquidityProvisionWithdraw({
tokenId: 10433247,
percentageForWithdrawal: 1,
chain: "base",
sender: "0x29F20a192328eF1aD35e1564aBFf4Be9C5ce5f7B",
});
console.log(result);
}
run();curl --request POST \
--url https://api.compasslabs.ai/v1/aerodrome_slipstream/liquidity_provision/withdraw \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"sender": "0x29F20a192328eF1aD35e1564aBFf4Be9C5ce5f7B",
"chain": "base",
"token_id": 10433247,
"percentage_for_withdrawal": 1
}
'const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
sender: '0x29F20a192328eF1aD35e1564aBFf4Be9C5ce5f7B',
chain: 'base',
token_id: 10433247,
percentage_for_withdrawal: 1
})
};
fetch('https://api.compasslabs.ai/v1/aerodrome_slipstream/liquidity_provision/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/aerodrome_slipstream/liquidity_provision/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([
'sender' => '0x29F20a192328eF1aD35e1564aBFf4Be9C5ce5f7B',
'chain' => 'base',
'token_id' => 10433247,
'percentage_for_withdrawal' => 1
]),
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/aerodrome_slipstream/liquidity_provision/withdraw"
payload := strings.NewReader("{\n \"sender\": \"0x29F20a192328eF1aD35e1564aBFf4Be9C5ce5f7B\",\n \"chain\": \"base\",\n \"token_id\": 10433247,\n \"percentage_for_withdrawal\": 1\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/aerodrome_slipstream/liquidity_provision/withdraw")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"sender\": \"0x29F20a192328eF1aD35e1564aBFf4Be9C5ce5f7B\",\n \"chain\": \"base\",\n \"token_id\": 10433247,\n \"percentage_for_withdrawal\": 1\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.compasslabs.ai/v1/aerodrome_slipstream/liquidity_provision/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 \"sender\": \"0x29F20a192328eF1aD35e1564aBFf4Be9C5ce5f7B\",\n \"chain\": \"base\",\n \"token_id\": 10433247,\n \"percentage_for_withdrawal\": 1\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 an LP Position
Withdraw an existing Liquidity Provider (LP) position.
This endpoint allows users to remove their tokens from an LP position, effectively closing their participation in the liquidity pool. The withdrawal process involves specifying the LP position to be closed, and the response will confirm the successful removal of liquidity, providing users with details about the withdrawn tokens and any remaining balances. This functionality is essential for users who wish to exit their liquidity provision activities, enabling them to reclaim their assets and potentially reallocate them to other investment opportunities. The endpoint ensures a smooth and secure withdrawal process, facilitating users’ strategic management of their decentralized finance (DeFi) portfolios.
Required Allowances
In order to make this transaction, token allowances need to be set for the following contracts.
AerodromeSlipstreamNonfungiblePositionManager
from compass_api_sdk import CompassAPI, models
with CompassAPI(
api_key_auth="<YOUR_API_KEY_HERE>",
) as compass_api:
res = compass_api.aerodrome_slipstream.aerodrome_slipstream_liquidity_provision_withdraw(token_id=10433247, percentage_for_withdrawal=1, chain=models.AerodromeSlipstreamWithdrawLiquidityProvisionRequestChain.BASE, sender="0x29F20a192328eF1aD35e1564aBFf4Be9C5ce5f7B", 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.aerodromeSlipstream.aerodromeSlipstreamLiquidityProvisionWithdraw({
tokenId: 10433247,
percentageForWithdrawal: 1,
chain: "base",
sender: "0x29F20a192328eF1aD35e1564aBFf4Be9C5ce5f7B",
});
console.log(result);
}
run();curl --request POST \
--url https://api.compasslabs.ai/v1/aerodrome_slipstream/liquidity_provision/withdraw \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"sender": "0x29F20a192328eF1aD35e1564aBFf4Be9C5ce5f7B",
"chain": "base",
"token_id": 10433247,
"percentage_for_withdrawal": 1
}
'const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
sender: '0x29F20a192328eF1aD35e1564aBFf4Be9C5ce5f7B',
chain: 'base',
token_id: 10433247,
percentage_for_withdrawal: 1
})
};
fetch('https://api.compasslabs.ai/v1/aerodrome_slipstream/liquidity_provision/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/aerodrome_slipstream/liquidity_provision/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([
'sender' => '0x29F20a192328eF1aD35e1564aBFf4Be9C5ce5f7B',
'chain' => 'base',
'token_id' => 10433247,
'percentage_for_withdrawal' => 1
]),
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/aerodrome_slipstream/liquidity_provision/withdraw"
payload := strings.NewReader("{\n \"sender\": \"0x29F20a192328eF1aD35e1564aBFf4Be9C5ce5f7B\",\n \"chain\": \"base\",\n \"token_id\": 10433247,\n \"percentage_for_withdrawal\": 1\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/aerodrome_slipstream/liquidity_provision/withdraw")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"sender\": \"0x29F20a192328eF1aD35e1564aBFf4Be9C5ce5f7B\",\n \"chain\": \"base\",\n \"token_id\": 10433247,\n \"percentage_for_withdrawal\": 1\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.compasslabs.ai/v1/aerodrome_slipstream/liquidity_provision/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 \"sender\": \"0x29F20a192328eF1aD35e1564aBFf4Be9C5ce5f7B\",\n \"chain\": \"base\",\n \"token_id\": 10433247,\n \"percentage_for_withdrawal\": 1\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
Token ID of the NFT representing the liquidity provisioned position.
10433247
How much liquidity to take out in percentage.
0 < x <= 100"25"
base "base"
The address of the transaction sender.
"0x29F20a192328eF1aD35e1564aBFf4Be9C5ce5f7B"
"AERODROME_SLIPSTREAM_WITHDRAW_LIQUIDITY_PROVISION"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?