> For the complete documentation index, see [llms.txt](https://docs.hann.finance/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.hann.finance/zh/protocol/stableswap-dex.md).

# 资产转换与 StableSwap

兑换 USDHN 和 USDT、跨链转入 Kaia，以及提供或质押 StableSwap 流动性

Hann Finance 通过 StableSwap 池兑换 USDHN 和 USDT。供应两种代币会获得代表池中份额的 LP 代币。质押 LP 可通过 RewardStaker 获取奖励。

| 操作              | 应用路径               | 结果                                  |
| --------------- | ------------------ | ----------------------------------- |
| USDHN ↔ USDT 兑换 | `/convert` → 兑换    | 输出代币进入钱包。                           |
| 跨链转入 Kaia       | `/convert` → 桥接    | 其他链上支持的 USDC 或 USDT 以 Kaia USDT 到账。 |
| 添加或移除流动性        | `/earn/usdt` → 流动性 | 存入两种代币获得 LP，或销毁 LP 获得两种代币。          |
| 质押或解除质押 LP      | `/earn/usdt` → 质押  | 在钱包和 RewardStaker 之间移动 LP。          |

![USDT 和 USDHN 进入池子铸造 LP；交回 LP 可取出两种资产的份额。](https://2468384826-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNSloZoJik3NAsr6vrfDs%2Fuploads%2Fgit-blob-6cf456e349f3001e81d33bfdf1f9ea4309f1d2aa%2Fswap-liquidity.svg?alt=media)

*存入两种资产生成 LP。销毁 LP 按池子当前余额返还份额。*

## 兑换 USDHN 和 USDT

1. 连接钱包，打开 `/convert` → 兑换。
2. 选择 USDHN → USDT 或 USDT → USDHN。
3. 输入支付量或到账量，另一项根据池子报价计算。
4. 在设置中选择滑点上限和交易期限，检查报价数量、费用及最低到账量或最高支付量。
5. 完成钱包要求的授权或 Permit2 签名，再确认兑换交易。
6. 确认后检查输出代币余额和交易详情。

应用通过 `StableSwapRouter` 使用配置的 USDHN–USDT 池。路由报价和兑换检查池子的工厂注册及允许的代币。池子暂停时不能兑换。

### 输入数量与输出数量

| 输入内容      | 合约限制                 | 回滚条件       |
| --------- | -------------------- | ---------- |
| 支付数量：精确输入 | `amountOutMin`，最低到账量 | 输出低于最低值。   |
| 到账数量：精确输出 | `amountInMax`，最高支付量  | 所需输入超过最高值。 |

精确输入报价为 `995` 枚、滑点为 `0.5%` 时，最低到账量约为 `990.025` 枚：

$$
minOut \approx quote \times \left(1-\frac{slippageBps}{10{,}000}\right)
$$

1 个基点为 `0.01%`。最终限制按代币精度计算。提高滑点上限允许更大的报价偏差。池子手续费按其配置计算。超过期限后不能执行。

报价费用来自当前池配置和余额。池内失衡可能同时提高价格影响和动态费用。USDHN 与 USDT 的兑换率随池内状态变化。

## 跨链转入 Kaia

Bridge 使用 Rhino.fi，将其他 EVM 链上支持的 USDC 或 USDT 转为 Kaia USDT。发送链和资产选项来自跨链服务返回的路径。目标为 Kaia 主网，chain ID `8217`，目标代币为 USDT。

1. 打开 `/convert` → 桥接，选择发送链和资产。
2. 输入数量。Kaia USDT 到账至连接的钱包。保留发送链原生币支付手续费。
3. 检查到账量、跨链费用、预计时间和 KAIA Gas 补充设置。
4. 将钱包切换到发送链，授权报价中的代币数量并确认发送链存款。
5. 跟踪直至 Kaia 交付完成。发送链交易确认存款，目标链交付完成转账。

KAIA Gas 补充将部分转账价值换成原生 KAIA，用于目标链手续费，成本包含在报价中。Kaia 主网配置启用 Bridge，Kairos 测试网配置隐藏它。执行需要能切换到发送链的 EVM 钱包；应用的移动连接模式和仅支持 Kaia 的钱包连接不支持此发送链流程。

重新打开页面后，可通过跨链记录和继续控件跟踪已提交转账。再次存款前先检查该笔转账状态。跨链交付涉及独立交易，具有自己的进度和退款状态。

## 添加流动性

1. 打开 `/earn/usdt` → 流动性 → 存入。
2. 输入大于零的 USDT 和 USDHN，检查池内比例、预计和最低 LP 数量及期限。
3. 选择仅存入，或存入并质押 LP。
4. 授权两种代币或签署 Permit2，再确认存款。

池子不强制固定存入比例。失衡存款会影响 LP 报价，并产生失衡费用。任一代币为零或铸造的 LP 少于 `minLiquidity` 时，存款失败。

| 存款选项  | 新 LP 去向                              | 额外授权                                    |
| ----- | ------------------------------------ | --------------------------------------- |
| 仅存入   | 经 `StableSwapRouter` 进入钱包            | 向路由授权代币使用。                              |
| 存入并质押 | 经 `StableSwapZapper` 进入 RewardStaker | 向 zapper 授权代币使用，并授予其 RewardStaker 操作权限。 |

操作权限允许 zapper 代你质押或解除质押，与代币使用授权是独立的链上权限。尚未授予时，应用会在组合交易前请求。

## 质押、解除质押与领取奖励

在 `/earn/usdt` → 质押中，可质押钱包 LP 或解除已有质押。质押将 LP 转入 RewardStaker，解除质押返还 LP 到钱包。两者都不移除池内流动性。

领取奖励可获取累计 USDHN，不移出已质押 LP。存在奖励时，存入并质押及单独质押流程也提供同时领取选项。

## 移除流动性

1. 打开 `/earn/usdt` → 流动性 → 提取，输入 LP 数量。
2. 检查预计 USDT、USDHN 及各自最低到账量。
3. 钱包内 LP 需向 `StableSwapRouter` 授权或签名后提取。已质押 LP 使用解除质押并提取，应用先检查 zapper 操作权限。
4. 确认后两种代币进入钱包，LP 被销毁。

应用按池内当前余额比例提取两种代币，到账数量随当前构成计算。池子暂停时，合约仍支持按比例移除；兑换和新增存款仍暂停。

## LP 仓位价值为何变化

LP 同时承担两种资产的价格风险。USDHN 脱锚下跌时，交易者可向池子卖出 USDHN 换取 USDT，使池中 USDHN 增多、USDT 减少。你的份额随构成变化。质押期间仍承担这种资产风险。最低提取量限制代币数量，美元价值随市场价格变化。

[StableSwap 机制](/zh/mechanics/deep-dives/stableswap.md)说明曲线、费用和脱锚示例。[Zapper](/zh/protocol/zapper.md)说明流动性与 Trove 组合操作。


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.hann.finance/zh/protocol/stableswap-dex.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
