from compass_api_sdk import CompassAPI, models
with CompassAPI(
api_key_auth="<YOUR_API_KEY_HERE>",
) as compass_api:
res = compass_api.uniswap_v3.uniswap_liquidity_provision_withdraw(token_id=3432182, percentage_for_withdrawal=1, chain=models.UniswapWithdrawLiquidityProvisionRequestChain.BASE, sender="0x41096de529D54718a5600185F8C4460979ed75C9", 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.uniswapV3.uniswapLiquidityProvisionWithdraw({
tokenId: 3432182,
percentageForWithdrawal: 1,
chain: "base",
sender: "0x41096de529D54718a5600185F8C4460979ed75C9",
});
console.log(result);
}
run();curl --request POST \
--url https://api.compasslabs.ai/v1/uniswap/liquidity_provision/withdraw \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"chain": "base",
"sender": "0x41096de529D54718a5600185F8C4460979ed75C9",
"token_id": 3432182,
"percentage_for_withdrawal": 1
}
'const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
chain: 'base',
sender: '0x41096de529D54718a5600185F8C4460979ed75C9',
token_id: 3432182,
percentage_for_withdrawal: 1
})
};
fetch('https://api.compasslabs.ai/v1/uniswap/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/uniswap/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([
'chain' => 'base',
'sender' => '0x41096de529D54718a5600185F8C4460979ed75C9',
'token_id' => 3432182,
'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/uniswap/liquidity_provision/withdraw"
payload := strings.NewReader("{\n \"chain\": \"base\",\n \"sender\": \"0x41096de529D54718a5600185F8C4460979ed75C9\",\n \"token_id\": 3432182,\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/uniswap/liquidity_provision/withdraw")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"chain\": \"base\",\n \"sender\": \"0x41096de529D54718a5600185F8C4460979ed75C9\",\n \"token_id\": 3432182,\n \"percentage_for_withdrawal\": 1\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.compasslabs.ai/v1/uniswap/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 \"chain\": \"base\",\n \"sender\": \"0x41096de529D54718a5600185F8C4460979ed75C9\",\n \"token_id\": 3432182,\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
This endpoint allows users to withdraw their Liquidity Provider (LP) positions from the Uniswap platform.
By specifying the necessary parameters, users can initiate the withdrawal process to remove their stake from a specific liquidity pool. This operation is crucial for users who wish to reclaim their assets or reallocate their liquidity to different pools or investments. The endpoint requires details such as the token pair, the amount to be withdrawn, and any additional parameters needed for the withdrawal process. Users should ensure they meet any protocol requirements or conditions before initiating a withdrawal to avoid potential issues or penalties.
Required Allowances
In order to make this transaction, token allowances need to be set for the following contracts.
UniswapV3NFTPositionManager
from compass_api_sdk import CompassAPI, models
with CompassAPI(
api_key_auth="<YOUR_API_KEY_HERE>",
) as compass_api:
res = compass_api.uniswap_v3.uniswap_liquidity_provision_withdraw(token_id=3432182, percentage_for_withdrawal=1, chain=models.UniswapWithdrawLiquidityProvisionRequestChain.BASE, sender="0x41096de529D54718a5600185F8C4460979ed75C9", 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.uniswapV3.uniswapLiquidityProvisionWithdraw({
tokenId: 3432182,
percentageForWithdrawal: 1,
chain: "base",
sender: "0x41096de529D54718a5600185F8C4460979ed75C9",
});
console.log(result);
}
run();curl --request POST \
--url https://api.compasslabs.ai/v1/uniswap/liquidity_provision/withdraw \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"chain": "base",
"sender": "0x41096de529D54718a5600185F8C4460979ed75C9",
"token_id": 3432182,
"percentage_for_withdrawal": 1
}
'const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
chain: 'base',
sender: '0x41096de529D54718a5600185F8C4460979ed75C9',
token_id: 3432182,
percentage_for_withdrawal: 1
})
};
fetch('https://api.compasslabs.ai/v1/uniswap/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/uniswap/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([
'chain' => 'base',
'sender' => '0x41096de529D54718a5600185F8C4460979ed75C9',
'token_id' => 3432182,
'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/uniswap/liquidity_provision/withdraw"
payload := strings.NewReader("{\n \"chain\": \"base\",\n \"sender\": \"0x41096de529D54718a5600185F8C4460979ed75C9\",\n \"token_id\": 3432182,\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/uniswap/liquidity_provision/withdraw")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"chain\": \"base\",\n \"sender\": \"0x41096de529D54718a5600185F8C4460979ed75C9\",\n \"token_id\": 3432182,\n \"percentage_for_withdrawal\": 1\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.compasslabs.ai/v1/uniswap/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 \"chain\": \"base\",\n \"sender\": \"0x41096de529D54718a5600185F8C4460979ed75C9\",\n \"token_id\": 3432182,\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.
3432182
How much liquidity to take out in percentage.
0 < x <= 100"25"
arbitrum, base, ethereum "base"
The address of the transaction sender.
"0x29F20a192328eF1aD35e1564aBFf4Be9C5ce5f7B"
"UNISWAP_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?