> 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/referencia/contract-addresses.md).

# referência de Endereços de Contrato

Precompiles, IDs de programa e endereços de contratos implantados por chain.

Os endereços de pré-compilação são incorporados ao programa EVM Rome e são idênticos em todas as chains. Os contratos implantados por chain são **canônicos no** [**registro da Rome**](https://github.com/rome-protocol/rome-registry/tree/main/chains). A tabela Hadrian abaixo lista os contratos principais que o registro (versão v0.2.0) marca `live`; o registro é a única fonte da verdade, e um contrato pode ser reimplantado depois que esta página foi escrita. Veja [Lendo a lista de contratos](#reading-the-contracts-list) como escolher o endereço ativo no código.

## Pré-compilações (todas as chains)

Pré-compilações padrão do Ethereum, com semântica equivalente à da mainnet:

| Precompilado        | Endereço                                     |
| ------------------- | -------------------------------------------- |
| ecrecover           | `0x0000000000000000000000000000000000000001` |
| SHA-256             | `0x0000000000000000000000000000000000000002` |
| RIPEMD-160          | `0x0000000000000000000000000000000000000003` |
| identity            | `0x0000000000000000000000000000000000000004` |
| modexp              | `0x0000000000000000000000000000000000000005` |
| adição BN254        | `0x0000000000000000000000000000000000000006` |
| multiplicação BN254 | `0x0000000000000000000000000000000000000007` |
| pareamento BN254    | `0x0000000000000000000000000000000000000008` |
| blake2f             | `0x0000000000000000000000000000000000000009` |

Pré-compilações não-EVM da Rome, para acessar a Solana (interfaces em [`rome-solidity/contracts/interface.sol`](https://github.com/rome-protocol/rome-solidity/blob/master/contracts/interface.sol)):

| Precompilado   | Endereço                                     | Interface                 | Finalidade                                           |
| -------------- | -------------------------------------------- | ------------------------- | ---------------------------------------------------- |
| System         | `0xFF00000000000000000000000000000000000007` | `ISystemProgram`          | Derivação de PDA, conversão para base58              |
| CpiProgram     | `0xFF00000000000000000000000000000000000008` | `ICrossProgramInvocation` | CPI arbitrária + leituras entre estados              |
| HelperProgram  | `0xFF00000000000000000000000000000000000009` | `IHelperProgram`          | Criação de ATA/PDA, transferências SPL, gas↔lamports |
| Withdraw       | `0x4200000000000000000000000000000000000016` | `IWithdraw`               | Sacar SOL/SPL do EVM para a Solana                   |
| SystemCached   | `0xFF00000000000000000000000000000000000004` | `ISystemCached`           | Helpers de System no modo em cache                   |
| SplCached      | `0xFF00000000000000000000000000000000000005` | `ISplCached`              | Operações SPL no modo em cache                       |
| ASplCached     | `0xFF00000000000000000000000000000000000006` | `IAssociatedSplCached`    | Operações ATA no modo em cache                       |
| WithdrawCached | `0xFF0000000000000000000000000000000000000b` | `IWithdrawCached`         | Saque no modo em cache                               |

Um contrato usa um modo — legado (`SplCached` desativado) ou em cache — de forma consistente; os dois não são misturados dentro de uma chamada.

## IDs dos programas

programas rome-evm (o programa da Solana que executa a EVM), por rede Rome:

| Rede              | ID do programa                                |
| ----------------- | --------------------------------------------- |
| Hadrian (testnet) | `RPTWwELXAY4KC9ZPHhaxp7Sq1hHtU3HNEgLbSegCcWf` |
| Rubicon (mainnet) | `RomePq9X3iAoTr813HR7uRarafFDUJty6GdiEceYpzX` |

Programas conhecidos da Solana (iguais em qualquer lugar na Solana):

| Programa                | ID                                             |
| ----------------------- | ---------------------------------------------- |
| SPL Token               | `TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA`  |
| SPL Token-2022          | `TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb`  |
| Token associado         | `ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL` |
| Programa System         | `11111111111111111111111111111111`             |
| Metaplex Token Metadata | `metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s`  |

## Rome ZK EVM na devnet da Solana

Esses programas v0.3.0 são compartilhados por chains ZK EVM operadas por operadores na devnet da Solana. A [lista de programas com tags](https://github.com/rome-protocol/solana-zk-evm/blob/v0.3.0/deploy/rollup/programs.devnet.json) é a fonte desses IDs.

| Programa      | ID                                             |
| ------------- | ---------------------------------------------- |
| zk-inbox      | `28948c2Qt1QtG2XJA823ytzCfj7U5cNNm3FuM2KoXsAa` |
| zk-settlement | `8anSjJZu5vgfNbESPLoKudVBNEraDZASwKJnkDLTCaGo` |
| veritas       | `2cLGd9FKC7TiZrEHCvpw291AwXNcGgP9nDT4W3PHLe5k` |
| zk-bridge     | `27TbMDUyVynpFpqeKygpUMcDzWKHfW4k9aRN5yCysLEQ` |

Imagem do nó: `ghcr.io/rome-protocol/rome-zk-evm:v0.3.0`.

## Contratos implantados — Hadrian (testnet, 200010)

Contratos principais, extraídos das `live` entradas do [registro](https://github.com/rome-protocol/rome-registry/tree/main/chains/200010-hadrian) (v0.2.0). O conjunto completo (wrappers SPL, Uniswap V2/V3/V4, Aave, feeds de oráculo) está no registro.

| Contrato             | Endereço                                     |
| -------------------- | -------------------------------------------- |
| ERC20SPLFactory      | `0x37c13e4ff21fb914eb24014dcbd0f8dbeaa31078` |
| Multicall3           | `0xb7180d3c46632b582b99d9af3daae394fab9ae4c` |
| OracleAdapterFactory | `0x52b008771fc95b4674a4f3533570b3d223f27f68` |
| BatchReader          | `0x2869f0a96572e7fb15036656e9a32fd17346499b` |
| RomeBridgeWithdraw   | `0x6eeacb4e6006b7a29c8141f69b6c75346dedec73` |
| MeteoraDAMMv1Factory | `0xd68b355f62643de0ec40243cba8f699f959ea3c4` |
| UniswapV3Factory     | `0xD9E323088561D40267767b52252595ea9cF1D5bD` |
| UniswapV4PoolManager | `0x8a281Be9B5173B2F52328437eAa0d272791707f7` |

## Contratos implantados — Rubicon (mainnet, 7531)

Contratos principais (o registro público publica o conjunto Hadrian hoje; o conjunto Rubicon está listado aqui). Wrappers: `wUSDC` `0x0952d233b0c254cd375f3bfb3e5869c1a906f9b3`, `wETH` `0x01e8b3573da1d4b7b4b1ce0932cf07c8af0c92e9`, `wSOL` `0xc4e29e0f726a906e93277cbbc37bf27a9848a113`.

| Contrato                        | Endereço                                     |
| ------------------------------- | -------------------------------------------- |
| ERC20SPLFactory                 | `0x4068aa7482dc15e9f78e22fbe0f884531c83ae6e` |
| Multicall3                      | `0xd6e0b13ea70aea0d44db083544f01d8b7693a759` |
| OracleAdapterFactory            | `0x6a1340dd86c3951b6f13d9001b3951d56a2fe581` |
| BatchReader                     | `0x580dc0ecb226530ee8a90b57e0f0cd2555fb4f0f` |
| RomeBridgeWithdraw              | `0xceea191761cdba2fc589996d7dd096e57db29c84` |
| WETH9                           | `0x8dc8bf908efa4511f71a9e2ed95f46a70507f1ae` |
| UniswapV2Factory                | `0x23af4d2065d24b42a1a17f22b963c9216d0a1dc2` |
| UniswapV2Router                 | `0x445d7af7888db44a4904b63336cc43446dfb37f7` |
| UniswapV3Factory                | `0x02aed7762fdc8bae826e7ee0ac2d2e1f754ba025` |
| SwapRouter (V3)                 | `0x680b7645c63421e33584a02aca91be6642d3d034` |
| NonfungiblePositionManager (V3) | `0xfb132adf6b7d811408f3639e91c8f638bddd6123` |
| QuoterV2 (V3)                   | `0x1d68d09dcc3a8c1b9aa8f0e2b138205c04bad4a7` |

## Lendo a lista de contratos

Cada pasta de chain no registro tem um `contracts.json`. É uma lista de contratos. Cada entrada tem um `nome` e um `versions[]` lista, e cada versão tem um `address`, uma lista de contas de `versão` e um `status` de `live`, `obsoletas` ou `aposentadas`. Um contrato que foi reimplantado mantém suas versões antigas na lista, então o primeiro ou o último item não é necessariamente o que deve ser usado. Escolha a versão cujo `status` é `"ativo"`. Algumas entradas (os contratos Aave de Hadrian) têm mais de uma versão ativa, então filtre por `status` e escolha de propósito, em vez de pegar a primeira correspondência.

```ts
import { getContracts } from "@rome-protocol/registry";
const factory = getContracts(200010).find((c) => c.name === "ERC20SPLFactory");
const address = factory.versions.find((v) => v.status === "live").address;
```

`getContracts(chainId)` retorna a lista para essa chain, ou `null` se a chain não estiver publicada. Algumas entradas não têm nenhuma versão ativa (os `RomeswapMinimalRouter` é uma delas), então verifique se o `find` encontrou algo antes de ler `.address`O pacote do registro é instalado do GitHub, não do npm: `npm install github:rome-protocol/rome-registry#v0.2.0`.

## Ambientes

| Ambiente          | ID da cadeia | RPC                                | Status |
| ----------------- | ------------ | ---------------------------------- | ------ |
| Rubicon (mainnet) | `7531`       | `rubicon.mainnet.romeprotocol.xyz` | Ativo  |
| Hadrian (testnet) | `200010`     | `hadrian.testnet.romeprotocol.xyz` | Ativo  |


---

# 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/referencia/contract-addresses.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.
