> 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/protocol/stableswap-dex.md).

# Konversi aset dan StableSwap

Tukar USDHN dan USDT, bridge ke Kaia, serta sediakan atau stake likuiditas StableSwap

Hann Finance menukar USDHN dan USDT melalui pool StableSwap. Suplai kedua token untuk menerima LP yang mewakili bagian pool. Staking LP menghasilkan reward melalui RewardStaker.

| Tindakan                     | Jalur aplikasi            | Hasil                                                                    |
| ---------------------------- | ------------------------- | ------------------------------------------------------------------------ |
| Tukar USDHN ↔ USDT           | `/convert` → Tukar        | Token output masuk ke dompet.                                            |
| Bridge aset ke Kaia          | `/convert` → Bridge       | USDC atau USDT yang didukung dari chain lain diterima sebagai USDT Kaia. |
| Tambah atau tarik likuiditas | `/earn/usdt` → Likuiditas | Setor kedua token untuk LP, atau bakar LP untuk menerima kedua token.    |
| Stake atau unstake LP        | `/earn/usdt` → Staking    | Pindahkan LP antara dompet dan RewardStaker.                             |

![USDT dan USDHN masuk pool untuk menerbitkan LP; pengembalian LP melepaskan bagian kedua aset.](https://1621382241-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FArM3TTRqpb8sI3QMPBlW%2Fuploads%2Fgit-blob-14825d40ecf49b1231689a0d43034cb067777903%2Fswap-liquidity.svg?alt=media)

*Setoran kedua aset membuat LP. Pembakaran LP mengembalikan bagian saldo pool saat ini.*

## Tukar USDHN dan USDT

1. Hubungkan dompet, buka `/convert` → Tukar.
2. Pilih USDHN → USDT atau sebaliknya.
3. Masukkan jumlah yang dibayar atau diterima. Jumlah lainnya dihitung dari kuotasi pool.
4. Atur toleransi slippage dan batas waktu. Tinjau jumlah, biaya, minimum diterima atau maksimum dibayar.
5. Selesaikan persetujuan atau tanda tangan Permit2 yang diminta, lalu konfirmasikan pertukaran.
6. Periksa saldo token output dan detail transaksi setelah konfirmasi.

Aplikasi memakai pool USDHN–USDT yang dikonfigurasi melalui `StableSwapRouter`. Kuotasi dan pertukaran memeriksa pendaftaran factory pool dan token yang diizinkan router. Pertukaran tidak dapat dijalankan saat pool dijeda.

### Jumlah input dan output

| Yang dimasukkan               | Batas kontrak                    | Kondisi revert                           |
| ----------------------------- | -------------------------------- | ---------------------------------------- |
| Jumlah dibayar: input tepat   | `amountOutMin`, minimum diterima | Output di bawah minimum.                 |
| Jumlah diterima: output tepat | `amountInMax`, maksimum dibayar  | Input yang diperlukan melebihi maksimum. |

Untuk kuotasi input tepat `995` token dengan slippage `0.5%`, minimum diterima sekitar `990.025` token:

$$
minOut \approx quote \times \left(1-\frac{slippageBps}{10{,}000}\right)
$$

Satu basis poin adalah `0.01%`. Batas akhir memakai presisi desimal token. Slippage lebih tinggi mengizinkan perbedaan lebih besar dari kuotasi. Biaya pool dihitung dari konfigurasinya. Batas waktu menghentikan eksekusi setelah waktunya lewat.

Biaya kuotasi mengikuti konfigurasi dan saldo pool saat ini. Ketidakseimbangan dapat menaikkan dampak harga dan biaya dinamis. Tidak ada nilai tukar tetap satu USDHN untuk satu USDT.

## Bridge aset ke Kaia

Bridge memakai Rhino.fi untuk membawa USDC atau USDT yang didukung dari chain EVM lain menjadi USDT Kaia. Pilihan chain asal dan aset mengikuti rute layanan bridge. Tujuannya Kaia mainnet, chain ID `8217`, dengan token USDT.

1. Buka `/convert` → Bridge dan pilih chain asal serta aset.
2. Masukkan jumlah. Dompet terhubung menerima USDT Kaia. Sisakan token native chain asal untuk biaya.
3. Tinjau jumlah diterima, biaya bridge, perkiraan waktu, dan pengaturan KAIA untuk gas.
4. Pindahkan dompet ke chain asal, setujui jumlah token dalam kuotasi, dan konfirmasikan setoran asal.
5. Ikuti status sampai pengiriman di Kaia. Transaksi asal mengonfirmasi setoran; pengiriman tujuan menyelesaikan transfer.

Tambahan gas KAIA mengonversi sebagian nilai transfer menjadi KAIA native untuk biaya tujuan; biayanya tercantum dalam kuotasi. Konfigurasi Kaia mainnet mengaktifkan Bridge, sedangkan Kairos menyembunyikannya. Eksekusi memerlukan koneksi dompet EVM yang dapat berpindah ke chain asal. Mode koneksi seluler aplikasi dan dompet khusus Kaia tidak mendukung alur ini.

Riwayat bridge dan kontrol lanjut melacak transfer setelah halaman dibuka kembali. Periksa statusnya sebelum membuat setoran lain. Pengiriman lintas chain memiliki transaksi, progres, dan status pengembalian tersendiri.

## Tambah likuiditas

1. Buka `/earn/usdt` → Likuiditas → Setor.
2. Masukkan jumlah positif untuk USDT dan USDHN. Tinjau rasio pool, perkiraan LP, LP minimum, dan batas waktu.
3. Pilih Setor saja atau Setor dan stake LP.
4. Setujui kedua token atau tandatangani izin Permit2, lalu konfirmasikan.

Pool tidak memaksakan rasio setoran tetap. Setoran tidak seimbang mengubah kuotasi LP dan dikenai biaya ketidakseimbangan. Setoran gagal jika salah satu jumlah nol atau LP terbit di bawah `minLiquidity`.

| Pilihan         | Tujuan LP baru                          | Izin tambahan                                          |
| --------------- | --------------------------------------- | ------------------------------------------------------ |
| Setor saja      | Dompet melalui `StableSwapRouter`       | Izin penggunaan token bagi router.                     |
| Setor dan stake | RewardStaker melalui `StableSwapZapper` | Izin token bagi zapper dan izin operator RewardStaker. |

Izin operator memungkinkan zapper melakukan stake atau unstake atas nama Anda. Ini izin on-chain terpisah dari izin penggunaan token. Aplikasi memintanya sebelum transaksi gabungan jika belum aktif.

## Stake, unstake, dan klaim reward

Gunakan `/earn/usdt` → Staking untuk stake LP di dompet atau unstake saldo yang ada. Staking mentransfer LP ke RewardStaker; unstaking mengembalikannya ke dompet. Keduanya tidak menarik likuiditas pool.

Klaim reward mengambil USDHN yang terkumpul tanpa mengurangi LP yang di-stake. Alur setor-dan-stake serta stake juga menawarkan klaim jika ada reward.

## Tarik likuiditas

1. Buka `/earn/usdt` → Likuiditas → Tarik dan masukkan LP.
2. Tinjau perkiraan USDT, USDHN, dan minimum tiap token.
3. Untuk LP di dompet, setujui atau tandatangani bagi `StableSwapRouter`, lalu konfirmasikan. Untuk LP yang di-stake, pilih unstake-dan-tarik; aplikasi memeriksa izin operator zapper lebih dulu.
4. Setelah konfirmasi, kedua token masuk ke dompet dan LP dibakar.

Aplikasi menarik kedua token sesuai proporsi saldo pool saat ini. Jumlah awal tidak dijamin kembali dan alur ini tidak memilih satu token output. Penarikan proporsional tetap tersedia di kontrak saat pool dijeda; pertukaran dan setoran baru tetap dijeda.

## Perubahan nilai posisi LP

LP terekspos pada kedua aset. Jika USDHN turun di bawah peg, pedagang dapat menjualnya ke pool untuk USDT. Pool kemudian memegang lebih banyak USDHN dan lebih sedikit USDT. Bagian Anda mengikuti komposisi tersebut. Eksposur tersebut tetap ada selama staking. Minimum penarikan membatasi jumlah token, sementara nilai dolarnya mengikuti harga pasar.

Lihat [Mekanisme StableSwap](/id/mechanics/deep-dives/stableswap.md) untuk kurva, biaya, dan contoh depeg. [Zapper](/id/protocol/zapper.md) menjelaskan operasi likuiditas dan Trove gabungan.


---

# 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/protocol/stableswap-dex.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.
