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

# 提款

> 通过 LI.FI API 从 Composer 支持的协议头寸中提款，支持同链和跨链模式。

提款遵循与存入相同的集成模式。使用 `GET /quote` 或 `POST /advanced/routes`，将用户的头寸代币作为 `fromToken`，将期望的输出代币作为 `toToken`。

<Note>
  提款适用于支持 **Withdraw** 操作的协议。
  请查看[支持的协议](/composer/protocols-and-chains)
  参考文档以了解各协议的能力。
</Note>

***

## 提款的工作原理

| 参数                      | 在提款中的作用                            |
| ----------------------- | ---------------------------------- |
| `fromToken`             | 用户持有的协议头寸代币（vault 代币、aToken、LST 等） |
| `toToken`               | 用户希望收到的代币                          |
| `fromChain` / `toChain` | 本地提款时为同一条链；跨链提款时为不同的链              |

如果协议和市场支持通过 Composer 提款，LI.FI 将返回一个支持 Composer 的路由。

***

## 同链提款

在同一条链上从协议头寸提款到底层代币。

<CodeGroup>
  ```bash curl theme={"system"}
  curl -X GET 'https://li.quest/v1/quote?\
  fromChain=CHAIN_ID&\
  toChain=CHAIN_ID&\
  fromToken=PROTOCOL_POSITION_TOKEN_ADDRESS&\
  toToken=DESIRED_OUTPUT_TOKEN_ADDRESS&\
  fromAddress=0xYOUR_WALLET_ADDRESS&\
  toAddress=0xYOUR_WALLET_ADDRESS&\
  fromAmount=POSITION_AMOUNT_IN_SMALLEST_UNIT'
  ```

  ```ts TypeScript theme={"system"}
  const quote = await axios.get("https://li.quest/v1/quote", {
    params: {
      fromChain: CHAIN_ID,
      toChain: CHAIN_ID,
      fromToken: "PROTOCOL_POSITION_TOKEN_ADDRESS",
      toToken: "DESIRED_OUTPUT_TOKEN_ADDRESS",
      fromAddress: "0xYOUR_WALLET_ADDRESS",
      toAddress: "0xYOUR_WALLET_ADDRESS",
      fromAmount: "POSITION_AMOUNT_IN_SMALLEST_UNIT",
    },
  });
  ```
</CodeGroup>

***

## 跨链提款

在一条链上提款，并在单个 flow 中于另一条链上收到输出代币。

<CodeGroup>
  ```bash curl curl -X GET 'https://li.quest/v1/quote?\ theme={"system"}
  fromChain=SOURCE_CHAIN_ID&\ toChain=DESTINATION_CHAIN_ID&\
  fromToken=PROTOCOL_POSITION_TOKEN_ADDRESS&\
  toToken=DESTINATION_OUTPUT_TOKEN_ADDRESS&\ fromAddress=0xYOUR_WALLET_ADDRESS&\
  toAddress=0xYOUR_WALLET_ADDRESS&\ fromAmount=POSITION_AMOUNT_IN_SMALLEST_UNIT'
  ```
</CodeGroup>

<Note>
  跨链提款需要在源链交易确认后通过 `GET /status` 进行状态轮询。请参阅[跨链 Composer
  模式](/composer/lifi-api/guides/cross-chain-compose)。
</Note>

***

## 执行 flow

执行步骤与 Composer 存入完全相同。

1. 通过 `/quote` 或 `/advanced/routes` 请求报价
2. 如果存在 `approvalAddress` 且 `fromToken` 为 ERC-20，则设置代币授权额度
3. 提交 `transactionRequest`
4. 对跨链转账轮询 `/status`

<Card title="API Integration" icon="code" href="/composer/lifi-api/guides/api-integration">
  报价、授权额度、执行和状态轮询 flow 的完整演练。
</Card>

***

## 支持 Withdraw 的协议

以下协议支持通过 Composer 提款。仅支持存入的协议（Ethena、Kinetiq、Maple、Royco）必须通过它们自己的界面提款。

| 协议            | 类型               | 通过 Composer 提款 |
| ------------- | ---------------- | -------------- |
| Aave V3       | Lending          | 是              |
| Avant         | Yield            | 是              |
| Avon          | Lending          | 是              |
| Cap           | Yield            | 是              |
| Euler         | Lending          | 是              |
| Felix Vanilla | Vaults           | 是              |
| Fluid         | Lending          | 是              |
| HyperLend     | Lending          | 是              |
| HypurrFi      | Lending          | 是              |
| Kelp          | Liquid Staking   | 是              |
| Morpho V1/V2  | Lending / Vaults | 是              |
| Neutrl        | Yield            | 是              |
| Neverland     | Vaults           | 是              |
| Spark         | Lending          | 是              |
| Tokemak       | Yield            | 是              |

<Card title="Supported Protocols" icon="list" href="/composer/protocols-and-chains">
  完整的协议参考，包括仅支持存入与支持存入 + 提款的对比。
</Card>

***

## 错误处理

提款特有的常见问题：

| 问题     | 解决方法                                     |
| ------ | ---------------------------------------- |
| 未返回路由  | 确认该协议支持通过 Composer 提款，且用户持有该头寸代币         |
| 余额不足   | 验证用户的 `fromToken` 余额与请求的 `fromAmount` 相符 |
| 授权额度错误 | 为头寸代币向报价中返回的 `approvalAddress` 设置授权      |
| 跨链部分失败 | 桥接后的代币已到达目标链，但最终的交换可能需要手动完成              |

有关完整的 status 和 substatus 取值，请参阅[交易状态跟踪](/introduction/user-flows-and-examples/status-tracking)。

***

## 后续步骤

<CardGroup cols={2}>
  <Card title="Cross-Chain Patterns" icon="bridge" href="/composer/lifi-api/guides/cross-chain-compose">
    包含桥接的执行模式与状态处理
  </Card>

  <Card title="Deposit Recipes" icon="book" href="/composer/lifi-api/recipes/vault-deposits">
    针对多种协议的端到端存入 recipe
  </Card>

  <Card title="API Parameters" icon="sliders" href="/composer/lifi-api/reference/api-parameters">
    Composer 路由如何被激活和返回
  </Card>
</CardGroup>
