# Konsep Utama

Terminologi dan konsep esensial untuk membangun di atas Rome Protocol.

## Konsep Solana

**Program** — Setara dengan smart contract di Solana. Program adalah executable stateless yang di-deploy on-chain. Rome EVM sendiri adalah sebuah program Solana.

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

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

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

**SPL Token** — 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 program pada setiap transfer token. Rome memungkinkan smart contract EVM bertindak sebagai transfer hook.

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

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

**Compute Units (CU)** — Setara dengan gas Ethereum di Solana. Setiap transaksi memiliki budget 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 per lingkungan.

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

**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, mengeksekusi \~500 opcode per langkah. Digunakan untuk operasi intensif komputasi seperti pairing BN254.

**Akun Holder** — Buffer on-chain yang menyimpan transaksi EVM berukuran 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 eksekusi iteratif.

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

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

**Rhea** — Bridge mempool yang meneruskan transaksi dari OP-Geth ke Solana (digunakan hanya dalam mode OP-Geth).

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

## Konsep Token

**ERC20SPL** — Kontrak pembungkus ERC-20 yang merepresentasikan token SPL di dalam Rome EVM. Wrapper membaca saldo langsung dari akun token SPL yang mendasarinya — tanpa state terpisah.

**ERC20SPLFactory** — Kontrak factory yang mendeploy wrapper ERC20SPL untuk token SPL apa pun pada bridge pertama.

**Registri Token Kanonik** — Memetakan setiap aset ke satu mint SPL kanonik untuk mencegah representasi yang terfragmentasi (misalnya, USDC selalu dipetakan ke mint SPL native Circle).

## Precompile

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

**System Program Precompile** (`0xFF...07`) — derivasi PDA, konversi base58, pembuatan akun dari Solidity.

**CPI Precompile** (`0xFF...08`) — invocation lintas program dari Solidity. Panggil program Solana apa pun dengan `invoke()` atau `invoke_signed()`.

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

## Tipe Transaksi

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

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

**RomulusTx** — Gabungan transaksi EVM + instruksi native Solana dalam satu operasi atomik. Jenis yang paling kuat — gabungkan Solidity dan Solana dalam satu transaksi.

## Mode Deployment

**Mode Single-State** — Pengguna terhubung langsung ke Rome Proxy. Setup lebih sederhana, latensi lebih rendah. Blok EVM diproduksi oleh Hercules dan disimpan di PostgreSQL.

**Mode OP-Geth** — Pengguna terhubung ke OP-Geth untuk kompatibilitas penuh dengan RPC Ethereum. Rhea menjembatani mempool ke Solana. Hercules memasok blok ke OP-Geth melalui Engine API.

## Berikutnya

* [Model Eksekusi](/id/konsep-inti/execution-model.md) — pendalaman cara transaksi EVM dieksekusi di Solana
* [Interoperabilitas Token](/id/konsep-inti/token-interop.md) — bagaimana token ERC-20 dan SPL saling berinteraksi
* [Batasan](/id/konsep-inti/constraints.md) — batasan dan ambang penting


---

# Agent Instructions: 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:

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

The question should be specific, self-contained, and written in natural language.
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.
