> ## Documentation Index
> Fetch the complete documentation index at: https://docs.compasslabs.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# 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.
                    <Info>
                    **Required Allowances**

                        In order to make this transaction, token allowances need to be set for the following contracts.

                     - `AerodromeSlipstreamNonfungiblePositionManager`
                    </Info>
                



## OpenAPI

````yaml /v1/combined_spec.json post /v1/aerodrome_slipstream/liquidity_provision/withdraw
openapi: 3.1.0
info:
  title: Compass API
  description: Compass Labs DeFi API
  version: 0.0.1
servers:
  - url: https://api.compasslabs.ai
    description: Production server
security:
  - ApiKeyAuth: []
paths:
  /v1/aerodrome_slipstream/liquidity_provision/withdraw:
    post:
      tags:
        - Aerodrome Slipstream
      summary: Withdraw an LP Position
      description: >-
        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.
                            <Info>
                            **Required Allowances**

                                In order to make this transaction, token allowances need to be set for the following contracts.

                             - `AerodromeSlipstreamNonfungiblePositionManager`
                            </Info>
                        
      operationId: v1_aerodrome_slipstream_liquidity_provision_withdraw
      requestBody:
        content:
          application/json:
            schema:
              $ref: >-
                #/components/schemas/AerodromeSlipstreamWithdrawLiquidityProvisionRequest
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-codeSamples:
        - lang: python
          label: Python (SDK)
          source: |-
            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)
        - lang: typescript
          label: Typescript (SDK)
          source: |-
            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();
components:
  schemas:
    AerodromeSlipstreamWithdrawLiquidityProvisionRequest:
      properties:
        action_type:
          type: string
          const: AERODROME_SLIPSTREAM_WITHDRAW_LIQUIDITY_PROVISION
          title: Action Type
          default: AERODROME_SLIPSTREAM_WITHDRAW_LIQUIDITY_PROVISION
        token_id:
          type: integer
          title: Token Id
          description: Token ID of the NFT representing the liquidity provisioned position.
          default: 10433247
          examples:
            - 10433247
        percentage_for_withdrawal:
          anyOf:
            - type: number
              maximum: 100
              exclusiveMinimum: 0
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Percentage For Withdrawal
          description: How much liquidity to take out in percentage.
          examples:
            - '25'
            - '50'
            - '75'
            - '100'
          default: 1
        chain:
          type: string
          enum:
            - base
          title: Chain
          default: base
          examples:
            - base
        sender:
          type: string
          title: Sender
          description: The address of the transaction sender.
          examples:
            - '0x29F20a192328eF1aD35e1564aBFf4Be9C5ce5f7B'
          default: '0x29F20a192328eF1aD35e1564aBFf4Be9C5ce5f7B'
        estimate_gas:
          type: boolean
          title: Estimate Gas
          description: >-
            Determines whether to estimate gas costs for transactions, also
            verifying that the transaction can be successfully executed.
          default: true
      type: object
      required:
        - token_id
        - percentage_for_withdrawal
        - chain
        - sender
      title: AerodromeSlipstreamWithdrawLiquidityProvisionRequest
      default:
        sender: '0x29F20a192328eF1aD35e1564aBFf4Be9C5ce5f7B'
        chain: base
        token_id: 10433247
        percentage_for_withdrawal: 1
      required_allowances:
        - AerodromeSlipstreamNonfungiblePositionManager
    TransactionResponse:
      properties:
        transaction:
          anyOf:
            - $ref: '#/components/schemas/UnsignedTransaction'
            - $ref: '#/components/schemas/UserOperationResponse'
          title: Transaction
          description: >-
            The unsigned transaction data. User must sign and broadcast to
            network.
      type: object
      required:
        - transaction
      title: TransactionResponse
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    UnsignedTransaction:
      properties:
        chainId:
          type: string
          title: Chainid
          description: The chain id of the transaction
        data:
          type: string
          title: Data
          description: The data of the transaction
        from:
          type: string
          title: From
          description: The sender of the transaction
        gas:
          anyOf:
            - type: string
            - type: 'null'
          title: Gas
          description: The gas of the transaction
        to:
          type: string
          title: To
          description: The recipient of the transaction
        value:
          type: string
          title: Value
          description: The value of the transaction
        nonce:
          type: string
          title: Nonce
          description: The nonce of the address
        maxFeePerGas:
          type: string
          title: Maxfeepergas
          description: The max fee per gas of the transaction
        maxPriorityFeePerGas:
          type: string
          title: Maxpriorityfeepergas
          description: The max priority fee per gas of the transaction
      type: object
      required:
        - chainId
        - data
        - from
        - gas
        - to
        - value
        - nonce
        - maxFeePerGas
        - maxPriorityFeePerGas
      title: UnsignedTransaction
      example:
        chainId: '0x2105'
        data: >-
          0x1688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c762000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000675f4a3d
        from: '0x4A83b4413CF41C3244027e1590E35a0F48403F0c'
        gas: '0x7a120'
        maxFeePerGas: '0x59682f00'
        maxPriorityFeePerGas: '0x3b9aca00'
        nonce: '0x5'
        to: '0x4e1DCf7AD4e460CfD30791CCC4F9c8a4f820ec67'
        value: '0x0'
    UserOperationResponse:
      properties:
        to:
          type: string
          title: To
          description: The target contract address for the operation
        data:
          type: string
          title: Data
          description: The calldata for the operation
        value:
          type: string
          title: Value
          description: The ETH value to send with the operation
      type: object
      required:
        - to
        - data
        - value
      title: UserOperationResponse
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        Your Compass API Key. Get your key
        [here](https://www.compasslabs.ai/dashboard).

````