> ## 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.

# IntentionKernel

> Lapisan eksekusi: set instruksi tertutup berisi operasi finansial, dieksekusi sebagai barisan tahap yang tetap di atas blok yang dikomit konsensus.

IntentionKernel adalah tempat blok yang dikomit berubah menjadi state trading. Kernel ini bukan mesin virtual serbaguna yang mengeksekusi program sembarang — set instruksinya adalah himpunan terenumerasi dari operasi finansial yang dibutuhkan venue derivatif, dan setiap operasi punya efek terdefinisi yang dipahami protokol.

Perbedaan itulah alasan jaringan ini bisa membuat klaim tentang trading sama sekali. Chain serbaguna bisa memberi tahu Anda bahwa transaksi sudah ditandatangani dan tidak gagal. Yang tidak bisa disampaikannya: bahwa transaksi itu adalah pembatalan order tertentu pada posisi tertentu di order book, karena makna panggilan itu buram baginya. Di sini, maknanya adalah instruksinya.

<h2 id="closed-world-execution">
  Eksekusi closed-world
</h2>

Menutup set instruksi hanyalah satu contoh dari langkah yang dilakukan kernel empat kali. Setiap kali, ruang tentang apa yang bisa terjadi dienumerasi lebih dulu, dan apa pun di luarnya ditolak alih-alih ditangani.

<div className="dg" data-dg="kernel-closure">
  <div className="dg-c" style={{aspectRatio:"720 / 384"}}>
    <svg className="dg-w" viewBox="0 0 720 384" aria-hidden="true" />

    <div className="dg-b dg--blue" style={{left:"0.0000%",top:"7.8125%",width:"20.8333%",height:"17.1875%"}}><span className="dg-t">Operasi</span></div>
    <div className="dg-b dg-plain dg-left" style={{left:"22.5000%",top:"7.8125%",width:"41.6667%",height:"17.1875%"}}><span className="dg-s">Payload yang bukan anggota himpunan terenumerasi — ditolak saat validasi, bukan saat runtime</span></div>
    <div className="dg-b dg-plain dg-left" style={{left:"65.8333%",top:"7.8125%",width:"34.1667%",height:"17.1875%"}}><span className="dg-s dg-ink--blue">Apa yang sebenarnya diminta</span></div>
    <div className="dg-b dg--sky" style={{left:"0.0000%",top:"28.1250%",width:"20.8333%",height:"17.1875%"}}><span className="dg-t">Kebenaran</span></div>
    <div className="dg-b dg-plain dg-left" style={{left:"22.5000%",top:"28.1250%",width:"41.6667%",height:"17.1875%"}}><span className="dg-s">Memperlakukan working set per blok sebagai otoritatif. Itu jurnal; sumbernya adalah state engine</span></div>
    <div className="dg-b dg-plain dg-left" style={{left:"65.8333%",top:"28.1250%",width:"34.1667%",height:"17.1875%"}}><span className="dg-s dg-ink--sky">Apa yang benar saat ini</span></div>
    <div className="dg-b dg--yellow" style={{left:"0.0000%",top:"48.4375%",width:"20.8333%",height:"17.1875%"}}><span className="dg-t">Input</span></div>
    <div className="dg-b dg-plain dg-left" style={{left:"22.5000%",top:"48.4375%",width:"41.6667%",height:"17.1875%"}}><span className="dg-s">Apa pun yang bisa berbeda antara dua mesin: jam dinding, entropi, floating point, urutan hash</span></div>
    <div className="dg-b dg-plain dg-left" style={{left:"65.8333%",top:"48.4375%",width:"34.1667%",height:"17.1875%"}}><span className="dg-s dg-ink--yellow">Apakah node lain mendapat byte yang sama</span></div>
    <div className="dg-b dg--green" style={{left:"0.0000%",top:"68.7500%",width:"20.8333%",height:"17.1875%"}}><span className="dg-t">Kausalitas</span></div>
    <div className="dg-b dg-plain dg-left" style={{left:"22.5000%",top:"68.7500%",width:"41.6667%",height:"17.1875%"}}><span className="dg-s">Perubahan state tanpa pemilik. Efek yang bukan milik transaksi pengguna mana pun lewat kanal sistem, bukan lewat pengecualian</span></div>
    <div className="dg-b dg-plain dg-left" style={{left:"65.8333%",top:"68.7500%",width:"34.1667%",height:"17.1875%"}}><span className="dg-s dg-ink--green">Mengapa perubahan ini terjadi</span></div>
    <div className="dg-free" style={{left:"0.0000%",top:"0.0000%",width:"20.8333%"}}><div className="dg-n">Ditutup</div></div>
    <div className="dg-free" style={{left:"22.5000%",top:"0.0000%",width:"41.6667%"}}><div className="dg-n">Ditolak</div></div>
    <div className="dg-free" style={{left:"65.8333%",top:"0.0000%",width:"34.1667%"}}><div className="dg-n">Sehingga ledger bisa menjawab</div></div>
    <div className="dg-free" style={{left:"0.0000%",top:"89.0625%",width:"100.0000%"}}><div className="dg-n">Empat penutupan, satu langkah: enumerasi ruangnya lebih dulu, lalu tolak apa pun yang jatuh di luarnya.</div></div>
  </div>
</div>

Ini bukan empat keunggulan yang berdiri sendiri. Masing-masing menopang yang berikutnya: menutup operasi membuat *makna* sebuah instruksi bisa dipulihkan; satu state otoritatif membuat kata "hasil" punya definisi; menutup input membuat hasil itu bisa direproduksi di mesin lain; dan menutup kausalitas membuat sebuah hasil bisa ditelusuri kembali ke permintaan yang menghasilkannya. Lepaskan satu saja dan rantai pertanggungjawaban putus tepat di mata rantai itu.

Apa yang keempatnya beli bersama layak diberi nama, karena bursa tradisional membeli hal yang sama dengan biaya jauh lebih besar. Jejak audit sebuah bursa dirakit **di samping** sistem perdagangannya lalu dilaporkan ke hilir — itulah sebabnya jejak itu bisa berbeda dari sistemnya, sebabnya rekonsiliasi menjadi pekerjaan tetap, dan sebabnya sinkronisasi jam antarbursa menjadi persyaratan regulasi, bukan detail implementasi. Di sini tidak ada catatan kedua untuk direkonsiliasi. Jejak auditnya adalah eksekusi itu sendiri.

Sisa halaman ini adalah keempat penutupan itu secara rinci.

<h2 id="the-instruction-set">
  Set instruksi
</h2>

Semua yang bisa dilakukan peserta atau validator adalah salah satu dari himpunan tetap operasi bertipe:

| Grup                      | Operasi                                                                                                                                                                                    |
| ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Order**                 | Memasang, membatalkan, mengganti, dan mengubah — mencakup bentuk limit, market, dan kondisional, dengan masa berlaku order, reduce-only, dan struktur take-profit / stop-loss yang tertaut |
| **Konfigurasi akun**      | Pembuatan subakun, pemilihan leverage, mode margin, mode posisi                                                                                                                            |
| **Transfer**              | Antarsubakun, antarakun, serta masuk dan keluar lewat [bridge](/id/protocol/architecture/bridge)                                                                                           |
| **Otorisasi agen**        | Memberi dan mencabut otorisasi agen yang bertransaksi atas nama akun                                                                                                                       |
| **Operasi vault**         | Pembuatan, deposit, penarikan, konfigurasi                                                                                                                                                 |
| **Konfigurasi sistem**    | Pencatatan pasar, konfigurasi biaya, tier leverage, parameter risiko — diotorisasi oleh tata kelola                                                                                        |
| **Diterbitkan validator** | Pembaruan harga tersertifikasi dan rekonfigurasi                                                                                                                                           |

Transaksi yang muatannya bukan anggota himpunan ini ditolak pada tahap validasi. Himpunan ini hanya berubah lewat upgrade protokol, tidak pernah dengan men-deploy sesuatu yang baru.

<h2 id="executing-a-block">
  Mengeksekusi blok
</h2>

Eksekusi adalah barisan tahap yang tetap. Urutannya bukan detail implementasi — urutan itulah yang menentukan apakah likuidasi melihat harga yang memicunya, dan apakah pembatalan mendahului order agresif yang masuk.

<div className="dg" data-dg="kernel-stages">
  <div className="dg-c" style={{aspectRatio:"720 / 434"}}>
    <svg className="dg-w" viewBox="0 0 720 434" aria-hidden="true">
      <path className="dg-wire" d="M 150.00 69.33 L 150.00 80.93" />

      <path className="dg-head" d="M 150.00 87.33 L 145.60 80.93 L 154.40 80.93 Z" />

      <path className="dg-wire" d="M 150.00 130.67 L 150.00 142.27" />

      <path className="dg-head" d="M 150.00 148.67 L 145.60 142.27 L 154.40 142.27 Z" />

      <path className="dg-wire" d="M 150.00 192.00 L 150.00 203.60" />

      <path className="dg-head" d="M 150.00 210.00 L 145.60 203.60 L 154.40 203.60 Z" />

      <path className="dg-wire" d="M 150.00 253.33 L 150.00 264.93" />

      <path className="dg-head" d="M 150.00 271.33 L 145.60 264.93 L 154.40 264.93 Z" />

      <path className="dg-wire" d="M 150.00 314.67 L 150.00 326.27" />

      <path className="dg-head" d="M 150.00 332.67 L 145.60 326.27 L 154.40 326.27 Z" />
    </svg>

    <div className="dg-b dg--sky" style={{left:"0.0000%",top:"6.9124%",width:"41.6667%",height:"8.1413%"}}><span className="dg-t">Harga</span><span className="dg-s">tetapkan mark untuk blok</span></div>
    <div className="dg-b dg--sky" style={{left:"0.0000%",top:"21.0445%",width:"41.6667%",height:"8.1413%"}}><span className="dg-t">Muat</span><span className="dg-s">serap akun dan order blok</span></div>
    <div className="dg-b dg--sky" style={{left:"0.0000%",top:"35.1767%",width:"41.6667%",height:"8.1413%"}}><span className="dg-t">Funding</span><span className="dg-s">selesaikan aliran funding</span></div>
    <div className="dg-b dg--orange" style={{left:"0.0000%",top:"49.3088%",width:"41.6667%",height:"8.1413%"}}><span className="dg-t">Risiko</span><span className="dg-s">deleveraging vault → likuidasi → ADL</span></div>
    <div className="dg-b dg--blue" style={{left:"0.0000%",top:"63.4409%",width:"41.6667%",height:"8.1413%"}}><span className="dg-t">Match</span><span className="dg-s">pra-match → matching → pasca-match</span></div>
    <div className="dg-b dg--green" style={{left:"0.0000%",top:"77.5730%",width:"41.6667%",height:"8.1413%"}}><span className="dg-t">Finalisasi</span><span className="dg-s">kumpulkan output, buang state mati</span></div>
    <div className="dg-b dg-plain dg-left" style={{left:"45.8333%",top:"6.9124%",width:"54.1667%",height:"8.1413%"}}><span className="dg-s">Setiap tahap di hilir menalar satu harga per instrumen, bukan harga yang bergerak</span></div>
    <div className="dg-b dg-plain dg-left" style={{left:"45.8333%",top:"35.1767%",width:"54.1667%",height:"8.1413%"}}><span className="dg-s">Diselesaikan terhadap posisi saat dimuat, bukan posisi akhirnya</span></div>
    <div className="dg-b dg-plain dg-left" style={{left:"45.8333%",top:"49.3088%",width:"54.1667%",height:"8.1413%"}}><span className="dg-s">Aliran paksa diselesaikan sebelum aliran diskresioner baru diterima</span></div>
    <div className="dg-b dg-plain dg-left" style={{left:"45.8333%",top:"63.4409%",width:"54.1667%",height:"8.1413%"}}><span className="dg-s">Berjalan setelah Risiko adalah alasan likuidasi tidak bisa didahului order di blok yang sama</span></div>
    <div className="dg-b dg-plain dg-left" style={{left:"45.8333%",top:"77.5730%",width:"54.1667%",height:"8.1413%"}}><span className="dg-s">Posisi bernilai nol dan akun kosong tidak bertahan</span></div>
    <div className="dg-free" style={{left:"0.0000%",top:"0.0000%",width:"41.6667%"}}><div className="dg-n">Satu blok, enam tahap</div></div>
    <div className="dg-free" style={{left:"45.8333%",top:"0.0000%",width:"54.1667%"}}><div className="dg-n">Yang ditentukan penempatannya</div></div>
    <div className="dg-free" style={{left:"0.0000%",top:"89.4009%",width:"100.0000%"}}><div className="dg-n">Order kondisional dipindai dan didorong maju di dalam barisan ini, sehingga pemicu dari mark blok ini berlaku di blok ini, bukan di blok berikutnya.</div></div>
  </div>
</div>

**Harga** berjalan pertama dan menetapkan mark yang akan dipakai sisa blok, sehingga setiap tahap di hilir menalar satu harga per instrumen alih-alih harga yang bergerak. **Muat** menyerap akun dan order milik blok tersebut. **Funding** menyelesaikan funding terhadap posisi sebagaimana dimuat. **Risiko** menjalankan tiga fase berurutan — deleveraging vault, lalu likuidasi, lalu auto-deleveraging — agar aliran paksa diselesaikan sebelum aliran diskresioner baru diterima. **Match** kemudian menjalankan tiga fasenya sendiri, menghasilkan eksekusi. **Finalisasi** mengumpulkan apa yang berubah dan membuang state yang tidak perlu ada lagi, seperti posisi bernilai nol dan akun yang telah kosong.

Order kondisional dipindai dan didorong maju melalui siklus hidupnya di dalam barisan ini, sehingga pemicu yang terpicu oleh mark blok ini berlaku di blok ini juga, bukan di blok berikutnya.

<Note>
  Likuidasi yang berjalan sebelum matching adalah alasan likuidasi tidak bisa didahului order di blok yang sama. Aliran likuidasi sudah terselesaikan pada saat order diskresioner dicocokkan.
</Note>

<h2 id="two-kinds-of-state">
  Dua jenis state
</h2>

Kernel menjaga pemisahan tegas antara apa yang persisten dan apa yang sekadar coretan kerja.

<div className="dg" data-dg="kernel-state">
  <div className="dg-c" style={{aspectRatio:"720 / 300"}}>
    <svg className="dg-w" viewBox="0 0 720 300" aria-hidden="true">
      <path className="dg-wire dg--blue" d="M 195.00 104.00 L 254.60 104.00" />

      <path className="dg-head dg--blue" d="M 261.00 104.00 L 254.60 108.40 L 254.60 99.60 Z" />

      <path className="dg-wire dg--yellow" d="M 261.00 152.00 L 201.40 152.00" />

      <path className="dg-head dg--yellow" d="M 195.00 152.00 L 201.40 147.60 L 201.40 156.40 Z" />

      <path className="dg-wire dg--green" d="M 449.00 128.00 L 498.60 128.00" />

      <path className="dg-head dg--green" d="M 505.00 128.00 L 498.60 132.40 L 498.60 123.60 Z" />

      <path className="dg-wire dg--green dg-dash" d="M 615.00 177.00 L 615.00 232.00 L 95.00 232.00 L 95.00 183.40" />

      <path className="dg-head dg--green" d="M 95.00 177.00 L 99.40 183.40 L 90.60 183.40 Z" />
    </svg>

    <div className="dg-band" style={{left:"34.7222%",top:"18.6667%",width:"29.1667%",height:"46.6667%"}}><span className="dg-cap">selama blok dieksekusi</span></div>
    <div className="dg-b dg--blue" style={{left:"0.0000%",top:"26.6667%",width:"26.3889%",height:"30.6667%"}}><span className="dg-t">State engine</span><span className="dg-s">pasar · akun · order book · posisi · lembaga kliring</span><span className="dg-n">hidup lintas blok</span></div>
    <div className="dg-b dg--yellow dg-dashed" style={{left:"36.9444%",top:"26.6667%",width:"24.7222%",height:"30.6667%"}}><span className="dg-t">Working set blok</span><span className="dg-s">mark · akun tersentuh · eksekusi · output tertahan</span><span className="dg-n">hidup satu blok saja</span></div>
    <div className="dg-b dg--green" style={{left:"70.8333%",top:"26.6667%",width:"29.1667%",height:"30.6667%"}}><span className="dg-t">State chain terkomit</span><span className="dg-s">berversi · terautentikasi</span><span className="dg-n">otoritasnya</span></div>
    <div className="dg-free" style={{left:"0.0000%",top:"87.3333%",width:"100.0000%"}}><div className="dg-n">Pelacakan perubahan mudah disalahartikan sebagai otoritas. Apa yang berubah selama blok menyusun output deterministik — bukan tempat state berada.</div></div>
    <div className="dg-lbl" style={{left:"49.3056%",top:"77.3333%"}}>otoritas tempat engine dibangun ulang</div>
    <div className="dg-lbl" style={{left:"31.6667%",top:"30.0000%"}}>baca</div>
    <div className="dg-lbl" style={{left:"31.6667%",top:"55.3333%"}}>terapkan</div>
    <div className="dg-lbl" style={{left:"66.2500%",top:"37.3333%"}}>materialisasi</div>
  </div>
</div>

**State engine** hidup lintas blok: metadata pasar, akun, order book, state instrumen, state lembaga kliring. Inilah jawaban atas “apa yang benar saat ini”.

**Working set per blok** hanya ada selama blok dieksekusi: input blok, mark yang ditetapkan di awal, akun dan order yang tersentuh, serta output yang sedang dirakit. Ini jurnal, bukan sumber kebenaran.

Perbedaan ini penting karena pelacakan perubahan mudah disalahartikan sebagai otoritas. Apa yang berubah selama blok berjalan dipakai untuk menyusun output deterministik — bukan tempat state berada. Membalik hal ini menghasilkan sistem yang jawabannya bergantung pada cara Anda bertanya.

<h2 id="why-the-result-is-reproducible">
  Mengapa hasilnya dapat direproduksi
</h2>

Determinisme di sini ditegakkan, bukan diharapkan. Setiap node jujur yang mengeksekusi blok yang sama terhadap state sebelumnya yang sama menghasilkan hasil yang sama bit per bit, karena tidak ada apa pun di jalur eksekusi yang bisa membaca sesuatu yang berbeda antarnode:

* **Aritmetika fixed-point di sepanjang jalur.** Matematika penyelesaian berjalan pada fixed-point integer dengan semantik pembulatan yang eksplisit — pembulatan ke atas pada eksponen negatif di margin, floor dan ceiling pada biaya. Tidak ada floating point di jalur penyelesaian, karena selisih pembulatan antara dua mesin adalah fork.
* **Tanpa jam dinding.** Pengurutan di dalam blok memakai posisi kanonis yang dikomit konsensus dan timestamp blok, tidak pernah waktu lokal.
* **Tanpa keacakan runtime.** Apa pun yang membutuhkan keacakan menurunkannya secara deterministik dari state on-chain.
* **Iterasi deterministik.** Setiap koleksi yang urutan iterasinya teramati di output diurutkan, bukan diacak oleh hash.

Satu konsekuensi layak disebut: karena “waktu” di dalam blok adalah posisi intrablok yang dikomit, tidak ada keunggulan kolokasi sub-milidetik *di dalam* satu blok. Digabung dengan jadwal prioritas — yang menjalankan pembatalan sebelum penempatan agresif — ini adalah pertahanan struktural terhadap kuotasi terpasang yang disambar order yang tiba di blok yang sama.

<h2 id="risk-formulas-are-pure">
  Formula risiko bersifat murni
</h2>

Formula yang menentukan kebutuhan margin, harga likuidasi, pemilihan sasaran deleveraging, biaya, dan batas open interest diimplementasikan sebagai **fungsi murni tanpa state**. Fungsi-fungsi itu menerima nilai dan mengembalikan nilai; tidak membaca maupun mengubah state ledger.

Perubahan state digerakkan semata-mata oleh [lembaga kliring](/id/protocol/architecture/clearinghouse), yang memanggil fungsi-fungsi tersebut dan menerapkan hasilnya. Modul yang memegang state — akun, posisi, order book — menyimpan data dan menyediakan mutator, tetapi tidak menggerakkan alur bisnis sendiri.

Ini batas yang disengaja. Artinya perhitungan margin bisa diperiksa terpisah terhadap tabel input dan output, dan artinya hanya ada satu jalur kode yang bisa mengubah saldo siapa pun.

## Output

Eksekusi menghasilkan tulisan state dan event, masing-masing terikat pada transaksi penyebabnya, ditambah satu kanal untuk efek tingkat sistem yang bukan milik transaksi pengguna mana pun — funding, perpindahan dana asuransi, penghitung blok. Semua itu menjadi output transaksi yang dikomit [lapisan state](/id/protocol/architecture/state/model) dan disajikan [indexer](/id/protocol/architecture/indexer).

Tidak ada yang terjadi di dalam kernel yang tak terlihat di hilir. Kalau sesuatu mengubah state, perubahan itu ada di output seseorang atau di kanal sistem.

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

<CardGroup cols={2}>
  <Card title="Matching" href="/id/protocol/architecture/matching">
    Order book, prioritas harga-waktu, dan bagaimana masa berlaku order serta pencegahan self-trade diselesaikan.
  </Card>

  <Card title="Lembaga Kliring" href="/id/protocol/architecture/clearinghouse">
    Satu-satunya jalur yang mengubah saldo, posisi, dan margin.
  </Card>

  <Card title="Model state" href="/id/protocol/architecture/state/model">
    Apa yang terjadi pada output kernel setelah dikomit.
  </Card>

  <Card title="IntentionBFT" href="/id/protocol/architecture/intention-bft">
    Dari mana urutan dan harga itu berasal.
  </Card>
</CardGroup>
