> 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/ko/getting-started/ecosystem.md).

# 생태계 및 저장소

모든 공개 Rome 저장소, 각 저장소의 내용, 그리고 어떻게 함께 구성되는지 — 표면을 탐색하기 위한 지도.

Rome의 공개 영역은 몇 개의 리포지토리로 이루어져 있습니다: **기반** 그 위에 구축하는 패키지, 스캐폴더, 참고할 레퍼런스 앱, 그리고 앱이 호출하는 두 서비스입니다. 이 페이지는 각 리포지토리가 무엇이고 어떻게 함께 작동하는지를 보여주는 지도입니다.

인접한 두 페이지는 서로 다른 질문에 답하며, 이 페이지는 내용을 반복하지 않고 둘 다 연결합니다:

* [아키텍처](/ko/getting-started/architecture.md) 다음을 설명합니다 **프로토콜** — EVM이 Solana 프로그램 내부에서 실행되는 방식입니다.
* 각 리포지토리에는 **`AGENTS.md`** (예: [rome-sdk-ts/AGENTS.md](https://github.com/rome-protocol/rome-sdk-ts/blob/main/AGENTS.md))가 포함되어 있으며, **무엇에서 시작하는지** (Solidity 컨트랙트, Solana 프로그램, 그린필드, from-home)에 따라 사례와 가장 가까운 하나의 예제로 안내합니다.

이 페이지는 그 중간 수준, 즉 **전체 영역** 과 각 구성 요소가 연결되는 방식을 다룹니다.

## 영역 한눈에 보기

### 기반 — 이것들을 토대로 구축하세요

| 리포지토리                                                           | 무엇인가                                                                                                                    | 다음 경우 사용하세요                      |
| --------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | -------------------------------- |
| [rome-registry](https://github.com/rome-protocol/rome-registry) | `@rome-protocol/registry` — 라이브 체인 정보(id, RPC, 주소, 토큰 민트, 프로그램 ID, 오라클 피드, ALT)의 읽기 전용 생성형 프로젝션입니다.                     | 실제 체인 정보가 필요할 때 — 절대 하드코딩하지 마세요. |
| [rome-sdk-ts](https://github.com/rome-protocol/rome-sdk-ts)     | `@rome-protocol/sdk` — TypeScript 쓰기 경로: `submitRomeTx` + 수수료 산정, 양쪽 레인, PDA/ATA + CPI 인코더, 프리컴파일 바인딩, `/bridge` 클라이언트. | 앱 또는 프런트엔드 코드를 작성할 때입니다.         |
| [rome-solidity](https://github.com/rome-protocol/rome-solidity) | Solidity 프리컴파일 인터페이스, SPL/ERC-20 래퍼 및 오라클 어댑터 — 컨트랙트 측 툴킷입니다.                                                           | 컨트랙트를 작성할 때입니다.                  |

위의 `@rome-protocol/…` 이름은 패키지명이지만, 패키지는 npm에 게시되지 않습니다. GitHub에서 설치하세요(명령은 각 섹션의 다음 항목 아래에 있습니다 [기반 계층 자세히 보기](#the-foundation-layer-up-close)); 코드의 import 경로는 그대로 유지됩니다.

### Rome ZK EVM 롤업

| 리포지토리                                                           | 무엇인가                             | 다음 경우 사용하세요                     |
| --------------------------------------------------------------- | -------------------------------- | ------------------------------- |
| [solana-zk-evm](https://github.com/rome-protocol/solana-zk-evm) | ZK 롤업 프로그램, 노드, 프로버 및 운영자 문서입니다. | Solana에서 결제되는 EVM 체인을 운영할 때입니다. |
| [rome-zk-guest](https://github.com/rome-protocol/rome-zk-guest) | 각 체인의 제네시스에 맞춰 빌드된 배치 게스트 소스입니다. | 게스트를 빌드하고 그 검증 키를 요청할 때입니다.     |

### Canton ZK EVM

| 리포지토리                                                                                                                   | 무엇인가                                                                   | 다음 경우 사용하세요                                                                                         |
| ----------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |
| [canton-zk-evm](https://github.com/rome-protocol/canton-zk-evm/blob/a84e84e439a5cc669c0ae61facf7c8c995d9d564/README.md) | 검증된 EVM 블록과 Canton 액션을 하나의 트랜잭션에서 결제하는 Canton zkEVM의 초기 릴리스인 Ostia입니다. | 로컬 데모를 실행하거나 게이트웨이와 증명 검사를 학습할 때입니다. 다음을 참조하세요 [Canton ZK EVM](/ko/canton-zk-evm/canton-zk-evm.md). |

### 레퍼런스 앱 — 예제로 학습하기

| 리포지토리                                                                   | 무엇인가                                                         | 다음 경우 사용하세요                      |
| ----------------------------------------------------------------------- | ------------------------------------------------------------ | -------------------------------- |
| [rome-dex](https://github.com/rome-protocol/rome-dex)                   | 듀얼 레인 AMM — 얇은 EVM 라우터가 있는 네이티브 Solana 풀입니다.                 | 다른 레인 열기; **native-core** 예제.    |
| [aerarium](https://github.com/rome-protocol/aerarium)                   | 듀얼 레인 대출 — Solana 사용자가 합성 송신자를 통해 접근하는 Solidity Comet 코어입니다. | 다른 레인 열기; **Solidity-core** 예제.  |
| [cardo](https://github.com/rome-protocol/cardo)                         | CPI를 통해 Solana dApp(스왑/스테이킹/대출/퍼프)을 구동하는 EVM 사용자.            | 학습할 수 있는 완성된 CPI-to-Solana 앱입니다. |
| [appia](https://github.com/rome-protocol/appia)                         | 포지션 우선 크로스 VM DeFi; 사용자는 홈 체인에서 접근합니다.                       | 하나의 **from-home** 앱.             |
| [rome-aave-v3-demo](https://github.com/rome-protocol/rome-aave-v3-demo) | 변경 없이 배포된 Aave v3 공급/대출/상환입니다.                               | 있는 그대로 실행되는 완전한 EVM 앱입니다.        |

### 컨트랙트 포크 — Rome에 배포된 알려진 프로토콜

| 리포지토리                                                                             | 무엇인가                       | 다음 경우 사용하세요      |
| --------------------------------------------------------------------------------- | -------------------------- | ---------------- |
| [compound-on-rome-comet](https://github.com/rome-protocol/compound-on-rome-comet) | Compound III(Comet) 머니 마켓. | 알려진 EVM 프로토콜 포크. |
| [rome-aave-v3](https://github.com/rome-protocol/rome-aave-v3)                     | Aave v3 컨트랙트 포크.           | 알려진 EVM 프로토콜 포크. |

### 서비스 — 앱이 이들을 호출합니다

| 리포지토리                                                                       | 무엇인가                                                                             | 다음 경우 사용하세요               |
| --------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | ------------------------- |
| [rome-bridge-api](https://github.com/rome-protocol/rome-bridge-api)         | 온체인 브리지를 위한 오프체인 오케스트레이터 + 수수료 스폰서입니다. 키를 보유하지 않습니다.                             | 지갑 자금 조달 또는 from-home 흐름. |
| [rome-oracle-gateway](https://github.com/rome-protocol/rome-oracle-gateway) | Chainlink를 통해 EVM에 노출되는 Solana 가격 피드(Pyth, Switchboard) `AggregatorV3Interface`. | 가격 피드가 필요할 때입니다.          |

### 스캐폴드 — 여기서 시작하세요

| 리포지토리                                                               | 무엇인가                                                                                                    | 다음 경우 사용하세요    |
| ------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | -------------- |
| [create-rome-app](https://github.com/rome-protocol/create-rome-app) | `npx github:rome-protocol/create-rome-app` — 레지스트리 + SDK가 미리 연결되고 양쪽 레인 자금 조달 검사가 포함된 듀얼 레인 앱을 스캐폴딩합니다. | 새 앱을 시작할 때입니다. |

## 이들이 구성되는 방식

```mermaid
흐름도 TD
    REG["rome-registry — 라이브 체인 정보"]
    SDK["rome-sdk-ts — 쓰기, CPI, 브리지 클라이언트"]
    SOL["rome-solidity — 프리컴파일 인터페이스, SPL 래퍼, 오라클 어댑터"]
    CRA["create-rome-app — 스캐폴더"]
    APP["내 앱 — 프런트엔드 + 컨트랙트"]
    BAPI["rome-bridge-api — 오프체인 오케스트레이터, 키 미보유"]
    OG["rome-oracle-gateway — Solana 가격 피드"]

    CRA -->|스캐폴딩, 사전 연결됨| APP
    REG -->|정보, 하드코딩 금지| APP
    SDK -->|쓰기 경로 및 CPI| APP
    SOL -->|내 컨트랙트에서 import| APP
    APP -->|SDK /bridge 클라이언트| BAPI
    APP -->|AggregatorV3Interface를 통해 읽음| OG
    OG -.->|어댑터 위치| SOL
    CRA -.->|연결| REG
    CRA -.->|연결| SDK
```

핵심은 세 가지 기반 요소와 스캐폴더입니다:

* [**rome-registry**](https://github.com/rome-protocol/rome-registry) 는 라이브 정보의 단일 소스입니다. [**rome-sdk-ts**](https://github.com/rome-protocol/rome-sdk-ts) 는 쓰기 경로이며, 그 `/bridge` 하위 경로는 앱이 다음과 통신하는 데 사용하는 클라이언트입니다 `rome-bridge-api`. [**rome-solidity**](https://github.com/rome-protocol/rome-solidity) 는 컨트랙트(및 포크)가 import하는 대상이며; `rome-oracle-gateway` 가 배포하는 오라클 어댑터도 여기에 있습니다. 이 세 가지는 서로 독립적이므로 앱에 필요한 것만 선택하세요.
* [**create-rome-app**](https://github.com/rome-protocol/create-rome-app) 는 새 앱을 위해 처음 두 가지를 연결하므로, 새 프로젝트는 처음부터 레지스트리를 읽고 SDK를 통해 쓰기를 수행합니다.

레퍼런스 앱에는 알아둘 만한 예외가 있습니다: **이들은 추출된 패키지보다 앞서 만들어졌습니다.** cardo는 레지스트리 패키지를 사용하고, appia는 빌드 시 레지스트리를 정적 JSON으로 프로젝션하며, 둘 다 SDK를 import하는 대신 자체 쓰기 경로를 벤더링합니다. 패턴을 배우기 위해 읽되, **새** 앱은 다음에서 시작해야 합니다 `create-rome-app` + 패키지에서 시작해야 하며, 앱을 복제해서는 안 됩니다.

## 필요한 것으로 탐색하기

* **라이브 체인 정보** (ID, 주소, 민트, 프로그램 ID) → [rome-registry](https://github.com/rome-protocol/rome-registry). 절대 하드코딩하지 마세요.
* **앱 코드 작성** (쓰기, CPI 호출, 브리지) → [rome-sdk-ts](https://github.com/rome-protocol/rome-sdk-ts); 참조: [Rome SDK](/ko/products/rome-sdk.md).
* **컨트랙트 작성** → [rome-solidity](https://github.com/rome-protocol/rome-solidity); 참조 [Solidity 컨트랙트 배포](/ko/developer-guides/deploy-solidity.md).
* **Solidity 컨트랙트에서 Solana 프로그램 호출** → 다음의 CPI 프리컴파일 [rome-solidity](https://github.com/rome-protocol/rome-solidity) (`interface.sol`); [cardo](https://github.com/rome-protocol/cardo) 은 완성된 예제입니다.
* **작동하는 예제** AMM, 대출, CPI 또는 from-home 앱의 → 위 레퍼런스 앱; 각 리포지토리의 `AGENTS.md` 는 시작점별로 안내합니다.
* **새 앱 스캐폴딩** → [create-rome-app](https://github.com/rome-protocol/create-rome-app).
* **가격 피드** → [rome-oracle-gateway](https://github.com/rome-protocol/rome-oracle-gateway) (다음을 참조하세요 [Oracle Gateway 포털](/ko/rome/oracle-gateway.md)).
* **다른 체인의 사용자** → [From home](/ko/developer-guides/from-home.md) + [rome-bridge-api](https://github.com/rome-protocol/rome-bridge-api).
* **어느 쪽에 로직을 둘지 결정하기** → [코어 선택하기](/ko/core-concepts/choose-your-core.md).

## 기반 계층 자세히 보기

### rome-registry — 라이브 정보, 설계상 공개

레지스트리는 **생성됩니다** Rome의 내부 소스에서: 허용 목록은 공개되어야 하는 항목만 내보내고, **대체하며** 내부 엔드포인트를 공개 동등물로 바꾸고, **기본 거부합니다** 그 외 모든 항목을 — 따라서 설계상 공개에 안전합니다. 체인별로 다음을 게시합니다 `chain.json` / `tokens.json` / `contracts.json` / `oracle.json` / `bridge.json` / `alts.json`, 그리고 Solana `프로그램` 및 프로토콜별 앱 배포 정보.

릴리스 태그에 고정하여 GitHub에서 설치하세요: `npm install github:rome-protocol/rome-registry#v0.2.0`. 게터를 통해 읽습니다 — `getChain`, `getTokens`, `getContracts`, `getOracle`, `getBridge`, `getAlts`, 그리고 `getPrograms(network)` (프로그램 ID는 체인 ID가 아니라 네트워크를 키로 사용합니다). 패키지는 일반 ESM입니다(현재 번들된 TypeScript 타입 없음).

연결하기 전에 알아둘 두 가지:

* **`getTokens()` 는 다음을 반환하지 않습니다 `assetRef`.** 토큰의 래퍼를 찾으려면 해당 토큰의 **mint** (`mintId`)를 기준으로 일치시키세요 — 예를 들어 가스 토큰의 래퍼는 같은 민트를 공유하는 항목입니다.
* **디스크에서 JSON을 읽습니다 (`node:fs`) — 브라우저에서 안전하지 않습니다.** 웹 앱에서는 빌드 시 필요한 값을 정적 JSON 파일로 프로젝션하고 클라이언트에서 이를 import하세요. (정확히 다음이 하는 방식입니다 `create-rome-app` 와 appia가 합니다.)

컨트랙트 주소는 컨트랙트별 버전 목록으로 반환됩니다; 다음의 값이 `status` 인 것을 선택하세요 `live`. [컨트랙트 목록 읽기](/ko/reference/contract-addresses.md#reading-the-contracts-list) 에서 방법을 보여줍니다. 앱이 라이브로 읽지 않는 정보도 다음에 표시됩니다 [컨트랙트 주소](/ko/reference/contract-addresses.md) 참조.

### rome-sdk-ts — 쓰기 경로, 양쪽 레인

GitHub에서 설치: `npm install github:rome-protocol/rome-sdk-ts#v0.4.0`.

`@rome-protocol/sdk` (v0.4.0)은 Rome 쓰기에 필요한 모든 것을 감싸므로 calldata나 수수료를 직접 구현할 필요가 없습니다:

* **`submitRomeTx`** — EVM 레인 쓰기 경로: `eth_estimateGas` 를 기준으로 가스를 산정하고(패딩 적용, 추정이 revert될 때의 대체 상한 포함) EIP-1559 수수료를 제공합니다.
* **`submitRomeTxV1`** — 다음을 위한 동일한 기능: **Solana 지갑** 이 EVM 앱을 구동하는 경우: 호출당 하나의 Solana v1 트랜잭션, 두 번의 지갑 승인. 합성 송신자는 저장 상태에서 아무것도 보유하지 않습니다; `buildFundLeg`/`buildSweepLeg` 은 ERC-20으로 가치를 입출금합니다 (`wUSDC`), **가 아닌** 네이티브 `msg.value`; 호출 주변의 일반 Solana 명령(펀드 레그, 스윕 전 지갑 토큰 계정 생성)은 `submitSolanaInstructionsV1` 를 통해서도 v1 트랜잭션으로 처리됩니다. `submitRomeTxSolanaLane` 은 이전 경로로, 클라이언트에서 레거시 Solana 트랜잭션을 빌드하고 첫 사용 시 새로운 합성 계정을 자동으로 프로비저닝합니다 (`create_pda`).
* **PDA/ATA 파생, CPI `invoke`/`invoke_signed` 인코더, 프리컴파일 바인딩**, 그리고 **`/bridge`** 하위 경로 (`@rome-protocol/sdk/bridge`) — 견적 우선 브리지 클라이언트.

전체 API + 예제: [Rome SDK](/ko/products/rome-sdk.md), 그리고 가이드 [EVM에서 Solana 호출](/ko/developer-guides/call-solana-from-evm.md), [Solana에서 EVM 호출](/ko/developer-guides/call-evm-from-solana.md), 그리고 [듀얼 레인 앱 빌드](/ko/developer-guides/dual-lane-app.md).

### rome-solidity — 컨트랙트 측 툴킷

npm이 아닌 GitHub에서 설치하세요. npm 또는 Hardhat 사용 시: `npm install github:rome-protocol/rome-solidity`. Foundry 사용 시: `forge install rome-protocol/rome-solidity`, 그런 다음 리매핑을 추가하세요 `@rome-protocol/rome-solidity/=lib/rome-solidity/` 다음에 `foundry.toml` (다음 아래 `[profile.default]`, 다음으로 `remappings = [...]`) 그러면 `@rome-protocol/rome-solidity/contracts/interface.sol` 이 해석됩니다. 다음의 패키지명은 `package.json` 인 것을 선택하세요 `@rome-protocol/rome-solidity`, 따라서 같은 import 경로가 둘 모두에서 작동합니다.

컨트랙트가 import하는 항목:

* **`contracts/interface.sol`** — 주소에 바인딩된 프리컴파일 인터페이스: **CPI** `ICrossProgramInvocation` (`0xFF…08`), **헬퍼** `IHelperProgram` (`0xFF…09`, ATA/PDA 생성, SPL 전송, 가스↔lamports), **출금** `IWithdraw` (`0x42…16`), 그리고 **시스템** (`0xFF…07`). 가스 최적화된 **캐시된** 계열도 여기에 있습니다; 컨트랙트는 한 트랙을 일관되게 사용합니다. 전체 주소 표: [컨트랙트 주소](/ko/reference/contract-addresses.md).
* **SPL/ERC-20 래퍼** — `SPL_ERC20` (CPI 기반) 및 `SPL_ERC20_cached` (devnet에서 사용하는 캐시된 트랙); 모든 SPL 민트는 이를 통해 이미 ERC-20입니다.
* **오라클 어댑터** (`contracts/oracle/`) — Pyth/Switchboard 어댑터 `rome-oracle-gateway` 가 배포하며, 다음을 통해 읽습니다 `IAggregatorV3Interface`.
* 다음의 완성된 예제 `contracts/examples/`.

다음의 Solidity SDK 섹션 [Rome SDK](/ko/products/rome-sdk.md) 는 코드의 import 패턴과 프리컴파일 바인딩을 보여줍니다.

## 다음 단계

* [코어 선택하기](/ko/core-concepts/choose-your-core.md) — 어느 쪽에 로직을 둘지.
* [빠른 시작](/ko/getting-started/quickstart.md) — 첫 컨트랙트 배포.
* [create-rome-app](https://github.com/rome-protocol/create-rome-app) — 듀얼 레인 앱 스캐폴딩.
* 각 리포지토리의 `AGENTS.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 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/ko/getting-started/ecosystem.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.
