> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mycryptocasino.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Keadilan Dice

> Mengapa tidak diperlukan rahasia operator, dan penurunan lengkap dari input publik.

Lemparan Dice sama sekali tidak memakai rahasia operator. Hasilnya diturunkan on-chain dari slot hash Solana yang ditangkap saat taruhan Anda dieksekusi, alamat akun Anda, dan penghitung taruhan pribadi Anda, lalu diselesaikan dalam transaksi yang sama dengan saat taruhan dipasang. Tidak ada seed yang bisa dipilih operator, dan tidak ada yang perlu diungkap sesudahnya.

Halaman ini menjelaskan mekanisme persis di balik setiap lemparan [Dice](/id/docs/games/dice). Dice adalah kasus paling sederhana dari [skema provably fair](/id/docs/provably-fair/overview): **sama sekali tidak ada rahasia operator**. Lemparan diturunkan dari input publik dan diselesaikan on-chain dalam transaksi yang sama dengan saat taruhan dipasang.

<h2 id="why-there-is-no-commit-step">
  Mengapa Dice tidak punya langkah commit?
</h2>

Crash membutuhkan rahasia yang di-commit karena hasilnya harus *tetap tetapi tersembunyi* selama ronde berlangsung. Lemparan dadu tidak punya fase seperti itu: hasilnya langsung dipakai dalam instruksi yang sama dengan yang menariknya. Jadi, alih-alih meng-commit sebuah rahasia, penurunannya sama sekali **tidak memakai input apa pun dari operator**: tidak ada yang perlu di-commit, tidak ada yang perlu diungkap, dan tidak ada seed yang bisa dipilih operator demi keuntungannya.

Entropinya berasal dari jaringan Solana itu sendiri, dicampur dengan nilai-nilai yang mengidentifikasi taruhan Anda:

* **`slothash`**: entri terbaru dari sysvar `SlotHashes` Solana pada saat transaksi taruhan Anda dieksekusi. Ini adalah entropi yang dihasilkan jaringan dan belum diketahui saat transaksi disusun (pengirim tidak bisa tahu persis di slot mana sebuah transaksi akan masuk).
* **`user`**: alamat 32 byte dari akun pengguna on-chain Anda (akun yang diturunkan program dari wallet Anda). Ini membuat lemparan antar pemain saling independen: dua taruhan yang masuk di slot yang sama akan mendapat lemparan berbeda.
* **`nonce`**: penghitung taruhan pribadi Anda, disimpan on-chain dan bertambah setiap kali Anda bermain. Ini membuat taruhan Anda yang berurutan saling independen, bahkan dalam slot yang sama, sekaligus berfungsi sebagai perlindungan terhadap pengiriman ganda.

<h2 id="the-exact-formula">
  Apa formula persis lemparan Dice?
</h2>

```text theme={null}
input
  slothash   32 byte   slot hash Solana terbaru saat transaksi taruhan dieksekusi
  user       32 byte   alamat akun pengguna on-chain Anda
  nonce      8 byte    penghitung taruhan Anda, little-endian

penurunan
  hash = sha256( "dice" ‖ slothash ‖ user ‖ nonce )   // "dice" = 4 byte ASCII 0x64 0x69 0x63 0x65
  roll = u128_be( hash[0..16] ) mod 10000              // 16 byte pertama, unsigned 128-bit big-endian

hasil
  roll adalah integer dalam 0..9999, dua angka desimal pada rentang 0.00–99.99
```

Detail yang penting saat Anda menghitung ulang:

* Input hash adalah hasil penggabungan, dengan urutan persis seperti ini: tag ASCII `"dice"`, slot hash, alamat akun pengguna, lalu nonce yang di-encode sebagai **8 byte little-endian**.
* Sampelnya adalah **16 byte pertama** dari output SHA-256 yang dibaca sebagai integer unsigned 128-bit **big-endian**, lalu direduksi modulo 10,000.
* Mereduksi sampel 128-bit modulo 10,000 memiliki bias teoretis di bawah 2⁻¹¹⁴, puluhan orde besaran lebih kecil daripada house edge, dan karena itulah bias ini didokumentasikan alih-alih dikoreksi.

## Kondisi menang dan pembayaran

```text theme={null}
Di bawah target : Anda menang jika roll < target      peluang menang = target dari 10000 hasil
Di atas  target : Anda menang jika roll > target      peluang menang = 9999 − target dari 10000 hasil

multiplier_bps = floor( (10000 − edge_bps) × 10000 / win_chance_bps )
```

Peluang menang yang Anda pilih harus berada di antara 2% dan 98%. Dengan edge saat ini sebesar 1.5% (`edge_bps = 150`):

| Taruhan | Peluang menang | Pengali |
| - | - | - |
| Di bawah 5000 | 50% | 1.97x |
| Di bawah 200 | 2% | 49.25x |
| Di bawah 9800 | 98% | 1.0051x |

Pengembalian yang diharapkan sama untuk setiap target: `peluang × pengali ≈ 98.5%` dari taruhan (pembulatan ke bawah menguntungkan kasino paling banyak satu basis poin). Edge dan batas yang berlaku saat ini tercantum di [Biaya & batas](/id/docs/fees-and-limits).

## Apa yang dijamin, dan apa yang tidak

**Ditegakkan oleh program:**

* Lemparan diturunkan **dan** diselesaikan di dalam satu instruksi on-chain, dari input yang dibaca oleh program itu sendiri. Backend tidak menyediakan lemparan dan tidak bisa melaporkannya secara keliru.
* Operator **tidak memberikan input apa pun** pada penurunan: tidak ada server seed yang bisa diutak-atik demi hasil yang menguntungkan.
* Nonce Anda harus dikembalikan persis sama, sehingga taruhan yang sama tidak bisa dimainkan dua kali, baik tanpa sengaja maupun dengan niat jahat.
* Setiap permainan memublikasikan semua input penurunan beserta hasilnya, sehingga setiap lemparan dalam riwayat dapat dihitung ulang oleh siapa pun.

**Catatan jujur: waktu pengiriman.** Taruhan Dice bersifat gasless: backend MCC menandatangani dan mengirimkan transaksi untuk Anda, sehingga operator mengendalikan *kapan* transaksi itu dikirim. Hash slot `N−1` menjadi publik di awal slot `N`, sehingga operator dengan latensi sangat rendah bisa memperkirakan lemparan yang akan didapat sebuah taruhan *jika* taruhan itu masuk di slot saat ini, lalu menunda pengiriman untuk menarik ulang. Skema ini menerima hal tersebut alih-alih berpura-pura sebaliknya (menghilangkannya akan memerlukan oracle VRF yang biaya per taruhannya melebihi nilai harapan kasino pada taruhan kecil). Yang membatasinya:

* Waktu masuknya transaksi tidak bisa dikendalikan sepenuhnya: jaringanlah, bukan pengirim, yang menentukan slot persis tempat sebuah transaksi masuk.
* Setiap input dipublikasikan, sehingga pola penundaan pengiriman dan setiap penyimpangan tingkat kemenangan agregat dari peluang yang tertera **dapat diukur oleh siapa pun** dari data publik. Penyalahgunaan yang sistematis tidak mungkin tetap tersembunyi.

<h2 id="verify-a-roll">
  Bagaimana cara memverifikasi lemparan Dice?
</h2>

Setiap permainan memancarkan event `DiceBetSettled` di transaksi taruhan itu sendiri, yang memuat semua yang Anda perlukan: `slothash`, `user`, `nonce`, `target_bps`, `direction`, `win_chance_bps`, `roll`, `multiplier_bps` dan `is_win`, beserta rincian penyelesaian lengkapnya. Untuk memverifikasi:

1. Buka transaksi taruhan di Solana explorer dan baca field event-nya (layar Dice di aplikasi menampilkan input keadilan sesi Anda, dan riwayat taruhan Anda menautkan ke transaksinya).
2. Hitung ulang `sha256("dice" ‖ slothash ‖ user ‖ nonce)`, ambil 16 byte pertama secara big-endian modulo 10,000, lalu bandingkan dengan `roll` di event.
3. Periksa keputusan menang/kalah (`roll < target` untuk Di bawah, `roll > target` untuk Di atas) serta pengalinya terhadap formula di atas.

Lihat [Verifikasi ronde](/id/docs/provably-fair/verify-a-round) untuk tips umum membaca data event dari explorer.

Untuk cara memainkan game ini, lihat [panduan game Dice](/id/docs/games/dice).
