> For the complete documentation index, see [llms.txt](https://docs.rome.builders/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.rome.builders/id/memulai/key-concepts.md).

# Konsep Kunci

Istilah dan konsep esensial untuk membangun di atas Rome Protocol.

## Konsep Solana

**Program** — Padanan smart contract di Solana. Program adalah eksekutabel tanpa status yang di-deploy on-chain. Rome EVM itu sendiri adalah sebuah program Solana.

**Akun** — Semua state di Solana berada di akun. Setiap akun memiliki pemilik (program), saldo (lamports), dan data. Tidak seperti Ethereum, kode dan state disimpan di akun yang terpisah.

**PDA (Program Derived Address)** — Alamat deterministik yang diturunkan dari seed dan program ID. PDA memungkinkan program untuk "memiliki" akun tanpa kunci privat. Rome menggunakan PDA untuk memetakan alamat Ethereum ke akun Solana.

**CPI (Cross-Program Invocation)** — Satu program Solana memanggil program lain dalam transaksi yang sama. Ini adalah cara kontrak Rome EVM berinteraksi dengan Jupiter, Kamino, SPL Token, dan program Solana lainnya.

**Token SPL** — Program token standar Solana. Setara dengan ERC-20 di Ethereum. Semua token fungible di Solana (USDC, SOL, dll.) adalah token SPL.

**Token-2022** — Program token SPL generasi berikutnya dengan ekstensi seperti Transfer Hooks, Confidential Transfers, dan Permanent Delegates.

**Transfer Hook** — Ekstensi Token-2022 yang memanggil sebuah program pada setiap `transfer_checked` panggilan.

**ATA (Associated Token Account)** — Akun token deterministik untuk pasangan wallet + mint tertentu. Setiap pengguna memiliki satu ATA per token yang mereka pegang.

**Lamport** — Satuan terkecil SOL. 1 SOL = 1.000.000.000 lamport (10^9).

**Unit Komputasi (CU)** — Padanan gas Ethereum di Solana. Setiap transaksi memiliki anggaran komputasi (default \~200K CU, maks \~1.4M CU). Operasi mengonsumsi CU.

## Konsep Rome

**Program Rome EVM** — Program Solana yang berisi interpreter bytecode EVM. Di-deploy pada program ID tertentu untuk setiap lingkungan.

**Chain ID** — Setiap aplikasi di Rome mendapatkan chain ID EVM-nya sendiri. Ini menciptakan lingkungan EVM terisolasi yang berbagi state Solana yang sama di bawahnya.

**Eksekusi Atomik (VmAt)** — Transaksi EVM yang dieksekusi sepenuhnya dalam satu transaksi Solana. Digunakan untuk sebagian besar operasi.

**Eksekusi Iteratif (VmIt)** — Transaksi EVM yang dibagi ke beberapa transaksi Solana, di mana setiap langkah mengemas sebanyak mungkin opcode yang muat dalam anggaran komputasi satu transaksi Solana (adaptif, bukan jumlah tetap). Digunakan untuk operasi yang intensif komputasi seperti BN254 pairing.

**Akun Penampung** — Buffer on-chain yang menyimpan transaksi EVM besar (hingga 80 KB) yang melebihi batas ukuran transaksi Solana 1.232 byte. Dikelola secara transparan oleh SDK.

**StateHolder** — Akun on-chain yang menyimpan state VM terserialisasi di antara langkah-langkah eksekusi iteratif.

**Proxy Rome** — Server JSON-RPC (port 9090) yang menerjemahkan panggilan API Ethereum menjadi transaksi Solana. MetaMask dan Hardhat Anda terhubung ke sini.

**Hercules** — Pengindeks blok yang memantau event Rome EVM di Solana dan menghasilkan data blok yang kompatibel dengan Ethereum.

**Pembayar** — Keypair Solana yang menandatangani dan membayar transaksi Solana atas nama pengguna EVM. Dikelola oleh Proxy melalui kumpulan payer.

## Konsep Token

**SPL\_ERC20 / SPL\_ERC20\_cached** — Kontrak pembungkus ERC-20 yang merepresentasikan token SPL di dalam Rome EVM. Pembungkus membaca saldo langsung dari akun token SPL dasarnya — tanpa state terpisah. Saat ini factory men-deploy varian cached.

**ERC20SPLFactory** — Kontrak factory yang men-deploy pembungkus untuk token SPL apa pun.

**Registri** — Pembungkus canonical, token gas, dan wiring bridge dikurasi off-chain di [rome-protocol/registry](https://github.com/rome-protocol/rome-registry); tidak ada kontrak registri token on-chain. Ini menjaga setiap aset dipetakan ke satu mint SPL canonical.

## Precompile

**Precompile Ethereum Standar** — ecrecover (0x01), SHA-256 (0x02), RIPEMD-160 (0x03), identity (0x04), modexp (0x05), BN254 ecAdd/ecMul/ecPairing (0x06-0x08), Blake2f (0x09).

**Precompile Sistem** (`0xFF...07`) — Penurunan PDA dan konversi base58 dari Solidity.

**Precompile CpiProgram** (`0xFF...08`) — Panggilan lintas program (`invoke` / `invoke_signed`) ditambah pintasan pembacaan lintas-state.

**Precompile HelperProgram** (`0xFF...09`) — pembuatan ATA/PDA, transfer SPL, dan konversi gas↔lamports; antarmuka utama untuk operasi SPL yang ditandatangani user-PDA.

**Precompile Penarikan** (`0x42...16`) — Menarik SOL atau token SPL dari EVM kembali ke Solana.

Keluarga jalur cached (`0xff…04/05/06/0b`) meniru ini untuk pembacaan yang efisien CU; sebuah kontrak menggunakan satu jalur secara konsisten.

## Jenis Transaksi

**RheaTx** — Satu transaksi EVM pada satu rollup. Tipe yang paling umum.

**RemusTx** — Beberapa transaksi EVM lintas rollup yang berbeda, dieksekusi secara atomik. Jika satu transaksi gagal, semuanya di-revert.

**RomulusTx** — Transaksi EVM gabungan + instruksi Solana native dalam satu operasi atomik. Tipe paling kuat — memadukan Solidity dan Solana dalam satu transaksi.

## Selanjutnya

* [Model Eksekusi](/id/konsep-inti/execution-model.md) — pembahasan mendalam tentang bagaimana transaksi EVM dieksekusi di Solana
* [Interoperabilitas Token](/id/konsep-inti/token-interop.md) — bagaimana ERC-20 dan token SPL berinteraksi
* [Kendala](/id/konsep-inti/constraints.md) — batasan dan limit penting


---

# 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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.rome.builders/id/memulai/key-concepts.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
