> 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/yield-bearing-stables.md).

# โทเคนเงินฝากที่สร้างผลตอบแทน

ส่วนแบ่ง earnUSDT การแรป wEarnUSDT มูลค่า และการถอน USDT

earnUSDT เป็นโทเคนหลักฐานส่วนแบ่ง vault SuperEarn Hann Finance แรปเป็น wEarnUSDT เพื่อบัญชี CDP มูลค่ามาจากสินทรัพย์ต่อส่วนแบ่ง การแรปเปลี่ยนความละเอียดโทเคน

## สามสินทรัพย์

| สินทรัพย์ | แทน                      | บทบาท                                            |
| --------- | ------------------------ | ------------------------------------------------ |
| USDT      | สเตเบิลคอยน์พื้นฐาน      | ฝากเข้าหรือรับจาก SuperEarn ภายนอก               |
| earnUSDT  | ส่วนแบ่ง vault SuperEarn | โทเคนที่รับในขั้นตอนหลักประกัน EarnUSDT          |
| wEarnUSDT | ส่วนแบ่งแรป 18 ทศนิยม    | หลักประกัน Trove และสินทรัพย์จ่ายของพูลกับไถ่ถอน |

แอปใช้ 6 ทศนิยมสำหรับ earnUSDT และ 18 สำหรับ wEarnUSDT

```mermaid
flowchart LR
  U[USDT] -->|ฝาก SuperEarn| E[ส่วนแบ่ง earnUSDT]
  E -->|แรป| W[wEarnUSDT]
  W -->|ฝากหลักประกัน| T[Trove]
  T -->|รับหลักประกันคืน| W
  W -->|แกะแรป| E
  E -->|ขอไถ่ถอนและรับ| U
```

*รับหลักประกัน Trove คืน แกะแรป แล้วทำขั้นตอน SuperEarn เพื่อรับ USDT*

## จำนวนและมูลค่าต่อส่วนแบ่ง

จำนวนส่วนแบ่งอาจคงเดิมขณะที่สินทรัพย์ต่อส่วนเปลี่ยน ให้ `NAV` คือ USDT ต่อหนึ่งส่วน:

$$
\text{USDTValue} \approx \text{Shares} \times \text{NAV}
$$

1,000 ส่วน เมื่อ NAV จาก 1.00 เป็น 1.03 USDT มูลค่าอ้างอิงจาก 1,000 เป็น 1,030 USDT จำนวนยัง 1,000 ค่าถอน ขาดทุนที่เกิดจริง และสภาพคล่องกำหนดผลรับสุดท้าย

แต่ละโทเคนมีวิธีแปลงของตน provider NAV ของ Hann Finance อ่าน `SuperEarnRouter.previewRedeem(earnUSDT, oneShare)` แล้วปรับเป็น 18 ทศนิยม

## ฝาก ถือ และรับคืน

### 1. รับ earnUSDT

SuperEarn router มี `deposit(earnVault, amount, receiver, minSharesOut)` ฝาก USDT และออกส่วนแบ่ง preview ให้ราคาฝาก mint และแลกคืน

ขั้นตอนหลักประกันปกติรับ **ส่วนแบ่ง earnUSDT** จำนวนกรอกคือจำนวนส่วนแบ่ง

### 2. ใช้เป็นหลักประกัน

EarnUSDTZapper แรปเป็น wEarnUSDT ก่อนเข้า Trove การกู้ USDHN สร้างหนี้มีดอกเบี้ยแยก

การแปลงคงที่ตามทศนิยม:

$$
\text{WrappedRaw} = \text{EarnRaw} \times 10^{18-d}
$$

`d` คือทศนิยม earnUSDT เมื่อ 6 ตำแหน่ง 1 earnUSDT คือ 1,000,000 หน่วยดิบ ตรงกับ 1,000,000,000,000,000,000 หน่วย wEarnUSDT ทั้งคู่แทนหนึ่งส่วนในหน่วยแสดง

### 3. รับหลักประกันคืน

ปิดหรือลด Trove ปล่อยหลักประกันตามเงื่อนไข EarnUSDTZapper แกะยอดคืนเป็น earnUSDT เส้นทางปิดเลเวอเรจจ่าย wEarnUSDT หรือโทเคน vault ส่วนการขอ USDT จาก SuperEarn ทำภายหลัง

รางวัลพูลและไถ่ถอนโปรโตคอลจ่าย wEarnUSDT ใช้ `withdraw` หรือ `withdrawTo` ของ wrapper กลับ earnUSDT

แกะแรปปัดลงเป็นหน่วยดิบเต็มของ earnUSDT เศษ wEarnUSDT อยู่ในยอดผู้ถือ `previewWithdraw` คืนจำนวนเผาได้ underlying และเศษ ส่วน `maxWithdrawable` ให้จำนวนเต็มสูงสุดของบัญชี

### 4. ขอและรับ USDT

`redeem(earnVault, shares, receiver, minAssetsOut)` คืน ID คำขอ vault cooldown บันทึกผู้รับ จำนวน เวลา ช่วงรอเฉพาะคำขอ และสถานะ

เมื่อพร้อม `claim(requestId, maxLossBps)` คืนสินทรัพย์ อ่าน `cooldownPeriod()` และ `maxLossThresholdBps()` แล้วใช้ช่วงเวลาที่บันทึกกับขีดจำกัดขาดทุนที่อนุญาต

อีกทางคือขายโทเคนเงินฝากในตลาด ผลรับตามราคาและสภาพคล่อง

## ราคาหลักประกันโปรโตคอล

WEarnUSDTPriceFeed อ่าน NAV ผ่าน `EarnUSDTNavProviderRouter` และใช้ส่วนลดมูลค่า haircut ตามที่ตั้ง ส่วนลดใช้ยอดขาดกับขาดทุนการรับของ cooldown vault เทียบสินทรัพย์ล็อกและว่าง โดยมีตัวคูณและเพดาน

ราคาปกติคือ NAV หัก haircut สำหรับไถ่ถอน ปัด NAV ขึ้นเป็นขั้นหน่วย USDT ก่อนหัก

feed ตรวจอายุ snapshot keeper ข้ามเชน หากเก่าจะเกิด `SnapshotStale` และย้อนกลับการอ่าน หาก NAV ศูนย์ อ่านล้มเหลว หรืออ่านบัญชี haircut ล้มเหลว จะปิดสาขาและใช้ราคาดีล่าสุด

## มูลค่าตลาดและ CR

มูลค่าตลาดยังขึ้นกับราคาดอลลาร์ USDT:

$$
\text{MarketValue} \approx \text{Shares} \times \text{NAV} \times \text{USDTMarketPrice}
$$

1,000 ส่วน NAV 1.03 USDT และ USDT $1.00 มีมูลค่า $1,030 หาก USDT $0.97:

$$
1{,}000 \times 1.03 \times 0.97 = 999.1\ \text{USD}
$$

ค่านี้แยกค่าออกและผลกระทบราคาไว้

feed wEarnUSDT ปัจจุบันใช้ NAV และ haircut เท่านั้น ราคาตลาด USDT/USD ประเมินแยก CR โปรโตคอลใช้:

$$
CR\_{protocol} = \frac{\text{wEarnUSDTAmount} \times \text{PriceFeedValue}}{\text{USDHNDebt}}
$$

มูลค่าส่วนแบ่ง ขาดทุน haircut และดอกเบี้ยเปลี่ยนอัตรานี้ ส่วน cooldown กับสภาพคล่องกำหนดวิธีและเวลาที่แปลงเป็น USDT ได้

## ก่อนลงนาม

ตรวจโทเคนฝาก ราคาเสนอส่วนแบ่ง และสินทรัพย์คืน สำหรับ Trove ตรวจหนี้กับ CR สำหรับ USDT ตรวจช่วงรอและขาดทุนที่ยอมรับ บัญชีข้ามเชนและ SuperEarn ภายนอกเป็นสิ่งที่โทเคนพึ่งพา

[คู่มือ Zapper](/th/protocol/zapper.md) อธิบายเส้นทาง [ภาพรวมเทคนิค](/th/developers/technical-overview.md) อธิบายสัญญา ส่วน[เงื่อนไข CDP](/th/mechanics/deep-dives/cdp-safety.md), [ชำระบัญชีและ Earn](/th/mechanics/deep-dives/liquidations-and-earn.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/yield-bearing-stables.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.
