> For the complete documentation index, see [llms.txt](https://docs.sudo.finance/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.sudo.finance/sudo-sdk/v0.0.6/api-reference/sudoapi/decrease-position.md).

# Decrease Position

The `decreasePosition` function allows users to reduce the size of an existing position.

#### Function Signature

```typescript
decreasePosition(
  pcpId: string,
  collateralToken: string,
  indexToken: string,
  amount: bigint,
  long: boolean,
  indexPrice: number,
  collateralPrice: number,
  isTriggerOrder?: boolean,
  isTakeProfitOrder?: boolean,
  isIocOrder?: boolean,
  pricesSlippage?: number,
  collateralSlippage?: number,
  relayerFee?: bigint
): Promise<TransactionBlock>
```

#### Parameters

* `pcpId`: The ID of the position to decrease
* `collateralToken`: The token used as collateral (e.g., "USDC")
* `indexToken`: The token used as the market index (e.g., "BTC")
* `amount`: The amount to decrease the position by
* `long`: Boolean indicating if this is a long (true) or short (false) position
* `indexPrice`: The current price of the index token
* `collateralPrice`: The current price of the collateral token
* `isTriggerOrder`: Boolean indicating if this is a trigger order (default: false)
* `isTakeProfitOrder`: Boolean indicating if this is a take profit order (default: true)
* `isIocOrder`: Boolean indicating if this is an IOC (Immediate-or-Cancel) order (default: false)
* `pricesSlippage`: Maximum allowed slippage for prices (default: 0.003 or 0.3%)
* `collateralSlippage`: Maximum allowed slippage for collateral (default: 0.5 or 50%)
* `relayerFee`: Fee paid to the relayer (default: 1)

#### Return Value

Returns a `Promise` that resolves to a `TransactionBlock` object.

#### Usage Example

```typescript
const tx = await sudoAPI.decreasePosition(
  '0x123...', // pcpId
  'USDC',     // collateralToken
  'BTC',      // indexToken
  BigInt(500000), // amount (0.5 BTC if BTC has 6 decimals)
  true,       // long position
  50000,      // indexPrice (BTC price in USD)
  1,          // collateralPrice (USDC price in USD)
  false,      // not a trigger order
  true,       // is a take profit order
  false,      // not an IOC order
  0.001,      // pricesSlippage (0.1%)
  0.1,        // collateralSlippage (10%)
  BigInt(2)   // relayerFee
);
```
