> 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/id/developers/technical-overview.md).

# Ringkasan teknis

Kontrak publik, pencatatan aset, dan transaksi dompet untuk Lending, USDHN, staking, dan pertukaran

Hann Finance menggabungkan pasar pinjaman, pinjaman USDHN beragunan, liquid staking, dan pertukaran. Tiap produk memiliki kontrak saldo, utang, dan kepemilikan. Integrasi membaca kontrak melalui RPC chain pilihan dan mengirim transaksi dari dompet pengguna.

## Pembacaan kontrak dan transaksi dompet

### Baca keadaan kontrak

```mermaid
flowchart TB
  INTEGRATION[Integrasi Anda] -->|Panggilan baca| RPC[RPC chain]
  RPC --> CONTRACTS[Kontrak publik produk]
```

### Transaksi dompet

Integrasi menyiapkan panggilan; dompet menandatangani dan mengirim. Tujuannya mengikuti tindakan: Lending Pool, CDP Zapper, vault bKAIA atau HNKAIA, atau StableSwap Router. CDP Zapper mengoordinasikan pinjaman dan pertukaran berikut.

```mermaid
flowchart TB
  APP[Integrasi Anda] -->|Minta tanda tangan| WALLET[Dompet pengguna]
  WALLET --> ZAP[CDP Zappers]
  ZAP --> BO[BorrowerOperations]
  ZAP --> FLASH[FlashSwapper]
  BO --> TM[TroveManager]
  BO -->|Terbitkan atau bakar| USDHN[USDHNToken]
  TM -->|Hapus utang likuidasi| SP[StabilityPool]
  FLASH --> POOL[Pool pertukaran]
```

Panggilan baca mengembalikan saldo, posisi, harga, dan kuotasi. Kontrak menegakkan kepemilikan, transfer, perubahan utang, serta batas eksekusi. Simulasi mengevaluasi usulan panggilan. Receipt dan log mencatat hasil eksekusi; baca saldo serta posisi setelah konfirmasi.

| Produk            | Kontrak pencatatan                                   | Hasil pengguna                                                  |
| ----------------- | ---------------------------------------------------- | --------------------------------------------------------------- |
| Lending           | `Pool`, aToken reserve, dan token utang              | Suplai, pinjam, bayar, dan tarik                                |
| Pinjaman USDHN    | `BorrowerOperations` dan `TroveManager` per cabang   | Kunci agunan dalam Trove dan terbitkan utang USDHN              |
| Earn              | `StabilityPool` per cabang                           | Setor USDHN, terima bunga dan agunan likuidasi                  |
| Staking bKAIA     | `LSTVault`, `LSTToken`                               | Setor KAIA untuk bagian bKAIA, ajukan penarikan dan klaim tiket |
| HNKAIA            | `HNKAIA`, `HNKAIAAssetVault`                         | Setor aset staking untuk bagian HNKAIA dan tebus aset dasar     |
| Pertukaran dan LP | `StableSwap`, `StableSwapRouter`, LP, `RewardStaker` | Tukar USDT dan USDHN, suplai likuiditas, stake LP               |

## Cabang agunan USDHN

Pinjaman USDHN memiliki cabang KAIA, HNKAIA, dan earnUSDT. Cabang KAIA memegang WKAIA; zapper melakukan wrap sebelum setoran. Cabang earnUSDT memegang agunan terbungkus wEarnUSDT.

Setiap cabang mencakup:

* `BorrowerOperations`: membuka, menyesuaikan, menutup Trove, serta mengubah pengaturan bunga.
* `TroveManager`: menghitung utang dan agunan terbaru, memproses likuidasi serta penebusan, mencatat status.
* `TroveNFT` untuk pemilik posisi dan `SortedTroves` untuk urutan bunga.
* `ActivePool`, `DefaultPool`, `CollSurplusPool`, `GasPool`: memegang agunan dan mencatat utang aktif, redistribusi, kelebihan agunan, serta kompensasi gas.
* `StabilityPool`: membakar USDHN setoran untuk menghapus utang likuidasi dan menerima agunan.
* `PriceFeed`, `AddressesRegistry`: menyediakan harga dan konfigurasi cabang.

`CollateralRegistry` bersama merutekan penebusan ke cabang aktif yang memenuhi syarat. `HintHelpers` menyediakan petunjuk penyisipan; `RedemptionHelper` menghitung penebusan. Utang terbaru mencakup bunga tertunda, redistribusi, dan biaya pengelolaan batch. Gunakan `getLatestTroveData()` untuk posisi lengkap terkini.

### Kesehatan posisi

Untuk CDP terbuka yang berutang, CR adalah nilai USD agunan dibagi seluruh utang USDHN. Kontrak memakai satuan `1e18` untuk agunan, utang, harga, dan rasio:

```
ICR18 = entireColl × price18 / entireDebt
```

Cabang menegakkan `MCR` individu, `CCR` untuk batas pinjaman dan penarikan total, `SCR` untuk shutdown, serta batas tambahan pinjaman batch. Likuidasi CDP memakai `ICR < MCR`. Penebusan normal memeriksa Trove utang kecil tersimpan, lalu mengurangi utang dan agunan dari suku bunga terendah. Biaya tetap di Trove. Likuidasi menghapus utang lewat Pool Stabilitas dan meredistribusikan sisa dalam cabang.

Health factor Lending dihitung dari agunan aktif, ambang likuidasi, dan total utang. `Pool.getUserAccountData()` mengembalikannya pada presisi `1e18`; nilai di bawah `1e18` memenuhi syarat likuidasi. CDP dan Lending memiliki utang serta aturan likuidasi masing-masing.

## Zapper dan eksekusi flash

Zapper menerima token berizin atau KAIA native, menjalankan rute, dan mengembalikan sisa kepada penerima. Entrypoint Permit2 memakai tanda tangan bersama allowance ke Permit2; jalur allowance biasa tersedia terpisah.

| Kontrak                                                                 | Operasi                                                                        |
| ----------------------------------------------------------------------- | ------------------------------------------------------------------------------ |
| `WKAIAZapper`                                                           | Agunan KAIA native dan WKAIA                                                   |
| `HNKAIAZapper`                                                          | Agunan HNKAIA                                                                  |
| `EarnUSDTZapper`                                                        | Wrap earnUSDT dan operasi agunan terbungkus                                    |
| `LeverageWKAIAZapper`, `LeverageHNKAIAZapper`, `LeverageEarnUSDTZapper` | Buka, tambah, kurangi, atau tutup posisi flash dengan agunan terkait           |
| `FlashSwapper`                                                          | Callback flash swap DEX, eksekusi StableSwap, dan penyelesaian dalam transaksi |
| `StableSwapZapper`                                                      | Operasi likuiditas dan staking LP                                              |

Eksekusi flash menyerahkan pengelolaan Trove kepada FlashSwapper berizin selama callback lalu memulihkannya. Keadaan mencakup add manager, remove manager, dan receiver. Izin callback, pemeriksaan token, batas biaya flash, serta utang akhir mengikat rute ke operasi yang diajukan. Snapshot saldo memisahkan sisa rute dari saldo sebelumnya.

`openLeveragedTrove`, `leverUpTrove`, dan `leverDownTrove` menerima `maxDebt`, batas seluruh utang akhir. `closeTroveByCollateral` menjual agunan untuk melunasi utang dan mengembalikan sisa token stabil. Struct parameternya berisi `troveId` dan `profitReceiver`, tanpa minimum output dari pengguna. Siapkan transaksi menurut batas tiap entrypoint.

## Staking, pertukaran, dan lintas chain

Gunakan **alamat `LSTVault`** untuk setoran, permintaan penarikan, klaim, dan pembacaan bKAIA. `requestUnstakeByShares` membuat tiket sesuai jumlah yang diterima node. Sisa bagian tetap di dompet. Tiket memiliki waktu kesiapan dan klaim sendiri. `claimMany` memproses tiket termasuk hasil sebagian. `RequestUnstake`, `ClaimPayout`, `TicketStatusUpdated`, `ClaimManySummary` mencatat permintaan, pembayaran, status, dan total batch.

HNKAIA mewakili bagian token staking vault. `redeemProRata` membakar HNKAIA dan membayar setiap token menurut proporsi saldo, dibulatkan ke bawah dalam satuan integer. Penebusan keranjang tanpa biaya ini tetap tersedia saat setoran berbasis harga dan penebusan satu aset dijeda. `RedeemProRata` dan `RedeemProRataAsset` mencatat bagian serta output token.

StableSwap menyediakan kuotasi input/output tepat, kuotasi likuiditas, deadline, minimum output, dan maksimum input. `StableSwapRouter` memvalidasi pool, allowlist token, dan penerima. Pool mencatat cadangan serta biaya; `RewardStaker` mencatat staking dan reward. `LiquidityAdded` dan `LiquidityRemoved` mencatat operasi router; `Stake`, `Unstake`, dan `Claim` mencatat RewardStaker.

`USDHNToken` menerapkan ERC-20 dan permit. `USDHNOFTAdapter` mengunci serta membuka token kanonis untuk LayerZero; `USDHNOFT` menerbitkan dan membakar di chain remote. Bridge aplikasi memakai Rhino.fi untuk membawa USDT atau USDC menjadi USDT Kaia. Receipt asal mengonfirmasi transaksi asal; pengiriman tujuan memiliki transaksi dan status sendiri.

## Baca, simulasi, kirim, konfirmasi

1. Pilih chain, alamat, dan ABI dari [referensi Smart contract](/id/developers/smart-contracts.md). Identifikasi token dengan chain dan alamat, termasuk token bukti setoran dan utang.
2. Baca saldo, izin, posisi, harga, dan kuotasi. Trove memakai seluruh utang terbaru; Lending memakai agunan, utang, dan health factor tingkat akun.
3. Siapkan izin token, Permit2, delegasi kredit, atau izin pengelola/operator. Selesaikan izin sebelum perubahan aset atau posisi.
4. Simulasikan sender, calldata, value native, penerima, deadline, dan batas jumlah yang sebenarnya. Perubahan keadaan sebelum eksekusi dapat menyebabkan revert.
5. Kirim lewat dompet, simpan hash, periksa receipt di chain yang sama. Revert mempertahankan keadaan sebelum tindakan dan tetap menghabiskan gas; izin yang sudah berhasil tetap ada.
6. Dekode log dengan ABI dan alamat kontrak pengirimnya, lalu baca hasil posisi. Periksa jumlah yang diproses pada tiket staking dan penebusan.

## Jaringan dan alamat

Kaia Mainnet memakai `8217`; Kairos memakai `1001`. Kontrak mainnet Hann Finance belum diterapkan. [Smart contract](/id/developers/smart-contracts.md) memisahkan catatan alamat mainnet dan testnet. Gunakan alamat untuk jaringan tujuan, dan identifikasi token berdasarkan jaringan, produk, serta alamat.

[Referensi Smart contract](/id/developers/smart-contracts.md) mencantumkan nama, fungsi, event, status deployment, dan alamat. [Panduan integrasi](/id/developers/integrator-kit.md) menjelaskan transaksi serta event. [TroveManager](/id/developers/trove-manager.md) menjelaskan transisi status; [Zapper](/id/protocol/zapper.md) menjelaskan rute.


---

# 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/id/developers/technical-overview.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.
