> 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/kuai-su-ru-men/why-rome.md).

# 为什么选择 Rome？

有多个项目将 EVM 兼容性带到 Solana。Rome 采用了截然不同的路径。

## 核心差异化优势

### 1. 通过 CPI 实现原子级可组合性

Rome 是唯一一个 Solidity 合约可以在同一笔交易中调用 Solana 程序的 EVM 环境。一个 Solidity 函数可以：

```solidity
// 全部在一笔原子交易中：
int256 price = IPyth(PYTH).getPrice("SOL/USD");        // 读取 Pyth 预言机
uint256 quote = IJupiter(JUPITER).getQuote(USDC, SOL);  // 获取 Jupiter 报价
IJupiter(JUPITER).swap(USDC, SOL, amount, minOut);       // 执行兑换
IKamino(KAMINO).deposit(SOL, collateralAmount);          // 向 Kamino 存入
```

如果任何一步失败，整个交易都会回滚。没有部分执行，也没有竞态条件。

### 2. 单一状态

在 Rome 上，SPL 代币及其 ERC-20 表示形式本质上是同一个底层账户。当某个 Solidity 合约转移 USDC 时，它移动的是实际的 SPL USDC——而不是一个包装后的副本。

这意味着：

* **没有流动性碎片化** — Solana DeFi 与 EVM DeFi 共享同一流动性池
* **没有桥接风险** — 因为根本没有桥，所以也就没有桥可被攻击利用
* **实时可组合性** — EVM 合约可立即看到 Solana 状态变化

### 3. 应用主权

Rome 上的每个应用都会获得自己的 EVM 环境：

* **自定义链 ID** — 你的应用就是一条独立的链
* **自定义 gas 代币** — 任何 SPL 代币，按 Meteora LP 池定价
* **Gas 收入** — 手续费归你的应用所有，而不是 Rome 协议
* **完整的 EVM 工具链** — 你的用户连接 MetaMask，你的开发者使用 Hardhat

## 何时使用 Rome

**在以下情况下使用 Rome：**

* 你希望 EVM 合约直接访问 Solana DeFi
* 你希望在 Solana 上拥有一条使用自有 gas 代币的主权 EVM 链
* 你正在迁移需要 Solana 速度和流动性的以太坊合约
* 你需要跨 EVM 和 Solana 程序的原子操作

**在以下情况下考虑替代方案：**

* 你只需要标准的 Solana 程序（使用原生 Solana/Anchor）
* 你需要以太坊主网结算（使用传统 L2）
* 你需要不依赖 EVM 执行的跨链消息传递（直接使用 Wormhole/Hyperlane）

## 下一步

* [架构](/zh/kuai-su-ru-men/architecture.md) — Rome EVM 如何在 Solana 内部运行
* [快速入门](/zh/kuai-su-ru-men/quickstart.md) — 部署你的第一个合约


---

# 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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.rome.builders/zh/kuai-su-ru-men/why-rome.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
