> 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/zh/can-kao/contract-addresses.md).

# 合约地址

预编译合约、程序 ID 以及各链部署的合约地址。

预编译地址内置于 Rome EVM 程序中，并且在每条链上都相同。各链部署的合约在 **其中为规范版本** [**Rome 注册表**](https://github.com/rome-protocol/rome-registry/tree/main/chains)。下方的 Hadrian 表列出了注册表（发布版 v0.2.0）标记为 `生效`；注册表是唯一可信来源，而且在本页编写之后，某个合约可能已被重新部署。请参见 [读取合约列表](#reading-the-contracts-list) 以了解如何在代码中选择 live 地址。

## 预编译合约（所有链）

标准以太坊预编译合约，语义与主网等效：

| 预编译        | 地址                                           |
| ---------- | -------------------------------------------- |
| ecrecover  | `0x0000000000000000000000000000000000000001` |
| SHA-256    | `0x0000000000000000000000000000000000000002` |
| RIPEMD-160 | `0x0000000000000000000000000000000000000003` |
| 恒等         | `0x0000000000000000000000000000000000000004` |
| 模幂         | `0x0000000000000000000000000000000000000005` |
| BN254 加法   | `0x0000000000000000000000000000000000000006` |
| BN254 乘法   | `0x0000000000000000000000000000000000000007` |
| BN254 配对   | `0x0000000000000000000000000000000000000008` |
| BLAKE2f    | `0x0000000000000000000000000000000000000009` |

Rome 的非 EVM 预编译合约，用于访问 Solana（接口位于 [`rome-solidity/contracts/interface.sol`](https://github.com/rome-protocol/rome-solidity/blob/master/contracts/interface.sol)):

| 预编译            | 地址                                           | 接口                        | 用途                             |
| -------------- | -------------------------------------------- | ------------------------- | ------------------------------ |
| 系统             | `0xFF00000000000000000000000000000000000007` | `ISystemProgram`          | PDA 推导、base58 转换               |
| CpiProgram     | `0xFF00000000000000000000000000000000000008` | `ICrossProgramInvocation` | 任意 CPI + 跨状态读取                 |
| HelperProgram  | `0xFF00000000000000000000000000000000000009` | `IHelperProgram`          | ATA/PDA 创建、SPL 转账、gas↔lamports |
| 提取             | `0x4200000000000000000000000000000000000016` | `IWithdraw`               | 从 EVM 提现 SOL/SPL 到 Solana      |
| SystemCached   | `0xFF00000000000000000000000000000000000004` | `ISystemCached`           | 缓存路径的 System 辅助函数              |
| SplCached      | `0xFF00000000000000000000000000000000000005` | `ISplCached`              | 缓存路径的 SPL 操作                   |
| ASplCached     | `0xFF00000000000000000000000000000000000006` | `IAssociatedSplCached`    | 缓存路径的 ATA 操作                   |
| WithdrawCached | `0xFF0000000000000000000000000000000000000b` | `IWithdrawCached`         | 缓存路径提现                         |

合约使用一种路径——旧版（`SplCached` 关闭）或缓存版——并保持一致；两者不会在一次调用中混用。

## 程序 ID

Rome EVM 程序（运行 EVM 的 Solana 程序），按 Rome 网络划分：

| 网络           | 程序 ID                                         |
| ------------ | --------------------------------------------- |
| Hadrian（测试网） | `RPTWwELXAY4KC9ZPHhaxp7Sq1hHtU3HNEgLbSegCcWf` |
| Rubicon（主网）  | `RomePq9X3iAoTr813HR7uRarafFDUJty6GdiEceYpzX` |

知名的 Solana 程序（与 Solana 上其他位置相同）：

| 程序             | ID                                             |
| -------------- | ---------------------------------------------- |
| SPL Token      | `TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA`  |
| SPL Token-2022 | `TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb`  |
| 关联 Token       | `ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL` |
| 系统程序           | `11111111111111111111111111111111`             |
| Metaplex 代币元数据 | `metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s`  |

## Solana devnet 上的 Rome ZK EVM

这些 v0.3.0 程序由 Solana devnet 上由运维方运行的 ZK EVM 链共享。 [带标签的程序列表](https://github.com/rome-protocol/solana-zk-evm/blob/v0.3.0/deploy/rollup/programs.devnet.json) 是这些 ID 的来源。

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

节点镜像： `ghcr.io/rome-protocol/rome-zk-evm:v0.3.0`.

## 已部署合约 — Hadrian（测试网，200010）

主合约，取自 `生效` ……的条目 [registry](https://github.com/rome-protocol/rome-registry/tree/main/chains/200010-hadrian) （v0.2.0）。完整集合（SPL 封装、Uniswap V2/V3/V4、Aave、预言机数据源）都在注册表中。

| 合约                   | 地址                                           |
| -------------------- | -------------------------------------------- |
| ERC20SPLFactory      | `0x37c13e4ff21fb914eb24014dcbd0f8dbeaa31078` |
| Multicall3           | `0xb7180d3c46632b582b99d9af3daae394fab9ae4c` |
| OracleAdapterFactory | `0x52b008771fc95b4674a4f3533570b3d223f27f68` |
| BatchReader          | `0x2869f0a96572e7fb15036656e9a32fd17346499b` |
| RomeBridgeWithdraw   | `0x6eeacb4e6006b7a29c8141f69b6c75346dedec73` |
| MeteoraDAMMv1Factory | `0xd68b355f62643de0ec40243cba8f699f959ea3c4` |
| UniswapV3Factory     | `0xD9E323088561D40267767b52252595ea9cF1D5bD` |
| UniswapV4PoolManager | `0x8a281Be9B5173B2F52328437eAa0d272791707f7` |

## 已部署合约 — Rubicon（主网，7531）

主合约（公共注册表目前发布的是 Hadrian 集合；Rubicon 集合列在此处）。封装合约： `wUSDC` `0x0952d233b0c254cd375f3bfb3e5869c1a906f9b3`, `wETH` `0x01e8b3573da1d4b7b4b1ce0932cf07c8af0c92e9`, `wSOL` `0xc4e29e0f726a906e93277cbbc37bf27a9848a113`.

| 合约                             | 地址                                           |
| ------------------------------ | -------------------------------------------- |
| 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` |

## 读取合约列表

注册表中的每个链文件夹都有一个 `contracts.json`。它是一个合约列表。每个条目都有一个 `名称` 以及一个 `versions[]` 列表，且每个版本都有一个 `address`，一个 `版本` 以及一个 `状态` 的 `生效`, `已弃用` 或 `已退役`。一个已重新部署的合约会将旧版本保留在列表中，因此第一个或最后一个条目不一定是要使用的那个。请选择其 `状态` 是 `"live"`。有些条目（Hadrian 的 Aave 合约）有多个 live 版本，因此请按 `状态` 进行筛选，并有意识地选择，而不是取第一个匹配项。

```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)` 返回该链的列表，或者 `null` 如果该链尚未发布则返回空值。有些条目根本没有 live 版本（Hadrian 的 `RomeswapMinimalRouter` 就是其中之一），因此请先检查 `find` 在读取之前确实找到了结果 `.address`注册表包是从 GitHub 安装的，而不是 npm： `npm install github:rome-protocol/rome-registry#v0.2.0`.

## 环境

| 环境           | 链 ID     | RPC                                | 状态  |
| ------------ | -------- | ---------------------------------- | --- |
| Rubicon（主网）  | `7531`   | `rubicon.mainnet.romeprotocol.xyz` | 已上线 |
| Hadrian（测试网） | `200010` | `hadrian.testnet.romeprotocol.xyz` | 已上线 |


---

# 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/zh/can-kao/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.
