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

# Contract Addresses

Precompilados, IDs de programa y direcciones de contratos desplegados por cadena.

Las direcciones de precompilados están integradas en el programa Rome EVM y son idénticas en todas las cadenas. Los contratos desplegados por cadena son **canónicos en el** [**registro de Rome**](https://github.com/rome-protocol/rome-registry/tree/main/chains). La tabla de Hadrian que aparece abajo enumera los contratos principales que el registro (versión v0.2.0) marca `live`; el registro es la única fuente de verdad, y un contrato puede volver a desplegarse después de que se escribiera esta página. Véase [Leer la lista de contratos](#reading-the-contracts-list) para saber cómo elegir la dirección activa en el código.

## Precompilados (todas las cadenas)

Precompilados estándar de Ethereum, con semántica equivalente a la de mainnet:

| Precompilado         | Dirección                                    |
| -------------------- | -------------------------------------------- |
| ecrecover            | `0x0000000000000000000000000000000000000001` |
| SHA-256              | `0x0000000000000000000000000000000000000002` |
| RIPEMD-160           | `0x0000000000000000000000000000000000000003` |
| identidad            | `0x0000000000000000000000000000000000000004` |
| modexp               | `0x0000000000000000000000000000000000000005` |
| BN254 suma           | `0x0000000000000000000000000000000000000006` |
| BN254 multiplicación | `0x0000000000000000000000000000000000000007` |
| BN254 emparejamiento | `0x0000000000000000000000000000000000000008` |
| blake2f              | `0x0000000000000000000000000000000000000009` |

Precompilados no EVM de Rome, para interactuar con Solana (interfaces en [`rome-solidity/contracts/interface.sol`](https://github.com/rome-protocol/rome-solidity/blob/master/contracts/interface.sol)):

| Precompilado   | Dirección                                    | Interfaz                  | Propósito                                             |
| -------------- | -------------------------------------------- | ------------------------- | ----------------------------------------------------- |
| System         | `0xFF00000000000000000000000000000000000007` | `ISystemProgram`          | Derivación de PDA, conversión a base58                |
| CpiProgram     | `0xFF00000000000000000000000000000000000008` | `ICrossProgramInvocation` | CPI arbitrario + lecturas entre estados               |
| HelperProgram  | `0xFF00000000000000000000000000000000000009` | `IHelperProgram`          | Creación de ATA/PDA, transferencias SPL, gas↔lamports |
| Withdraw       | `0x4200000000000000000000000000000000000016` | `IWithdraw`               | Retirar SOL/SPL de EVM a Solana                       |
| SystemCached   | `0xFF00000000000000000000000000000000000004` | `ISystemCached`           | Utilidades del sistema en la ruta en caché            |
| SplCached      | `0xFF00000000000000000000000000000000000005` | `ISplCached`              | Operaciones SPL en la ruta en caché                   |
| ASplCached     | `0xFF00000000000000000000000000000000000006` | `IAssociatedSplCached`    | Operaciones ATA en la ruta en caché                   |
| WithdrawCached | `0xFF0000000000000000000000000000000000000b` | `IWithdrawCached`         | Retirada en la ruta en caché                          |

Un contrato usa una ruta — heredada (`SplCached` desactivada) o en caché — de forma consistente; no se mezclan ambas dentro de una llamada.

## IDs de programa

Programas de rome-evm (el programa de Solana que ejecuta el EVM), según la red Rome:

| Red               | ID del programa                               |
| ----------------- | --------------------------------------------- |
| Hadrian (testnet) | `RPTWwELXAY4KC9ZPHhaxp7Sq1hHtU3HNEgLbSegCcWf` |
| Rubicon (mainnet) | `RomePq9X3iAoTr813HR7uRarafFDUJty6GdiEceYpzX` |

Programas de Solana conocidos (igual que en cualquier parte de Solana):

| Programa                       | ID                                             |
| ------------------------------ | ---------------------------------------------- |
| SPL Token                      | `TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA`  |
| SPL Token-2022                 | `TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb`  |
| Token asociado                 | `ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL` |
| Programa del sistema           | `11111111111111111111111111111111`             |
| Metadatos de token de Metaplex | `metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s`  |

## Rome ZK EVM en la devnet de Solana

Estos programas v0.3.0 son compartidos por cadenas ZK EVM administradas por operadores en la devnet de Solana. La [lista de programas etiquetada](https://github.com/rome-protocol/solana-zk-evm/blob/v0.3.0/deploy/rollup/programs.devnet.json) es la fuente de estos IDs.

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

Imagen del nodo: `ghcr.io/rome-protocol/rome-zk-evm:v0.3.0`.

## Contratos desplegados — Hadrian (testnet, 200010)

Contratos principales, tomados de las `live` entradas de la [registro](https://github.com/rome-protocol/rome-registry/tree/main/chains/200010-hadrian) (v0.2.0). El conjunto completo (envoltorios SPL, Uniswap V2/V3/V4, Aave, feeds de oráculo) está en el registro.

| Contrato             | Dirección                                    |
| -------------------- | -------------------------------------------- |
| ERC20SPLFactory      | `0x37c13e4ff21fb914eb24014dcbd0f8dbeaa31078` |
| Multicall3           | `0xb7180d3c46632b582b99d9af3daae394fab9ae4c` |
| OracleAdapterFactory | `0x52b008771fc95b4674a4f3533570b3d223f27f68` |
| BatchReader          | `0x2869f0a96572e7fb15036656e9a32fd17346499b` |
| RomeBridgeWithdraw   | `0x6eeacb4e6006b7a29c8141f69b6c75346dedec73` |
| MeteoraDAMMv1Factory | `0xd68b355f62643de0ec40243cba8f699f959ea3c4` |
| UniswapV3Factory     | `0xD9E323088561D40267767b52252595ea9cF1D5bD` |
| UniswapV4PoolManager | `0x8a281Be9B5173B2F52328437eAa0d272791707f7` |

## Contratos desplegados — Rubicon (mainnet, 7531)

Contratos principales (el registro público publica hoy el conjunto de Hadrian; el conjunto de Rubicon se enumera aquí). Envoltorios: `wUSDC` `0x0952d233b0c254cd375f3bfb3e5869c1a906f9b3`, `wETH` `0x01e8b3573da1d4b7b4b1ce0932cf07c8af0c92e9`, `wSOL` `0xc4e29e0f726a906e93277cbbc37bf27a9848a113`.

| Contrato                        | Dirección                                    |
| ------------------------------- | -------------------------------------------- |
| 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` |

## Leer la lista de contratos

Cada carpeta de cadena en el registro tiene un `contracts.json`. Es una lista de contratos. Cada entrada tiene un `nombre` y un `versions[]` lista, y cada versión tiene una `address`, una `versión` y un `estado` de `live`, `obsoletas` o `retiradas`. Un contrato que se volvió a desplegar conserva sus versiones antiguas en la lista, así que el primer o el último elemento no necesariamente es el que hay que usar. Elige la versión cuyo `estado` es `"activa"`. Algunas entradas (los contratos Aave de Hadrian) tienen más de una versión activa, así que filtra por `estado` y elige deliberadamente en lugar de tomar la primera coincidencia.

```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)` devuelve la lista de esa cadena, o `null` si la cadena no está publicada. Algunas entradas no tienen ninguna versión activa (los `RomeswapMinimalRouter` es uno de ellos), así que comprueba que el `find` haya encontrado algo antes de leer `.address`. El paquete del registro se instala desde GitHub, no desde npm: `npm install github:rome-protocol/rome-registry#v0.2.0`.

## Entornos

| Entorno           | ID de cadena | RPC                                | Estado  |
| ----------------- | ------------ | ---------------------------------- | ------- |
| Rubicon (mainnet) | `7531`       | `rubicon.mainnet.romeprotocol.xyz` | En vivo |
| Hadrian (testnet) | `200010`     | `hadrian.testnet.romeprotocol.xyz` | En vivo |


---

# 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/es/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.
