# decreaseLiquidity

Decrease specific liquidity from specific pool.

### Signature

`decreaseLiquidity(options: DecreaseLiquidityOptions): Promise<Transaction>`

### Params

```typescript
interface DecreaseLiquidityOptions {
  // pool object ID
  pool: string;
  // liquidity NFT ID
  nft: string;
  // Operator address
  address: string;
  // liquidity delta
  decreaseLiquidity: string | number;
  // Amount of coin A
  amountA: string | number; 
  // Amount of coin B
  amountB: string | number;
  // Acceptable wasted amount percentage. Range: [0, 100)
  slippage: string | number;
  // Expires timeout(ms), defaults 180_000
  deadline?: number;
  // Custom transaction handler
  txb?: Transaction;
}
```

### Examples

```typescript
const turbosSdk = new TurbosSdk(Network.testnet, {
  url: 'https://fullnode.testnet.sui.io',
});
const signer = turbosSdk.account.getKeypairFromMnemonics("your mnemonic");
const poolId = '0x328572f9d3c99bdb0a2da46fa61ef7917e1d35e67ec9472d412aa82b4a5222b2';
const pool = await turbosSdk.pool.getPool(poolId);
const positionId =
  '0x0d367b3a64002124e8021293983be069bfcf81c6f1b905a0ebff693809f526a3';
const position = await turbosSdk.nft.getPositionFields(positionId);
// decrease 50% of the liquidity
const decreaseLiquidity = (Number(position.liquidity) * 0.5).toFixed(0);
const amounts = turbosSdk.pool.getTokenAmountsFromLiquidity({
  currentSqrtPrice: new BN(pool.sqrt_price),
  lowerSqrtPrice: turbosSdk.math.tickIndexToSqrtPriceX64(
    turbosSdk.math.bitsToNumber(position.tick_lower_index.fields.bits),
  ),
  upperSqrtPrice: turbosSdk.math.tickIndexToSqrtPriceX64(
    turbosSdk.math.bitsToNumber(position.tick_upper_index.fields.bits),
  ),
  liquidity: new BN(decreaseLiquidity),
});
console.log(amounts);
const txb = await turbosSdk.pool.decreaseLiquidity({
  pool: poolId,
  nft: positionId,
  decreaseLiquidity,
  amountA: amounts[0].toString(),
  amountB: amounts[1].toString(),
  address: signer.toSuiAddress(),
  slippage: 10, //10% slippage
});
const result = await turbosSdk.provider.signAndExecuteTransaction({
  transaction: txb,
  signer,
});
console.log(result);
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://turbos.gitbook.io/turbos/developer-docs/via-sdk/clmm/decreaseliquidity.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
