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

# การชำระบัญชีและ Earn

หักล้างหนี้ชำระบัญชี แบ่งหลักประกัน และบันทึกเงินฝากพูลเสถียรภาพ

ชำระบัญชีปิด Trove ที่ CR ต่ำกว่า `MCR` ของสาขา พูลเสถียรภาพใช้ USDHN หักล้างหนี้บางส่วนหรือทั้งหมดและรับหลักประกัน หนี้กับหลักประกันที่เหลือกระจายไป Trove อื่นในสาขา

## ขั้นตอนชำระบัญชี

CR ใช้ราคาออราเคิลกับหนี้ล่าสุดรวมดอกเบี้ยและกระจาย

1. ส่ง ID ให้ `TroveManager.batchLiquidateTroves`
2. ตรวจ Trove active หรือ `zombie` ชำระบัญชีเฉพาะ CR ต่ำกว่า `MCR` อย่างเคร่งครัด
3. ปิด Trove และนำออกจากโพซิชัน active ผู้กู้
4. เงินฝากพูลหักล้างหนี้ เผา USDHN ที่ใช้และรับหลักประกัน
5. หนี้และหลักประกันที่เหลือกระจายผ่าน DefaultPool
6. ผู้ชำระบัญชีรับชดเชยแก๊ส ส่วนเกินบันทึกใน CollSurplusPool ให้ผู้กู้รับ

หากพูลหักล้างไม่ครบ Trove ยังปิดและหนี้ที่เหลือย้ายไป Trove อื่นผ่านการกระจาย

## พูลรับหนี้เท่าไร

ให้ `pool` เป็น USDHN ฝาก และ `D` เป็นหนี้ชำระบัญชี ใช้ส่วนเกินจาก 1 USDHN:

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

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

พูลต่ำกว่า 1 USDHN หักล้างไม่ได้ หากหักล้างน้อยกว่าหนี้ ส่วนที่เหลือกระจาย

เริ่มจัดหลักประกันตามสัดส่วนหนี้ที่หักล้าง หักชดเชยแก๊สในหลักประกันแล้วจำกัดจำนวนส่งพูลตามค่าปรับสาขา ส่วนเกินอาจใช้ในทางกระจายก่อนบันทึกส่วนคืนผู้กู้สุดท้าย

พูลรับโทเคนหลักประกันสาขา KAIA รับ WKAIA และ EarnUSDT รับ wEarnUSDT

## ผลต่อแต่ละฝ่าย

| ฝ่าย               | เปลี่ยน                                                      |
| ------------------ | ------------------------------------------------------------ |
| ผู้กู้ถูกชำระบัญชี | Trove ปิด หนี้ออกจากโพซิชัน หลักประกันแบ่ง ส่วนเกินยังรับได้ |
| ผู้ฝากพูล          | USDHN ลดตามสัดส่วนหักล้าง รางวัลหลักประกันเพิ่ม              |
| ผู้กู้ Trove อื่น  | หนี้และหลักประกันกระจายเพิ่มตาม stake                        |
| ผู้ชำระบัญชี       | รับชดเชยแก๊ส                                                 |

เงินฝากพูลเสถียรภาพไม่มีเกณฑ์ชำระบัญชีรายบุคคลแบบเงินกู้ เมื่อพูลหักล้างหนี้ ยอด USDHN ของผู้ฝากลดตามส่วนแบ่ง

## บัญชีเงินฝากและหลักประกัน

ต่อหนึ่งเหตุการณ์:

* `pool`: เงินฝาก USDHN รวมก่อนหักล้าง
* `you`: เงินฝากของคุณก่อนหักล้าง
* `offset`: USDHN ที่เผาชำระหนี้
* `collGain`: โทเคนหลักประกันที่เข้าพูลจริง

คิดตามส่วน:

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

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

สัญญาใช้ผลคูณเงินฝาก `P` ตัวสะสมหลักประกัน `S` และ snapshot ผู้ฝาก รางวัล USDHN ใช้ `B` แยก การหารจำนวนเต็มปัดลงและมีการเปลี่ยน scale

ตัวอย่างแยกรางวัลดอกเบี้ยกับเงินฝากใหม่คนอื่นออก ตี WKAIA ที่ $2 และใช้จำนวนหลักประกันที่เข้าพูลหลังจัดสรร

### ตัวอย่าง 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: สองครั้งติดกัน

เริ่มพูล 10,000 และเงินฝาก 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
$$

รวมแล้วมี **เงินฝาก 760 USDHN และรางวัลสะสม 120 WKAIA** รางวัลหลักประกันบันทึกแยกเป็น WKAIA

### ตัวอย่าง 3: เติมเงินระหว่างครั้ง

เริ่มพูล 10,000 และฝาก 1,000 USDHN

1. หักล้าง 200 USDHN รับ 100 WKAIA เงินฝากเหลือ 980 รางวัล 10 WKAIA พูลเหลือ 9,800 USDHN
2. เติม 500 USDHN เงินฝากเป็น 1,480 และพูล 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}
$$

สุดท้ายมี **เงินฝาก 1,184 USDHN และรางวัลสะสม 158 WKAIA** การเติมเปลี่ยนส่วนแบ่งก่อนครั้งสอง

## รางวัลดอกเบี้ย USDHN

ActivePool สร้างดอกเบี้ยรวมผู้กู้กับค่าล่วงหน้า แล้วส่งส่วนของพูลเสถียรภาพ `triggerUSDHNRewards` เพิ่มในบัญชีรางวัล

รางวัลสะสมแยกจากเงินฝากที่ลดเพราะชำระบัญชี หากฝากน้อยกว่า 1 USDHN ผลตอบแทนใหม่รอจนถึงเกณฑ์แจก

| รายการ                         | รางวัล USDHN                            | รางวัลหลักประกัน                                    |
| ------------------------------ | --------------------------------------- | --------------------------------------------------- |
| ฝาก/ถอน `claimRewards = true`  | เข้าวอลเล็ต                             | เข้าวอลเล็ตรวมที่บันทึกก่อนหน้า                     |
| ฝาก/ถอน `claimRewards = false` | เพิ่มเงินฝาก                            | เก็บใน `stashedColl` รอรับ                          |
| รับขณะมีเงินฝาก                | `withdrawFromSP(0, true)` ส่ง USDHN     | คำสั่งเดียวส่งหลักประกัน                            |
| ฝากซ้ำขณะมีเงินฝาก             | `withdrawFromSP(0, false)` เพิ่มเงินฝาก | ยังบันทึกในพูล                                      |
| รับหลักประกันเมื่อไม่มีเงินฝาก | ยอดฝาก USDHN ยังว่าง                    | `claimAllCollGains()` ส่ง `stashedColl` เข้าวอลเล็ต |

ถอน รับ หรือฝากซ้ำผ่าน `withdrawFromSP` ต้องเหลืออย่างน้อย 1 USDHN ทั้งพูล

## เหตุที่ผลตอบแทนเปลี่ยน

ดอกเบี้ยขึ้นอยู่กับหนี้ผู้กู้ อัตรา และยอดพูล ผลชำระบัญชีขึ้นกับหักล้างและหลักประกันที่รับ มูลค่าตลาดหลักประกันตามราคาและสภาพคล่องออก

ติดตามเงินฝาก USDHN ที่เหลือ รางวัล USDHN และหลักประกันแยกกัน ดูขั้นตอนใน[USDHN และ Earn](/th/protocol/usdhn-and-earn.md) โพซิชันผู้กู้ใน[การกู้และชำระบัญชี](/th/protocol/borrowing-and-liquidation.md) และความเสี่ยงใน[การเปิดเผยความเสี่ยง](/th/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 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/th/mechanics/deep-dives/liquidations-and-earn.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.
