> 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/ja/protocol/zapper.md).

# Zapper

流動性とTroveの複合操作、トークン承認、管理権限、フラッシュ決済。

Zapperは、関連する操作を一つのトランザクションで実行するコントラクトです。Hann Financeは担保のラップ、Troveの開設・調整、流動性提供とLPステーキング、フラッシュ流動性を使うレバレッジ変更にZapperを利用します。トークン承認とmanager・operator権限は複合操作とは別で、アプリは未設定の権限を先に要求します。

| 操作              | コントラクト                                         | 組み合わせる処理                              |
| --------------- | ---------------------------------------------- | ------------------------------------- |
| KAIA担保の借り入れ     | `WKAIAZapper`                                  | ネイティブKAIAのラップ、Trove操作、返却資産のアンラップ。     |
| HNKAIA担保の借り入れ   | `HNKAIAZapper`                                 | HNKAIAの転送とTrove操作。                    |
| earnUSDT担保の借り入れ | `EarnUSDTZapper`                               | earnUSDTの受領、wEarnUSDT担保へのラップ、Trove操作。 |
| レバレッジ変更         | `LeverageWKAIAZapper`、`LeverageEarnUSDTZapper` | 一時流動性の調達、担保・USDHN債務の変更、フラッシュ決済。       |
| デポジットとLPステーク    | `StableSwapZapper`                             | USDT・USDHNの流動性提供と新しいLPのステーク。          |
| LP解除と引き出し       | `StableSwapZapper`                             | LPのアンステーク、LPのバーン、両方のプール資産の返却。         |

メインネットのアプリはKAIA・earnUSDTのレバレッジを提供します。HNKAIAのレバレッジはテストネットで有効です。メインネットのHNKAIA借り入れは通常のTrove操作を使います。

## トークン承認と署名

ERC-20承認は、指定したコントラクトがウォレットからトークンを転送する権限です。Permit2は署名によって転送を許可します。ウォレットに表示されるトークン、数量、spender、有効期限を確認してください。トークンのPermit2使用上限が不足している場合、署名による転送の前にその上限を承認します。

アプリは接続方法と操作に合わせて認可方式を選びます。StableSwap・LP操作では、ブラウザーウォレット接続はPermit2署名、アプリのモバイル接続モードはERC-20承認を使います。ネイティブKAIA担保はトランザクションの送金額に含まれるため、ERC-20の担保承認はありません。

次の二つの権限は、それぞれ異なる操作を許可します。

* **Trove manager権限**は、Zapperによる選択したポジション操作を許可します。調整や担保による返済・終了で現在の設定が合わない場合、アプリは適切なmanager設定を要求します。
* **RewardStaker operator権限**は、StableSwapZapperがユーザーに代わってLPをステーク・アンステークする権限です。トークン使用承認だけでは付与されません。

## 通常のTrove操作

Troveは、一つの担保ブランチの担保とUSDHN債務を保有します。通常のZapperは、開設、担保追加・引き出し、USDHNの借り入れ・返済、終了を支援します。

1. ポジション操作を選び、担保またはUSDHNの数量を入力します。
2. 操作後の担保、債務、年利、借入時手数料、担保比率を確認します。
3. アプリが要求するトークン承認とmanager権限の設定を行います。
4. Troveのトランザクションを承認します。
5. 更新後のポジションとウォレットへ返されたトークンを確認します。

開設にはブランチの担保とKAIAのガス補償デポジットが必要です。KAIAブランチでは、担保額とガス補償デポジットを一緒に送り、Zapperが用途に合わせてラップします。ERC-20担保ブランチでは、ガス補償デポジットをネイティブKAIAで別途送ります。このデポジットはネットワーク取引手数料とは別で、開設中のTroveに残り、所有者による正常な終了時に返却されます。通常の調整で開設時のデポジットを再度支払う必要はありません。

ウォレットのUSDHNで終了すると、累積利息を含む現在の債務全額を返済し、担保を受け取ります。KAIAの通常Zapperは返却するWKAIAをKAIAへ、earnUSDTの通常ZapperはwEarnUSDTをearnUSDTへアンラップします。

## フラッシュ流動性を使うレバレッジ

フラッシュ操作は一時的な流動性を供給し、同じトランザクション内で決済します。処理後もTroveの最終債務は残りますが、一時的なフラッシュ債務は全額決済されます。

| 操作         | 担保の変化                | USDHN債務の変化             |
| ---------- | -------------------- | ---------------------- |
| 開設・レバレッジ増加 | 指定した担保エクスポージャーを追加する。 | 決済に必要なUSDHNを借り入れる。     |
| レバレッジ減少    | ポジションの担保の一部を決済に使う。   | 一時流動性でUSDHNを返済する。      |
| 担保で返済して終了  | 担保を全額返済の資金に使う。       | 現在の債務全額を返済してTroveを閉じる。 |

担保と操作によって決済経路が異なります。

| 経路             | 決済方法                                                                                                                     |
| -------------- | ------------------------------------------------------------------------------------------------------------------------ |
| KAIA           | 設定されたWKAIA/USDT V3プールが一時担保またはUSDTを供給する。USDHN/USDT StableSwapで対応する決済資金または返済資金を調達する。                                       |
| earnUSDTの開設・増加 | StableSwapが出力量固定のコールバックでUSDTを送る。SuperEarnRouterへ預けてearnUSDTを受け取り、wEarnUSDTへラップしてTroveへ追加する。借り入れたUSDHNでStableSwapの入力を支払う。 |
| earnUSDTの減少・終了 | 設定されたearnUSDT/USDT V3プールがUSDTを供給する。StableSwapでUSDHNへ換えて返済し、担保をアンラップしたearnUSDTでV3操作を決済する。                                 |

経路はブランチに設定されており、ユーザーは任意のルーターや受取トークンを指定しません。

実行中は必要なTrove manager権限をFlashSwapperへ渡し、決済後に元の管理状態へ戻します。決済後に残ったトークンは指定した受取先へ返却されます。アプリはポジション所有者のウォレットを受取先に使います。

### 実行時の上限

開設とレバレッジ調整は最終債務の上限`maxDebt`を渡します。実行後の債務が上限を超える場合、トランザクションはリバートします。コントラクトは担保変更量、フラッシュプールとトークン、設定されたStableSwapプール、フラッシュ手数料上限、manager・receiverの状態も確認します。

担保による返済・終了は、現在の債務全額と別途設定された終了手数料上限を使います。アプリの確認画面はこの終了操作のスリッページを`100%`と表示し、呼び出しにはユーザー指定の最小受取量がありません。表示される純受取量は見積もりで、実際の返却トークンは決済結果によって決まります。

複合トランザクションが失敗すると、その中の担保・債務の変更とトークン移動は元に戻ります。前のトランザクションで確定したトークン承認、operator承認、manager設定は維持され、失敗した取引にもネットワークガスが使われます。

## トークンとガス補償デポジットの返却

* 通常の終了はUSDHN債務全額を返済した後、担保を返却します。
* 担保による返済・終了はフラッシュ決済に必要な担保を使い、残った担保と経路トークンを返します。KAIA Zapperは返却するWKAIAをKAIAへアンラップします。earnUSDTの経路は担保をアンラップして決済し、残ったearnUSDTを返します。
* 終了時にはガス補償デポジットが解放され、ブランチの支払処理で受取先へ渡されます。
* LP Zapperは開始時の残高と比較し、今回の操作で追加されたtoken0・token1・LPの残余を返します。

返却方法はブランチのトークン処理に従います。ユーザーが選ぶ任意のトークンへの変換機能はありません。

## 流動性の複合操作

`/earn/usdt`でLPトークンを直接ステークを選ぶと、両方のプール資産をStableSwapZapperへ送ります。Zapperはルーターの流動性追加を呼び出し、`minLiquidity`を確認してから新しいLPをRewardStakerへステークします。アンステークして引き出しは、LPのステークを解除し、流動性を引き出して各トークンの最小数量を確認した後、USDTとUSDHNをウォレットへ送ります。

どちらの複合操作も、取引期限とRewardStaker operator権限を確認します。LPステーキングはプール資産の価値変動を維持します。Troveの自動操作にもブランチの担保比率・清算ルールが適用されます。

操作手順は[スワップ・ブリッジ・流動性の提供](/ja/protocol/stableswap-dex.md)と[レバレッジポジション](/ja/protocol/loops.md)を参照してください。[借り入れと清算](/ja/protocol/borrowing-and-liquidation.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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.hann.finance/ja/protocol/zapper.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
