> 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/pt-br/introducao/key-concepts.md).

# Conceitos-chave

Terminologia essencial da Solana e da Rome EVM para desenvolvedores — programs, accounts, PDAs, CPI, tokens SPL e execução atômica vs. iterativa.

Terminologia essencial e conceitos para construir sobre o Rome Protocol.

## Conceitos da Solana

**Programa** — O equivalente da Solana a um contrato inteligente. Programas são executáveis sem estado implantados on-chain. O Rome EVM é, por si só, um programa da Solana.

**Conta** — Todo o estado na Solana fica em contas. Cada conta tem um proprietário (programa), um saldo (lamports) e dados. Diferentemente do Ethereum, código e estado são armazenados em contas separadas.

**PDA (Endereço Derivado de Programa)** — Um endereço determinístico derivado de seeds e de um ID de programa. PDAs permitem que programas “possuam” contas sem uma chave privada. O Rome usa PDAs para mapear endereços Ethereum para contas da Solana.

**CPI (Invocação entre Programas)** — Um programa da Solana chamando outro dentro da mesma transação. É assim que contratos do Rome EVM interagem com Jupiter, Kamino, SPL Token e outros programas da Solana.

**SPL Token** — O programa padrão de tokens da Solana. Equivalente ao ERC-20 no Ethereum. Todos os tokens fungíveis na Solana (USDC, SOL etc.) são tokens SPL.

**Token-2022** — O programa de tokens SPL de próxima geração com extensões como Ganchos de Transferência, Transferências Confidenciais e Delegados Permanentes.

**Gancho de Transferência** — Uma extensão do Token-2022 que invoca um programa em cada `transfer_checked` chamada.

**ATA (Conta de Token Associada)** — Uma conta de token determinística para um par carteira + mint específico. Cada usuário tem uma ATA por token que possui.

**Lamports** — A menor unidade de SOL. 1 SOL = 1.000.000.000 lamports (10^9).

**Unidades de Computação (CU)** — O equivalente da Solana ao gas do Ethereum. Cada transação tem um orçamento de computação (padrão \~200 mil CU, máx. \~1,4 milhão de CU). As operações consomem CU.

## Conceitos do Rome

**Programa Rome EVM** — O programa da Solana que contém o interpretador de bytecode da EVM. Implantado em um ID de programa específico por ambiente.

**ID da cadeia** — Cada aplicação no Rome recebe seu próprio chain ID de EVM. Isso cria ambientes EVM isolados que compartilham o mesmo estado subjacente da Solana.

**Execução atômica (VmAt)** — Uma transação EVM que é executada inteiramente dentro de uma única transação da Solana. Usada para a maioria das operações.

**Execução iterativa (VmIt)** — Uma transação EVM dividida em várias transações da Solana, cada etapa agrupando o máximo de opcodes que couber no orçamento de computação de uma transação da Solana (adaptativo, não uma contagem fixa). Usada para operações intensivas em computação como o pareamento BN254.

**Conta Holder** — Um buffer on-chain que armazena grandes transações EVM (até 80 KB) que excedem o limite de tamanho de transação da Solana (v1) de 4 KB. Gerenciado transparentemente pelo SDK.

**StateHolder** — Uma conta on-chain que armazena o estado serializado da VM entre etapas iterativas de execução.

**Rome Proxy** — O servidor JSON-RPC (porta 9090) que traduz chamadas da API do Ethereum em transações da Solana. Sua MetaMask e Hardhat se conectam aqui.

**Hercules** — O indexador de blocos que monitora eventos do Rome EVM na Solana e produz dados de blocos compatíveis com Ethereum.

**Pagador** — Um par de chaves da Solana que assina e paga transações da Solana em nome de usuários de EVM. Gerenciado pelo Proxy por meio de pools de pagadores.

## Conceitos de Token

**SPL\_ERC20 / SPL\_ERC20\_cached** — Contratos wrapper ERC-20 que representam um token SPL dentro do Rome EVM. Para uma carteira, o wrapper lê o saldo diretamente da conta de token SPL subjacente. Os tokens mantidos por um contrato ficam na própria conta de token de custódia do wrapper e são rastreados no armazenamento do wrapper (veja [Integrar um programa Solana](/pt-br/guias-do-desenvolvedor/integrate-solana-program.md)). A fábrica implanta a variante em cache hoje.

**ERC20SPLFactory** — Um contrato fábrica que implanta wrappers para qualquer token SPL.

**Registro** — Wrappers canônicos, tokens de gas e a configuração de bridge são curados off-chain no [rome-protocol/registry](https://github.com/rome-protocol/rome-registry); não há um contrato de registro de tokens on-chain. Isso mantém cada ativo mapeado para um único mint SPL canônico.

## Precompiles

**Precompilações Padrão do Ethereum** — ecrecover (0x01), SHA-256 (0x02), RIPEMD-160 (0x03), identity (0x04), modexp (0x05), BN254 ecAdd/ecMul/ecPairing (0x06-0x08), Blake2f (0x09).

**Precompilação de Sistema** (`0xFF...07`) — Derivação de PDA e conversão base58 a partir de Solidity.

**Precompilação CpiProgram** (`0xFF...08`) — Invocação entre programas (`invoke` / `invoke_signed`) mais atalhos de leitura entre estados.

**Precompilação HelperProgram** (`0xFF...09`) — Criação de ATA/PDA, transferências SPL e conversão gas↔lamports; a principal superfície para operações SPL assinadas por usuário-PDA.

**Precompilação de Saque** (`0x42...16`) — Sacar SOL ou tokens SPL da EVM de volta para a Solana.

Uma família de trilha em cache (`0xff…04/05/06/0b`) espelha estes para leituras eficientes em CU; um contrato usa uma trilha de forma consistente.

## Tipos de Transação

**RheaTx** — Uma única transação EVM em um rollup. O tipo mais comum.

**RemusTx** — Múltiplas transações EVM em diferentes rollups, executadas atomicamente. Se qualquer transação falhar, todas são revertidas.

**RomulusTx** — Transações EVM combinadas + instruções nativas da Solana em uma única operação atômica. O tipo mais poderoso — misture Solidity e Solana em uma única transação.

## O que Vem a Seguir

* [Modelo de execução](/pt-br/conceitos-principais/execution-model.md) — análise aprofundada de como transações EVM são executadas na Solana
* [Interoperabilidade de tokens](/pt-br/conceitos-principais/token-interop.md) — como tokens ERC-20 e SPL interagem
* [Restrições](/pt-br/conceitos-principais/constraints.md) — limites e fronteiras importantes


---

# 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/pt-br/introducao/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.
