> 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/ko/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 미만인 풀은 청산 부채 상쇄에 참여하지 않습니다. 상쇄량이 청산 부채보다 작으면 나머지는 재분배 경로로 처리합니다.

상쇄에 배정할 담보는 전체 부채 중 상쇄한 비율과 같은 비율로 나눕니다. 컨트랙트는 여기서 담보 가스 보상을 차감하고, 브랜치의 스태빌리티 풀 청산 페널티를 적용해 풀에 보낼 담보의 상한을 계산합니다. 남은 담보는 재분배 경로에서 먼저 사용될 수 있으며, 최종 잔여분을 차입자 몫으로 기록합니다.

풀은 브랜치의 담보 토큰을 받습니다. KAIA 브랜치는 WKAIA, EarnUSDT 브랜치는 wEarnUSDT를 받습니다.

## 참여자별 변화

| 참여자          | 변화                                                                  |
| ------------ | ------------------------------------------------------------------- |
| 청산된 차입자      | Trove가 종료되고 해당 포지션의 부채가 제거되며 담보가 분배됩니다. 기록된 잔여 담보는 차입자가 수령할 수 있습니다. |
| 스태빌리티 풀 예치자  | 부채 상쇄량에 비례해 USDHN 예치금이 줄고 담보 보상이 쌓입니다.                              |
| 다른 Trove 차입자 | 각자의 지분에 비례해 재분배된 부채와 담보를 받습니다.                                      |
| 청산 실행자       | 청산 가스 보상을 받습니다.                                                     |

스태빌리티 풀 예치에는 차입자의 개별 청산 기준이 적용되지 않습니다. 풀에서 청산 부채를 상쇄하면 USDHN 잔액은 줄어듭니다.

## 예치금과 담보 보상 계산

한 번의 이벤트에서 각 값은 다음과 같습니다.

* `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입니다.

이벤트 후 포지션에는 **USDHN 예치금 950과 WKAIA 보상 25**가 남습니다.

### 예시 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  |

두 번째 상쇄는 남은 예치금의 20%를 사용합니다.

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

두 이벤트 후 포지션에는 **USDHN 예치금 760과 누적 WKAIA 보상 120**이 남습니다. 담보로 받은 수량은 자동으로 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}
$$

두 이벤트 후 포지션에는 **USDHN 예치금 1,184와 누적 WKAIA 보상 158**이 남습니다. 추가 예치로 두 번째 청산 전 자신의 풀 지분이 바뀌었습니다.

## 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](/ko/protocol/usdhn-and-earn.md)에는 앱 사용 절차가 있습니다. [차입과 청산](/ko/protocol/borrowing-and-liquidation.md)에서는 차입자 포지션을, [리스크 공시](/ko/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/ko/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.
