> 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 Utama

Istilah penting Solana dan Rome EVM untuk pengembang — program, akun, PDA, CPI, token SPL, serta eksekusi atomik vs. iteratif.

Terminologi dan konsep esensial untuk membangun di atas Rome Protocol.

## Konsep Solana

**Program** — Padanan smart contract milik Solana. Program adalah executable tanpa state yang di-deploy on-chain. Rome EVM sendiri adalah program Solana.

**Akun** — Semua state di Solana berada dalam 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 "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 milik 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, Transfer Rahasia, dan Delegasi Permanen.

**Transfer Hook** — Ekstensi Token-2022 yang memanggil 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.

**Lamports** — Unit terkecil dari SOL. 1 SOL = 1.000.000.000 lamports (10^9).

**Compute Units (CU)** — Padanan gas Ethereum milik 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 per lingkungan.

**ID rantai** — 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 dipecah ke beberapa transaksi Solana, dengan 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 Holder** — Buffer on-chain yang menyimpan transaksi EVM besar (hingga 80 KB) yang melebihi batas ukuran transaksi Solana (v1) sebesar 4 KB. Dikelola secara transparan oleh SDK.

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

**Rome Proxy** — 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 pembayar.

## Konsep Token

**SPL\_ERC20 / SPL\_ERC20\_cached** — Kontrak pembungkus ERC-20 yang merepresentasikan token SPL di dalam Rome EVM. Untuk sebuah wallet, pembungkus membaca saldo langsung dari akun token SPL yang mendasarinya. Token yang dipegang oleh sebuah kontrak berada di akun token escrow milik pembungkus sendiri dan dilacak di storage pembungkus (lihat [Integrasikan program Solana](/id/panduan-pengembang/integrate-solana-program.md)). Saat ini factory men-deploy varian cached.

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

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

## 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`) — derivasi PDA dan konversi base58 dari Solidity.

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

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

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

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

## Jenis 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** — Transaksi EVM gabungan + instruksi Solana native dalam satu operasi atomik. Jenis paling kuat — gabungkan Solidity dan Solana dalam satu transaksi.

## Apa Selanjutnya

* [Model Eksekusi](/id/konsep-inti/execution-model.md) — penjelasan mendalam tentang bagaimana transaksi EVM dieksekusi di Solana
* [Interop Token](/id/konsep-inti/token-interop.md) — bagaimana token ERC-20 dan SPL berinteraksi
* [Batasan](/id/konsep-inti/constraints.md) — batas dan pembatas 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
