> 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/mechanics/deep-dives/liquidations-and-earn.md).

# 清算とEarn

清算負債の相殺、担保の分配、スタビリティプールの預入額計算

清算は、担保比率がブランチの最低担保比率`MCR`を下回ったTroveを閉じます。スタビリティプールは預けられたUSDHNで負債の一部または全額を相殺し、担保を受け取ります。相殺後に残った負債と担保は、同じブランチの他のTroveへ再分配されます。

## 清算の手順

担保比率には、ブランチのオラクル価格と現在の負債を使います。現在の負債には未払い利息と再分配された負債が含まれます。

1. 呼び出し者がTrove IDを`TroveManager.batchLiquidateTroves`に渡します。
2. コントラクトはアクティブまたは`zombie`状態のTroveを確認し、担保比率が`MCR`未満のTroveを清算します。
3. 清算されたTroveを閉じ、借り手のアクティブなポジションから取り除きます。
4. スタビリティプールの利用可能な預入金で負債を相殺します。プールは使ったUSDHNをバーンし、配分された担保を受け取ります。
5. 残りの負債と担保をDefaultPool経由で再分配します。
6. 清算者はガス補償を受け取ります。余剰担保は借り手が受け取れるようにCollSurplusPoolに記録されます。

スタビリティプールが負債全額を相殺できなくても、借り手のTroveは閉じられます。残った負債は再分配によって他のTroveへ移ります。

## プールが相殺する負債

プールのUSDHN預入額を`pool`、清算負債を`D`とすると、清算には1 USDHNを超える預入金を使います。

$$
\text{AvailableUSDHN} = \max(pool - 1, 0)
$$

$$
\text{DebtOffset} = \min(D, \text{AvailableUSDHN})
$$

預入額が1 USDHN未満のプールは負債の相殺に参加しません。相殺額が清算負債より少なければ、残りは再分配経路で処理されます。

相殺に割り当てる担保は、相殺する負債の割合と同じ割合でTroveの担保から分けます。コントラクトは担保でのガス補償を差し引き、ブランチのスタビリティプール清算ペナルティを使ってプールへ送る担保の上限を計算します。余剰担保は再分配経路で先に使われることがあり、最終的な残りが借り手の分として記録されます。

プールはブランチの担保トークンを受け取ります。KAIAブランチではWKAIA、EarnUSDTブランチではwEarnUSDTです。

## 参加者ごとの変化

| 参加者           | 変化                                                           |
| ------------- | ------------------------------------------------------------ |
| 清算された借り手      | Troveが閉じられ、そのポジションから負債が取り除かれ、担保が分配されます。記録された余剰担保は借り手が受け取れます。 |
| スタビリティプールの預入者 | 相殺額に比例してUSDHNの預入額が減り、担保報酬が増えます。                              |
| 他のTroveの借り手   | 各自のステークに比例して再分配された負債と担保を受け取ります。                              |
| 清算者           | 清算のガス補償を受け取ります。                                              |

スタビリティプールの預入には、借り手の個別の清算基準は適用されません。プールが清算負債を相殺すると、USDHN残高は減ります。

## 預入額と担保報酬の計算

1回のイベントで使う値は次のとおりです。

* `pool`: 相殺直前のプール全体のUSDHN預入額。
* `you`: 相殺直前の自分のUSDHN預入額。
* `offset`: 負債を相殺するためにバーンしたUSDHN。
* `collGain`: プールに実際に渡された担保トークンの数量。

比例計算は次のとおりです。

$$
you\_{after} \approx you \times \left(1 - \frac{offset}{pool}\right)
$$

$$
yourCollateralGain \approx \frac{you}{pool} \times collGain
$$

コントラクトは預入額の累積積`P`、担保報酬の累積値`S`、預入者ごとのスナップショットで変化を計算します。USDHNの利息報酬は別の累積値`B`を使います。オンチェーンの整数除算は切り捨てられ、計算にはスケール変更も反映されます。

次の例には、利息報酬と他のユーザーによる追加預入はありません。担保価値の計算ではWKAIAを$2とします。担保報酬の数量は、清算の配分後にプールへ渡された分です。

### 例1: 1回の清算

| 項目         | 数量                  |
| ---------- | ------------------- |
| イベント前のプール  | 10,000 USDHN        |
| 自分の預入額     | 1,000 USDHN、プールの10% |
| 負債の相殺額     | 500 USDHN           |
| プールへ渡された担保 | 250 WKAIA、価値は$500   |

預入額は`1,000 × (1 − 500 / 10,000) = 950` USDHNになります。担保報酬は`10% × 250 = 25` WKAIAです。

イベント後のポジションには、**預入金950 USDHNと報酬25 WKAIA**が残ります。

### 例2: 2回続けて清算

プール10,000 USDHN、自分の預入額1,000 USDHNから始めます。

| イベント | 直前のプール       | 直前の預入額      | 相殺額         | プールの担保受取  | 直後の預入額    | 自分の担保報酬  |
| ---- | ------------ | ----------- | ----------- | --------- | --------- | -------- |
| 1    | 10,000 USDHN | 1,000 USDHN | 500 USDHN   | 250 WKAIA | 950 USDHN | 25 WKAIA |
| 2    | 9,500 USDHN  | 950 USDHN   | 1,900 USDHN | 950 WKAIA | 760 USDHN | 95 WKAIA |

2回目の相殺では、残った預入金の20%が使われます。

$$
950 \times \left(1 - \frac{1{,}900}{9{,}500}\right) = 760
$$

2回のイベント後には、**預入金760 USDHNと累積報酬120 WKAIA**が残ります。受け取った担保が自動的にUSDHN預入金へ変わることはありません。

### 例3: 清算の間に追加で預ける

プール10,000 USDHN、自分の預入額1,000 USDHNから始めます。

1. 最初のイベントで200 USDHNを相殺し、100 WKAIAがプールに入ります。自分の預入額は980 USDHN、報酬は10 WKAIA、プールは9,800 USDHNになります。
2. 500 USDHNを追加で預けます。自分の預入額は1,480 USDHN、プールは10,300 USDHNになります。
3. 次のイベントで2,060 USDHNを相殺し、1,030 WKAIAがプールに入ります。

その後の預入額と担保報酬は次のとおりです。

$$
1{,}480 \times \left(1 - \frac{2{,}060}{10{,}300}\right) = 1{,}184
$$

$$
\frac{1{,}480}{10{,}300} \times 1{,}030 = 148\ \text{WKAIA}
$$

2回のイベント後には、**預入金1,184 USDHNと累積報酬158 WKAIA**が残ります。追加預入によって、2回目の清算前のプール持分が変わりました。

## USDHNの利息報酬

ActivePoolはブランチの借入利息と前払い手数料をUSDHNとして発行し、スタビリティプールの分をプールへ送ります。`triggerUSDHNRewards`がこのUSDHNを報酬計算に反映します。

USDHN報酬は、清算によって減る預入金とは別に蓄積されます。総預入額が1 USDHN未満の間、新たに分配された利息は保留され、預入額が分配基準に達すると計算に反映されます。

| 操作                               | USDHN報酬                                   | 担保報酬                                         |
| -------------------------------- | ----------------------------------------- | -------------------------------------------- |
| `claimRewards = true`で預け入れ・引き出し  | ウォレットへ送る                                  | 以前に記録された担保も含めてウォレットへ送る                       |
| `claimRewards = false`で預け入れ・引き出し | 預入額に加算                                    | 後で受け取れるよう`stashedColl`に記録                    |
| 預入金がある状態で報酬を受け取る                 | `withdrawFromSP(0, true)`でUSDHN報酬を送る      | 同じ呼び出しで担保報酬も送る                               |
| 預入金がある状態で再預入                     | `withdrawFromSP(0, false)`でUSDHN報酬を預入額に加算 | プール内の記録を維持                                   |
| 預入金がない状態で記録済み担保を受け取る             | USDHNの預入金は作らない                            | `claimAllCollGains()`で`stashedColl`をウォレットへ送る |

`withdrawFromSP`を使う引き出し・報酬の受け取り・再預入では、取引後にプール全体で最低1 USDHNを残す必要があります。

## 利回りが変わる要因

利息報酬は借入負債、金利、プールの預入規模によって変わります。清算の結果は相殺額と受け取った担保で決まります。その担保の市場価値は価格と売却時の流動性に応じて動きます。

残りのUSDHN預入金、USDHN報酬、担保報酬をそれぞれ確認します。[USDHN & Earn](/ja/protocol/usdhn-and-earn.md)にはアプリの操作手順があります。[借り入れと清算](/ja/protocol/borrowing-and-liquidation.md)では借り手のポジション、[リスク開示](/ja/security/risk-disclosure.md)では市場・コントラクト・オラクルのリスクを説明しています。


---

# 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/mechanics/deep-dives/liquidations-and-earn.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.
