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

# Extended withdrawals

> Move USDC out of Extended with a two-step quote then execute flow

Extended is part of neither the [`/transfer`](/docs/transfers) routes nor the shared [prepare/sign/execute withdrawal flow](/docs/withdrawals). To move USDC out of an Extended account, use a dedicated two-step flow that bridges funds back to an EVM chain: first request a quote, then execute it with the returned `quoteId`.

Unlike the prepare/sign/execute and transfer flows, this one involves **no signing and no on-chain broadcast on your side**. You call `quote`, then call `execute` with the `quoteId` — VOOI carries out the bridge withdrawal on your behalf.

<Info>
  **Prerequisites:** an active VOOI API token and a bridged Extended account. See [API Tokens](/docs/tokens) and [Register on Extended](/docs/register-extended) if you don't have them yet.
</Info>

## 1. Quote the withdrawal

[`POST /withdraw/extended/quote`](/docs/api-reference/withdraw-extended/quote-an-extended-withdrawal-fee-limit-quote-id) takes the `amount` (up to 6 decimal places) and the destination `chainId`. It returns a `quoteId` to carry into the next step, an optional `fee`, and a `withdrawLimit`.

<CodeGroup>
  ```json Request theme={null}
  POST https://perps-api.vooi.io/withdraw/extended/quote
  Authorization: Bearer <token>
  Content-Type: application/json

  { "amount": "25", "chainId": 42161 }
  ```

  ```bash curl theme={null}
  curl -X POST https://perps-api.vooi.io/withdraw/extended/quote \
    -H "Authorization: Bearer <token>" \
    -H "Content-Type: application/json" \
    -d '{ "amount": "25", "chainId": 42161 }'
  ```
</CodeGroup>

`withdrawLimit` is informational. The bridge may apply a stricter per-chain limit at execution time, so treat the quote as guidance rather than a guarantee. Full response shape lives in the [API reference](/docs/api-reference/withdraw-extended/quote-an-extended-withdrawal-fee-limit-quote-id).

## 2. Execute the withdrawal

[`POST /withdraw/extended/execute`](/docs/api-reference/withdraw-extended/execute-an-extended-withdrawal-using-a-quote-from-quote) echoes the quoted `amount` and `chainId` back along with the `quoteId` from step 1. It returns the `quoteId` on success.

<CodeGroup>
  ```json Request theme={null}
  POST https://perps-api.vooi.io/withdraw/extended/execute
  Authorization: Bearer <token>
  Content-Type: application/json

  { "amount": "25", "chainId": 42161, "quoteId": "<quoteId-from-step-1>" }
  ```

  ```bash curl theme={null}
  curl -X POST https://perps-api.vooi.io/withdraw/extended/execute \
    -H "Authorization: Bearer <token>" \
    -H "Content-Type: application/json" \
    -d '{ "amount": "25", "chainId": 42161, "quoteId": "<quoteId-from-step-1>" }'
  ```
</CodeGroup>

## Supported chains

Extended withdrawals settle USDC to the same chains as [Extended deposits](/docs/deposits):

| Chain | `chainId` |
| - | - |
| Ethereum | `1` |
| BNB Chain | `56` |
| Polygon | `137` |
| Base | `8453` |
| Arbitrum One | `42161` |
| Avalanche | `43114` |

<Note>
  The Extended account must be bridged before you can withdraw. If it has no bridge address, the API rejects the request with an error about a missing Starknet bridge address. Funding the account through [`GET /deposit`](/docs/api-reference/deposit/get-deposit-transactions-for-signing) establishes the bridge.
</Note>

## Next steps

<CardGroup cols={2}>
  <Card title="Deposit into Extended" icon="arrow-down" href="/docs/deposits">
    Fund an Extended account from an external wallet
  </Card>

  <Card title="Register on Extended" icon="plug" href="/docs/register-extended">
    Set up an Extended account through the guided flow
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.