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

# Oracle

> Bagaimana harga indeks dihasilkan dari data venue, disertifikasi validator, dan dikomit di dalam blok yang mengonsumsinya.

Intention tidak memakai komite oracle eksternal. **Set validator itulah oracle-nya.** Setiap validator menghasilkan pandangannya sendiri atas harga setiap instrumen lalu menandatanganinya. Jaringan kemudian menyertifikasi hasilnya di peristiwa konsensus yang sama dengan peristiwa yang mengomit transaksi yang diselesaikan terhadap harga itu.

Ada dua langkah berbeda, dan keduanya menjawab pertanyaan yang berbeda. Agregasi bertanya *berapa nilai instrumen ini* dan terjadi per validator, di luar jalur konsensus. Sertifikasi bertanya *berapa nilainya menurut kesepakatan jaringan pada ronde ini* dan terjadi di dalam konsensus.

<div className="dg" data-dg="oracle-path">
  <div className="dg-c" style={{aspectRatio:"720 / 316"}}>
    <svg className="dg-w" viewBox="0 0 720 316" aria-hidden="true">
      <path className="dg-wire" d="M 176.00 90.00 L 176.00 101.60" />

      <path className="dg-head" d="M 176.00 108.00 L 171.60 101.60 L 180.40 101.60 Z" />

      <path className="dg-wire" d="M 176.00 152.00 L 176.00 163.60" />

      <path className="dg-head" d="M 176.00 170.00 L 171.60 163.60 L 180.40 163.60 Z" />

      <path className="dg-wire" d="M 550.00 90.00 L 550.00 101.60" />

      <path className="dg-head" d="M 550.00 108.00 L 545.60 101.60 L 554.40 101.60 Z" />

      <path className="dg-wire" d="M 550.00 152.00 L 550.00 163.60" />

      <path className="dg-head" d="M 550.00 170.00 L 545.60 163.60 L 554.40 163.60 Z" />

      <path className="dg-wire dg--blue" d="M 341.00 130.00 L 384.60 130.00" />

      <path className="dg-head dg--blue" d="M 391.00 130.00 L 384.60 134.40 L 384.60 125.60 Z" />

      <path className="dg-wire dg--green" d="M 550.00 222.00 L 550.00 235.60" />

      <path className="dg-head dg--green" d="M 550.00 242.00 L 545.60 235.60 L 554.40 235.60 Z" />
    </svg>

    <div className="dg-band" style={{left:"0.0000%",top:"8.2278%",width:"48.8889%",height:"62.0253%"}}><span className="dg-cap">Per validator — di luar jalur konsensus</span></div>
    <div className="dg-band" style={{left:"52.7778%",top:"8.2278%",width:"47.2222%",height:"62.0253%"}}><span className="dg-cap">Dalam konsensus</span></div>
    <div className="dg-b" style={{left:"2.2222%",top:"15.8228%",width:"44.4444%",height:"11.3924%"}}><span className="dg-t">Venue trading</span></div>
    <div className="dg-b dg--sky" style={{left:"2.2222%",top:"35.4430%",width:"44.4444%",height:"11.3924%"}}><span className="dg-t">Sidecar oracle</span><span className="dg-s">satu per validator</span></div>
    <div className="dg-b dg--blue" style={{left:"2.2222%",top:"55.0633%",width:"44.4444%",height:"11.3924%"}}><span className="dg-t">Validasi dan tanda tangan validator</span></div>
    <div className="dg-b dg--blue" style={{left:"55.0000%",top:"15.8228%",width:"42.7778%",height:"11.3924%"}}><span className="dg-t">Gossip antarvalidator</span></div>
    <div className="dg-b dg--green" style={{left:"55.0000%",top:"35.4430%",width:"42.7778%",height:"11.3924%"}}><span className="dg-t">Sertifikasi per epoch dan ronde</span></div>
    <div className="dg-b dg--green" style={{left:"55.0000%",top:"55.0633%",width:"42.7778%",height:"11.3924%"}}><span className="dg-t">Dibawa di dalam blok</span></div>
    <div className="dg-b dg--green dg-left" style={{left:"0.0000%",top:"77.8481%",width:"100.0000%",height:"17.7215%"}}><span className="dg-t">Kernel — harga mark · margin · likuidasi · funding</span><span className="dg-s">menyelesaikan terhadap harga dari peristiwa konsensus yang sama</span></div>
  </div>
</div>

<h2 id="producing-an-index-price">
  Menghasilkan harga indeks
</h2>

Setiap validator menjalankan sidecar oracle-nya sendiri, yang mengumpulkan data dari beberapa venue trading dan meringkasnya menjadi satu harga indeks per instrumen. Peringkasan itu sengaja bukan rata-rata biasa — rata-rata terlalu mudah digeser oleh satu sumber yang buruk.

<div className="dg" data-dg="oracle-aggregate">
  <div className="dg-c" style={{aspectRatio:"720 / 236"}}>
    <svg className="dg-w" viewBox="0 0 720 236" aria-hidden="true">
      <path className="dg-wire" d="M 100.67 84.00 L 114.27 84.00" />

      <path className="dg-head" d="M 120.67 84.00 L 114.27 88.40 L 114.27 79.60 Z" />

      <path className="dg-wire" d="M 225.33 84.00 L 238.93 84.00" />

      <path className="dg-head" d="M 245.33 84.00 L 238.93 88.40 L 238.93 79.60 Z" />

      <path className="dg-wire" d="M 350.00 84.00 L 363.60 84.00" />

      <path className="dg-head" d="M 370.00 84.00 L 363.60 88.40 L 363.60 79.60 Z" />

      <path className="dg-wire" d="M 474.67 84.00 L 488.27 84.00" />

      <path className="dg-head" d="M 494.67 84.00 L 488.27 88.40 L 488.27 79.60 Z" />

      <path className="dg-wire" d="M 599.33 84.00 L 612.93 84.00" />

      <path className="dg-head" d="M 619.33 84.00 L 612.93 88.40 L 612.93 79.60 Z" />
    </svg>

    <div className="dg-b dg--sky" style={{left:"0.0000%",top:"12.7119%",width:"13.4259%",height:"45.7627%"}}><span className="dg-t">Saring</span><span className="dg-s">nilai non-finit dan cacat</span></div>
    <div className="dg-b dg--sky" style={{left:"17.3148%",top:"12.7119%",width:"13.4259%",height:"45.7627%"}}><span className="dg-t">Median</span><span className="dg-s">lintas sumber</span></div>
    <div className="dg-b dg--sky" style={{left:"34.6296%",top:"12.7119%",width:"13.4259%",height:"45.7627%"}}><span className="dg-t">Jepit</span><span className="dg-s">tiap sumber ke median ± pita</span></div>
    <div className="dg-b dg--sky" style={{left:"51.9444%",top:"12.7119%",width:"13.4259%",height:"45.7627%"}}><span className="dg-t">Bobot</span><span className="dg-s">spread dan stabilitas</span></div>
    <div className="dg-b dg--sky" style={{left:"69.2593%",top:"12.7119%",width:"13.4259%",height:"45.7627%"}}><span className="dg-t">Batasi</span><span className="dg-s">tier venue</span></div>
    <div className="dg-b dg--green" style={{left:"86.5741%",top:"12.7119%",width:"13.4259%",height:"45.7627%"}}><span className="dg-t">Harga indeks</span></div>
    <div className="dg-b dg-dashed dg-left" style={{left:"0.0000%",top:"69.4915%",width:"100.0000%",height:"26.2712%"}}><span className="dg-t">Urutan itulah desainnya</span><span className="dg-s">Penyaringan didahulukan karena satu nilai tak hingga yang lolos ke median atau jumlah terbobot mencemari seluruh hasilnya. Menjepit alih-alih membuang tetap menghitung setiap sumber sambil membatasi seberapa jauh satu sumber bisa menarik.</span></div>
    <div className="dg-free" style={{left:"0.0000%",top:"0.0000%",width:"100.0000%"}}><div className="dg-n">Bukan rata-rata biasa — rata-rata terlalu mudah digeser satu sumber buruk</div></div>
  </div>
</div>

**Saring.** Nilai non-finit dan yang bentuknya rusak dibuang sebelum bisa menyentuh apa pun di hilir. Urutan ini penting: satu nilai tak hingga yang lolos ke dalam median atau jumlah terbobot mencemari seluruh hasilnya.

**Jepit ke median.** Median diambil lintas sumber, lalu setiap sumber dijepit agar berada dalam pita di sekitarnya. Pitanya ditetapkan per instrumen, paling ketat di tempat pasarnya paling dalam:

| Kelas instrumen         | Pita di sekitar median |
| ----------------------- | ---------------------- |
| Kripto utama (BTC, ETH) | 1%                     |
| Stablecoin              | 0,5%                   |
| Lainnya                 | 3%                     |

Sumber yang memasang kuotasi di luar pitanya tidak dibuang — sumber itu ditarik ke tepi pita. Perbedaan itu penting: membuang memungkinkan penyerang mengecilkan sampel, sementara menjepit tetap menghitung setiap sumber tetapi membatasi seberapa jauh salah satunya bisa menarik hasil.

**Bobot menurut kualitas, lalu batasi.** Sumber yang telah dijepit digabungkan lewat rata-rata terbobot alih-alih setara. Bobot naik seiring kualitas kuotasi — spread yang lebih ketat bernilai lebih — dan seiring stabilitas, yang diukur dengan membandingkan volume terkini terhadap rata-rata harian jangka panjang, sehingga venue dengan lonjakan volume yang tidak lazim tidak mendapat pengaruh darinya.

Bobot kemudian dibatasi menurut tier sumber, sehingga tidak ada satu venue pun yang bisa mendominasi hasil, sebagus apa pun kuotasinya terlihat:

| Tier         | Batas bobot |
| ------------ | ----------- |
| Venue tier 1 | 0,45        |
| Venue tier 2 | 0,35        |

Instrumen dengan kuotasi silang dikonversi ke mata uang kuotasi yang sama sebelum semua ini, sehingga median diambil atas angka yang sebanding alih-alih denominasi campuran.

<Note>
  Setiap konstanta di sini adalah keputusan kebijakan, bukan konstanta alam. Pita deviasi, penetapan tier, dan batas bobot adalah konfigurasi, dan itulah tuas yang disetel ketika perilaku venue berubah atau sumber baru ditambahkan.
</Note>

<h2 id="certifying-it">
  Menyertifikasinya
</h2>

Harga indeks yang dihasilkan sidecar adalah pendapat satu validator. Proses mengubahnya menjadi sesuatu yang bisa dipakai jaringan untuk menyelesaikan transaksi berlangsung di dalam konsensus.

Validator menarik harga dari sidecar-nya sendiri dan **memvalidasinya sebelum menandatangani** — termasuk kesegaran terhadap ambang batas yang dikonfigurasi, sehingga sidecar yang macet tidak menghasilkan kiriman sama sekali alih-alih menghasilkan kiriman basi. Validator lalu menandatangani data harga itu dan menyebarkannya ke validator lain sebagai pesan jaringan konsensus.

Harga tersertifikasi dirakit per epoch dan ronde lalu dibawa di dalam usulan blok. Tanda tangan yang mengomit transaksi di blok itu karenanya juga mengomit harga yang menjadi dasar penyelesaian transaksi tersebut — tidak ada transaksi oracle terpisah, dan tidak ada jendela antara harga diterbitkan dan harga dipakai.

**Validator tidak bisa mengusulkan blok tanpa observasi harga yang valid untuk ronde itu.** Ketersediaan harga adalah prasyarat produksi blok, bukan input yang diharap-harap ditemukan oleh eksekusi.

<h2 id="index-price-and-mark-price">
  Harga indeks dan harga mark
</h2>

Harga yang disertifikasi adalah **harga indeks** — pandangan jaringan atas pasar eksternal, bukan harga tempat transaksi dieksekusi.

[Kernel](/id/protocol/architecture/kernel) menurunkan **harga mark** darinya, dihaluskan dan dibatasi agar dislokasi singkat pada indeks tidak merembet menjadi likuidasi. Harga mark itulah yang sebenarnya dipakai margin, likuidasi, dan funding. Lihat [Harga mark](/id/trading/mark-price) dan [Harga indeks](/id/trading/index-price) untuk sudut pandang sisi trading.

<h2 id="what-this-does-and-does-not-guarantee">
  Apa yang dijamin dan tidak dijamin oleh ini
</h2>

Ini menjamin bahwa harga yang menjadi dasar penyelesaian transaksi memang telah disertifikasi kuorum validator pada ronde yang mengomit transaksi itu, dan bahwa tidak ada jalur eksekusi yang bisa membaca harga lain.

Ini tidak menjamin harganya benar. Jika venue yang menjadi bahan indeks memang salah — lewat pergerakan terkoordinasi di beberapa venue sekaligus, atau dislokasi seluruh pasar — penjepitan dan pembobotan membatasi seberapa jauh satu sumber bisa mendorong hasil, tetapi keduanya tidak bisa menciptakan informasi yang tidak dimiliki pasar.

<Warning>
  Harga adalah input eksternal paling berkonsekuensi bagi sistem trading. Ketahanan terhadap manipulasi di sini adalah soal derajat, bukan properti biner. Lihat [Pengungkapan risiko](/id/protocol/security/risks) untuk apa yang masih terpapar.
</Warning>

<h2 id="where-to-go-next">
  Ke mana selanjutnya
</h2>

<CardGroup cols={2}>
  <Card title="IntentionBFT" href="/id/protocol/architecture/intention-bft">
    Bagaimana sertifikasi diikat ke dalam tanda tangan yang sama dengan yang mengomit blok.
  </Card>

  <Card title="Lembaga Kliring" href="/id/protocol/architecture/clearinghouse">
    Apa yang dilakukan margin, likuidasi, dan funding dengan harga itu.
  </Card>

  <Card title="Harga mark" href="/id/trading/mark-price">
    Bagaimana indeks menjadi angka yang menggerakkan posisi.
  </Card>

  <Card title="Pengungkapan risiko" href="/id/protocol/security/risks">
    Risiko harga yang masih tersisa, dan berapa biayanya.
  </Card>
</CardGroup>
