Change Liquidity
Change the amount of liquidity provided in a liquidity pool
In: header
Optional provider for entering a liquidity pool. If not provided, Uniswap v3 will be used.
"UNISWAP_V3"
The wallet address (in hexadecimal format) who owns the liquidity.
^0x[a-fA-F0-9]{40}$
The blockchain network where the current liquidity will be modified. Supported chains:
- Arbitrum One: 42161
- Avalanche: 43114
- Base: 8453
- BNB Smart Chain: 56
- Ethereum: 1
- OP Mainnet: 10
- Polygon: 137
- Gnosis: 100
The token address (in hexadecimal format) used to pay the transaction fee.
^0x[a-fA-F0-9]{40}$
Defines how the fee will be paid: "ADD_TO_AMOUNT" adds it to the input amount, while "DEDUCT_FROM_AMOUNT" subtracts it from the input amount.
"ADD_TO_AMOUNT" | "DEDUCT_FROM_AMOUNT"
Percentage fee applied to the transaction (e.g., 5 for 5%).
value <= 99.99
ID of the NFT that represents the liquidity
The address (in hexadecimal format) of one of the tokens of the pool.
^0x[a-fA-F0-9]{40}$
The address (in hexadecimal format) of the other token of the pool.
^0x[a-fA-F0-9]{40}$
The amount of token0 to add to or remove from the liquidity pool, expressed as a decimal string. Negative values are allowed.
The amount of token1 to add to or remove from the liquidity pool, expressed as a decimal string. Negative values are allowed.
Reduce the liquidity by a percentage, so if you want to reduce the liquidity by 20% send 20 here. Can't be used to increase liquidity.
0.01 <= value <= 100
Optional parameter controlling the maximum deviation allowed of the expected price of a trade and the actual price at which the trade is executed, with a minimum value of 0.5 and a maximum value of 99, default is 0.5, where 1 unit equals 1%.
0.5
0.5 <= value <= 99
Custom metadata for the transaction. Key-value pairs with string values. Max 1KB size.
Empty Object
Response Body
curl -X POST "https://api.notus.team/api/v1/liquidity/change" \
-H "Content-Type: application/json" \
-d '{
"walletAddress": "string",
"chainId": 0,
"payGasFeeToken": "string",
"gasFeePaymentMethod": "ADD_TO_AMOUNT",
"tokenId": "string",
"change": {
"token0": "string",
"token1": "string",
"token0Amount": "string",
"token1Amount": "string"
}
}'
const body = JSON.stringify({
"walletAddress": "string",
"chainId": 0,
"payGasFeeToken": "string",
"gasFeePaymentMethod": "ADD_TO_AMOUNT",
"tokenId": "string",
"change": {
"token0": "string",
"token1": "string",
"token0Amount": "string",
"token1Amount": "string"
}
})
fetch("https://api.notus.team/api/v1/liquidity/change", {
body
})
package main
import (
"fmt"
"net/http"
"io/ioutil"
"strings"
)
func main() {
url := "https://api.notus.team/api/v1/liquidity/change"
body := strings.NewReader(`{
"walletAddress": "string",
"chainId": 0,
"payGasFeeToken": "string",
"gasFeePaymentMethod": "ADD_TO_AMOUNT",
"tokenId": "string",
"change": {
"token0": "string",
"token1": "string",
"token0Amount": "string",
"token1Amount": "string"
}
}`)
req, _ := http.NewRequest("POST", url, body)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}
import requests
url = "https://api.notus.team/api/v1/liquidity/change"
body = {
"walletAddress": "string",
"chainId": 0,
"payGasFeeToken": "string",
"gasFeePaymentMethod": "ADD_TO_AMOUNT",
"tokenId": "string",
"change": {
"token0": "string",
"token1": "string",
"token0Amount": "string",
"token1Amount": "string"
}
}
response = requests.request("POST", url, json = body, headers = {
"Content-Type": "application/json"
})
print(response.text)
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.http.HttpResponse.BodyHandlers;
import java.time.Duration;
import java.net.http.HttpRequest.BodyPublishers;
var body = BodyPublishers.ofString("""{
"walletAddress": "string",
"chainId": 0,
"payGasFeeToken": "string",
"gasFeePaymentMethod": "ADD_TO_AMOUNT",
"tokenId": "string",
"change": {
"token0": "string",
"token1": "string",
"token0Amount": "string",
"token1Amount": "string"
}
}""");
HttpClient client = HttpClient.newBuilder()
.connectTimeout(Duration.ofSeconds(10))
.build();
HttpRequest.Builder requestBuilder = HttpRequest.newBuilder()
.uri(URI.create("https://api.notus.team/api/v1/liquidity/change"))
.header("Content-Type", "application/json")
.POST(body)
.build();
try {
HttpResponse<String> response = client.send(requestBuilder.build(), BodyHandlers.ofString());
System.out.println("Status code: " + response.statusCode());
System.out.println("Response body: " + response.body());
} catch (Exception e) {
e.printStackTrace();
}
using System;
using System.Net.Http;
using System.Text;
var body = new StringContent("""
{
"walletAddress": "string",
"chainId": 0,
"payGasFeeToken": "string",
"gasFeePaymentMethod": "ADD_TO_AMOUNT",
"tokenId": "string",
"change": {
"token0": "string",
"token1": "string",
"token0Amount": "string",
"token1Amount": "string"
}
}
""", Encoding.UTF8, "application/json");
var client = new HttpClient();
var response = await client.PostAsync("https://api.notus.team/api/v1/liquidity/change", body);
var responseBody = await response.Content.ReadAsStringAsync();
{
"operation": {
"metadata": {
"key": "value"
},
"userOperationHash": "0x2aac7a66d5331454eafc9b981be3596ad08a40dad24883e3b9c4a5362cd7f7e1",
"walletAddress": "0x6e397ddf51d9f15dbe0414538e7529f51f2e5464",
"expiresAt": "2025-10-26T13:27:49.542Z",
"amounts": "7239.2",
"chain": 42161,
"liquidityProvider": "UNISWAP_V3",
"nftAddress": "0xc36442b4a4522e871399cd717abdd847ab11fe88"
}
}
{
"statusCode": 400,
"id": "NOT_AUTHORIZED_TOKENS",
"message": "The tokens '[0x]' are not authorized yet."
}
{
"statusCode": 403,
"id": "UNAVAILABLE_COMPUTE_UNITS",
"message": "The project doesn't have enough compute units to perform this action. Please upgrade your plan."
}
{
"statusCode": 404,
"id": "ACCOUNT_ABSTRACTION_ADDRESS_NOT_REGISTERED_WITH_PROJECT",
"message": "The requested wallet \"0x6e397ddf51d9f15dbe0414538e7529f51f2e5464\" is not registered with the project"
}
{
"statusCode": 500,
"id": "BLOCKCHAIN_ERROR",
"message": "We had a problem fetching the data from the blockchain. If the problem persists, contact our support."
}
Process a standard individual verification session POST
Processes a standard individual verification session after documents have been uploaded. This endpoint triggers the actual verification process using the uploaded document images and personal information provided during session creation.
Collect fees from liquidity POST
Collects the fees received by the liquidty NFT. This will both create a user operation to be executed and will show how much will be collected, so you can choose if you really want to collect it or not. Always collects the full amount.