> 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/ru/nachalo-raboty/ecosystem.md).

# Экосистема и репозитории

Публичная поверхность Rome — это набор репозиториев: несколько **основа** пакетов, на которых вы строите решения, генератора каркаса, справочных приложений для обучения и двух сервисов, к которым обращается ваше приложение. Эта страница — карта: что собой представляет каждый репозиторий и как они связаны между собой.

Два соседних раздела отвечают на разные вопросы, и эта страница ссылается на оба, а не повторяет их:

* [Архитектура](/ru/nachalo-raboty/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` — только для чтения, сгенерированная проекция актуальных данных сети (идентификаторы, RPC, адреса, mint-адреса токенов, идентификаторы программ, oracle-потоки данных, ALTs). | Вам нужен реальный факт сети — никогда не задавайте его жестко в коде. |
| [rome-sdk-ts](https://github.com/rome-protocol/rome-sdk-ts)     | `@rome-protocol/sdk` — путь записи на TypeScript: `submitRomeTx` + расчет комиссий, оба канала, кодировщики PDA/ATA + CPI, привязки precompile и `/bridge` клиент.                                      | Вы пишете код приложения или фронтенда.                                |
| [rome-solidity](https://github.com/rome-protocol/rome-solidity) | Интерфейсы precompile для Solidity, обёртки SPL/ERC-20 и адаптеры oracle — набор инструментов на стороне контрактов.                                                                                    | Вы пишете контракты.                                                   |

### Справочные приложения — учитесь на примерах

| Репозиторий                                                             | Что это                                                                                                                             | Обращайтесь к нему, когда                                   |
| ----------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------- |
| [rome-dex](https://github.com/rome-protocol/rome-dex)                   | AMM с двумя каналами — нативный пул Solana с тонким EVM-маршрутизатором.                                                            | Открытие другого канала;  **native-core** пример.           |
| [aerarium](https://github.com/rome-protocol/aerarium)                   | Кредитование с двумя каналами — ядро Comet на Solidity, к которому пользователи Solana обращаются через синтетического отправителя. | Открытие другого канала;  **ядро на Solidity** пример.      |
| [cardo](https://github.com/rome-protocol/cardo)                         | Пользователи EVM управляют dApp'ами Solana (swap/stake/lend/perps) через CPI.                                                       | Подробно разобранное приложение CPI-to-Solana для изучения. |
| [appia](https://github.com/rome-protocol/appia)                         | Cross-VM DeFi, ориентированное на позиции; пользователи получают доступ к нему со своей исходной сети.                              | Это **from-home** приложение.                               |
| [rome-aave-v3-demo](https://github.com/rome-protocol/rome-aave-v3-demo) | Supply/borrow/repay для 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) | Ценовые потоки Solana (Pyth, Switchboard), доступные для EVM через Chainlink `AggregatorV3Interface`. | Вам нужен ценовой поток.                 |

### Scaffold — начните здесь

| Репозиторий                                                         | Что это                                                                                                                                                                     | Обращайтесь к нему, когда   |
| ------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------- |
| [create-rome-app](https://github.com/rome-protocol/create-rome-app) | `npx github:rome-protocol/create-rome-app` — генерирует приложение с двумя каналами, заранее подключённое к registry + SDK, с проверкой обеих веток на пополненном балансе. | Начинаете новое приложение. |

## Как они сочетаются

```mermaid
flowchart TD
    REG["rome-registry — актуальные данные сети"]
    SDK["rome-sdk-ts — запись, CPI, bridge-клиент"]
    SOL["rome-solidity — интерфейсы precompile, обёртки SPL, адаптеры oracle"]
    CRA["create-rome-app — генератор каркаса"]
    APP["ваше приложение — фронтенд + контракты"]
    BAPI["rome-bridge-api — внецепочечный оркестратор, не хранит ключи"]
    OG["rome-oracle-gateway — ценовые потоки Solana"]

    CRA -->|генерирует каркас, предварительно подключает| APP
    REG -->|факты, никогда не хардкодятся| APP
    SDK -->|путь записи и CPI| APP
    SOL -->|импортируется вашими контрактами| 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) то, что импортируют ваши контракты (и форки); oracle-адаптеры, которые `rome-oracle-gateway` развёртывания также находятся там. Эти три компонента независимы друг от друга — выбирайте те, которые нужны вашему приложению.
* [**create-rome-app**](https://github.com/rome-protocol/create-rome-app) связывает первые два компонента для нового приложения, так что новый проект начинает работу уже с чтением registry и записью через SDK.

Справочные приложения — важное исключение: **они появились раньше, чем были выделены отдельные пакеты.** cardo использует пакет registry; appia преобразует registry в статический JSON на этапе сборки; и оба включают собственный путь записи, а не импортируют SDK. Изучайте их, чтобы понять шаблоны, — но **новое** приложение должно начинаться с `create-rome-app` + пакетов, а не с клонирования приложения.

## Переходите к нужному по тому, что вам требуется

* **Актуальный факт сети** (идентификатор, адрес, mint, program id) → [rome-registry](https://github.com/rome-protocol/rome-registry). Никогда не хардкодьте.
* **Пишете код приложения** (запись, вызов CPI, мост) → [rome-sdk-ts](https://github.com/rome-protocol/rome-sdk-ts); см. в [Rome SDK](/ru/produkty/rome-sdk.md).
* **Пишете контракты** → [rome-solidity](https://github.com/rome-protocol/rome-solidity); см. [Развертывание контрактов Solidity](/ru/rukovodstva-dlya-razrabotchikov/deploy-solidity.md).
* **Вызов программы Solana из контракта Solidity** → CPI precompile в [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](/ru/prilozheniya-na-rome/oracle-gateway.md)).
* **Пользователи в другой сети** → [Из исходной сети](/ru/rukovodstva-dlya-razrabotchikov/from-home.md) + [rome-bridge-api](https://github.com/rome-protocol/rome-bridge-api).
* **Определение, на какой стороне находится ваша логика** → [Выберите своё ядро](/ru/klyuchevye-ponyatiya/choose-your-core.md).

## Слой основы в деталях

### rome-registry — актуальные данные сети, публичные по замыслу

Реестр **генерируется** из внутреннего источника Rome: allowlist выдаёт только то, что предназначено для публичного доступа, **подставляет** внутренние endpoints на их публичные эквиваленты и **по умолчанию запрещает** всё остальное — поэтому он изначально безопасен для публичного использования. Он публикует для каждой сети `chain.json` / `tokens.json` / `contracts.json` / `oracle.json` / `bridge.json` / `alts.json`, а также Solana `programs` и развёртывания приложений по каждому протоколу.

Вы читаете это через геттеры — `getChain`, `getTokens`, `getContracts`, `getOracle`, `getBridge`, `getAlts`, а также `getPrograms(network)` (идентификаторы программ привязаны к сети, а не к chain id). Пакет — обычный ESM (на сегодня без встроенных TypeScript-типов).

Две вещи, которые нужно знать перед подключением:

* **`getTokens()` не возвращает `assetRef`.** Чтобы найти обёртку токена, сопоставляйте по его **mint** (`mintId`) — например, обёртка gas token — это запись, у которой совпадает mint.
* **Он читает JSON с диска (`node:fs`) — в браузере использовать нельзя.** В веб-приложении заранее преобразуйте нужные значения в статический JSON-файл на этапе сборки и импортируйте его в клиент. (Именно так делают `create-rome-app` и appia.)

Факты, которые ваше приложение не читает в реальном времени, также доступны в [справочнике Contract Addresses.](/ru/spravochnik/contract-addresses.md) .

### rome-sdk-ts — путь записи для обоих каналов

`@rome-protocol/sdk` (v0.2.1) объединяет всё, что нужно для записи в Rome, чтобы вам не пришлось вручную собирать calldata или комиссии:

* **`submitRomeTx`** — путь записи для EVM-канала: рассчитывает gas на основе `eth_estimateGas` (с запасом, с резервным верхним пределом, если оценка завершается ошибкой) и подставляет комиссии EIP-1559.
* **`submitRomeTxSolanaLane`** — то же самое для **кошелька Phantom/Solana** кошелька, который управляет вашим EVM-приложением. Синтетический отправитель не хранит ничего в состоянии покоя; `buildFundLeg`/`buildSweepLeg` перемещает стоимость внутрь и наружу как ERC-20 (`wUSDC`), **а не** нативный `msg.value`, а новый синтетический адрес автоматически создаётся (`create_pda`) при первом использовании.
* **Вывод PDA/ATA, CPI `invoke`/`invoke_signed` кодировщики, привязки precompile**, а также **`/bridge`** подпуть (`@rome-protocol/sdk/bridge`) — клиент моста с предварительным получением котировки.

Полный API и примеры: [Rome SDK](/ru/produkty/rome-sdk.md), а также руководства [Вызов Solana из EVM](/ru/rukovodstva-dlya-razrabotchikov/call-solana-from-evm.md), [Вызов EVM из Solana](/ru/rukovodstva-dlya-razrabotchikov/call-evm-from-solana.md), а также [Создание приложения с двумя каналами](/ru/rukovodstva-dlya-razrabotchikov/dual-lane-app.md).

### rome-solidity — набор инструментов на стороне контрактов

Что импортируют ваши контракты:

* **`contracts/interface.sol`** — интерфейсы precompile, привязанные к своим адресам: **CPI** `ICrossProgramInvocation` (`0xFF…08`), **Helper** `IHelperProgram` (`0xFF…09`, создание ATA/PDA, переводы SPL, газ↔lamports), **Withdraw** `IWithdraw` (`0x42…16`), а также **System** (`0xFF…07`). Также здесь находится оптимизированное по газу **cached** семейство; контракт последовательно использует один из вариантов. Полная таблица адресов: [справочнике Contract Addresses.](/ru/spravochnik/contract-addresses.md).
* **Обёртки SPL/ERC-20** — `SPL_ERC20` (на основе CPI) и `SPL_ERC20_cached` (кэшированный вариант, используемый в devnet); любой SPL mint уже является ERC-20 через них.
* **Адаптеры oracle** (`contracts/oracle/`) — адаптеры Pyth/Switchboard `rome-oracle-gateway` развёртывания, читаются через `IAggregatorV3Interface`.
* Разобранные примеры в `contracts/examples/`.

Раздел Solidity SDK в [Rome SDK](/ru/produkty/rome-sdk.md) показывает шаблоны импортов и привязки precompile в коде.

## Что дальше

* [Выберите своё ядро](/ru/klyuchevye-ponyatiya/choose-your-core.md) — на какой стороне находится ваша логика.
* [Быстрый старт](/ru/nachalo-raboty/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 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/ru/nachalo-raboty/ecosystem.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.
