Luncurkan token loyalitas/loop tertutup

Sui CLT dengan transfer yang dikontrol daftar yang disetujui + jeda. Pemegang memindahkan poin hanya di antara alamat yang telah Anda setujui sebelumnya.

Poin loyalitas dan kredit dalam aplikasi paling baik ketika tetap berada dalam ekosistem yang Anda kontrol. Preset ini menyebarkan Token Sui Closed-Loop di mana penerapan memelihara daftar yang disetujui dari alamat penerima yang disetujui (pedagang, mitra, dompet operator). Token yang dicetak untuk pengguna hanya dapat mengalir ke daftar yang disetujui itu — tidak ada jalan keluar melalui dompet sewenang-wenang, tidak ada pertukaran ke Koin generik, tidak ada pendaftaran DEX secara default.

Apa yang disertakan

Mengapa tumpukan ini

Token Closed-Loop `sui::token` Sui adalah primitif Move arus utama satu-satunya yang mengontrol transfer di tingkat sistem jenis — pemegang menerima `Token<T>` (tidak ada kemampuan `store`, tidak ada `public_transfer`) dan setiap transfer menghasilkan ActionRequest yang harus disetujui terhadap TokenPolicy yang disebarkan. Aturan daftar yang disetujui adalah konfigurasi `VecSet<address>` yang penerapan kelola melalui dua fungsi administrator yang dikontrol oleh TokenPolicyCap (add_to_allowlist, remove_from_allowlist). Jeda mencakup kasus di mana loop tertutup itu sendiri memerlukan penghentian darurat.

Dapatkah saya membuat token pemegang secara permanen soulbound?

Ya — lepaskan kebijakan loop tertutup dari bundel dan aktifkan non-transferable. Ini mendaftarkan TokenPolicy kosong: setiap ActionRequest transfer membatalkan di confirm_request. Preset non-transferable + Identity-SBT di Sui mencakup kasus itu.

Bagaimana cara saya menambahkan alamat ke daftar yang disetujui setelah penyebaran?

Modul Move yang disebarkan mengekspos `add_to_allowlist(policy, cap, addr, ctx)` dan `remove_from_allowlist`. Panggil mereka dari halaman manajemen atau dari dompet apa pun yang menyimpan TokenPolicyCap — dompet yang sama yang menyebarkan token secara default.

Apa yang terjadi pada token yang dikirim ke alamat yang tidak disetujui?

Panggilan `token::transfer` mengembalikan ActionRequest; `verify_allowlist_transfer` menegaskan penerima berada di daftar, jika tidak transaksi dibatalkan. Token tidak pernah meninggalkan alamat pengirim — tidak ada saldo yang gagal dan terhenti untuk dibersihkan.