> ## 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.

# Request to Withdraw USDe

> Request to withdraw deposited USDe from Ethena's vault.

The Ethena vault requires a cooldown period. Once a request to withdraw a specified
amount of USDe has been submitted, the alloted cooldown period must pass before the
withdraw USDe transaction can be submitted.

If an additional amount of USDe is requested to be withdrawn anytime before
withdrawing the originally requested amount, the cooldown period restarts.

Yield is not earned on USDe while in its cooldown period.

An allowance does not have to be set to initiate the cooldown period.



## OpenAPI

````yaml /v1/combined_spec.json post /v1/ethena/request
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/ethena/request:
    post:
      tags:
        - Ethena
      summary: Request to Withdraw USDe
      description: >-
        Request to withdraw deposited USDe from Ethena's vault.


        The Ethena vault requires a cooldown period. Once a request to withdraw
        a specified

        amount of USDe has been submitted, the alloted cooldown period must pass
        before the

        withdraw USDe transaction can be submitted.


        If an additional amount of USDe is requested to be withdrawn anytime
        before

        withdrawing the originally requested amount, the cooldown period
        restarts.


        Yield is not earned on USDe while in its cooldown period.


        An allowance does not have to be set to initiate the cooldown period.
      operationId: v1_ethena_request
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EthenaRequestToWithdrawRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/EthenaRequestToWithdrawTransactionResponse
        '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.ethena.ethena_request(amount="ALL", chain=models.EthenaRequestToWithdrawRequestChain.ETHEREUM, sender="0x85b049df4E74AFF38c6D79F3c71Ae4C998b69342", 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.ethena.ethenaRequest({
                amount: "ALL",
                chain: "ethereum",
                sender: "0x85b049df4E74AFF38c6D79F3c71Ae4C998b69342",
              });

              console.log(result);
            }

            run();
components:
  schemas:
    EthenaRequestToWithdrawRequest:
      properties:
        action_type:
          type: string
          const: ETHENA_REQUEST_WITHDRAW
          title: Action Type
          default: ETHENA_REQUEST_WITHDRAW
        amount:
          anyOf:
            - type: number
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
            - type: string
              const: ALL
          title: Amount
          description: >-
            The amount of USDe to request to withdraw from Ethena's vault. If
            set to 'ALL', your total deposited USDe amount will be requested to
            be withdrawn.
          examples:
            - 1.5
            - ALL
          default: ALL
        chain:
          type: string
          enum:
            - ethereum
          title: Chain
          default: ethereum
          examples:
            - ethereum
        sender:
          type: string
          title: Sender
          description: The address of the transaction sender.
          examples:
            - '0x29F20a192328eF1aD35e1564aBFf4Be9C5ce5f7B'
          default: '0x85b049df4E74AFF38c6D79F3c71Ae4C998b69342'
        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:
        - amount
        - chain
        - sender
      title: EthenaRequestToWithdrawRequest
      default:
        chain: ethereum
        sender: '0x85b049df4E74AFF38c6D79F3c71Ae4C998b69342'
        amount: ALL
      required_allowances: []
    EthenaRequestToWithdrawTransactionResponse:
      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.
        cooldown_duration_days:
          type: integer
          title: Cooldown Duration Days
          description: >-
            The duration of days that must pass before a position can be
            withdrawn from the Ethena vault after a request to withdraw has been
            made.
      type: object
      required:
        - transaction
        - cooldown_duration_days
      title: EthenaRequestToWithdrawTransactionResponse
    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).

````