> 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/ar/albda/ecosystem.md).

# النظام البيئي والمستودعات

كل مستودع Rome عام، وما هو، وكيف يتكاملون — الخريطة للتنقّل في السطح.

الواجهة العامة لـ Rome هي مجموعة من المستودعات: بضعة **الأساس** حزم تبني عليها، وأداة scaffolding، وتطبيقات مرجعية تتعلم منها، وخدمتان يستدعيهما تطبيقك. هذه الصفحة هي الخريطة — ما هو كل مستودع وكيف تتلاءم معًا.

المستودعان المجاوران يجيبان عن سؤالين مختلفين، وهذه الصفحة تربط إليهما كليهما بدلًا من تكرارهما:

* [العمارة](/ar/albda/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، أو مشروع من الصفر، أو من-home) إلى المثال الأقرب لحالتك.

هذه الصفحة هي المستوى الوسيط: الـ **السطح الكامل** وكيف تتصل الأجزاء معًا.

## السطح في لمحة

### الأساس — ابنِ على هذه

| المستودع                                                        | ما هو                                                                                                                                                               | ارجع إليه عندما                                              |
| --------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------ |
| [rome-registry](https://github.com/rome-protocol/rome-registry) | `@rome-protocol/registry` — إسقاط مُولَّد للقراءة فقط لحقائق السلسلة الحية (المعرّفات، وRPC، والعناوين، وأصول الرموز، ومعرّفات البرامج، وتغذيات الأوراكل، و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، ومحوّلات الأوراكل — مجموعة أدوات جانب العقود.                                                              | أنت تكتب عقودًا.                                             |

الـ `@rome-protocol/…` الأسماء أعلاه هي أسماء حزم، لكن هذه الحزم غير منشورة على npm. ثبّتها من GitHub (الأوامر موجودة في كل قسم تحت [طبقة الأساس عن قرب](#the-foundation-layer-up-close)); وتبقى مسارات الاستيراد في كودك كما هي.

### تجميعات Rome ZK EVM

| المستودع                                                        | ما هو                                               | ارجع إليه عندما                             |
| --------------------------------------------------------------- | --------------------------------------------------- | ------------------------------------------- |
| [solana-zk-evm](https://github.com/rome-protocol/solana-zk-evm) | برامج ZK rollup، وتوثيق العقدة، والمُثبت، والمشغّل. | أنت تشغّل سلسلة EVM تُسوّى على Solana.      |
| [rome-zk-guest](https://github.com/rome-protocol/rome-zk-guest) | شفرة guest الدُفعية المبنية لجنيسيس كل سلسلة.       | أنت تبني guest وتطلب مفتاح التحقق الخاص به. |

### Canton ZK EVM

| المستودع                                                                                                                | ما هو                                                                                     | ارجع إليه عندما                                                                                                  |
| ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
| [canton-zk-evm](https://github.com/rome-protocol/canton-zk-evm/blob/a84e84e439a5cc669c0ae61facf7c8c995d9d564/README.md) | Ostia، إصدار مبكر من Canton zkEVM يسوّي كتل EVM المُثبتة وإجراءات Canton في معاملة واحدة. | أنت تشغّل العرض المحلي أو تدرس بوابته وفحوصات الإثبات. راجع [Canton ZK EVM](/ar/canton-zk-evm/canton-zk-evm.md). |

### تطبيقات مرجعية — تعلّم بالمثال

| المستودع                                                                | ما هو                                                                                   | ارجع إليه عندما                                          |
| ----------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | -------------------------------------------------------- |
| [rome-dex](https://github.com/rome-protocol/rome-dex)                   | صانع سوق آلي AMM ثنائي المسار — مجمع Solana أصلي مع موجّه EVM خفيف.                     | فتح المسار الآخر؛ مثال **native-core** للنواة الأصلية.   |
| [aerarium](https://github.com/rome-protocol/aerarium)                   | إقراض ثنائي المسار — نواة Solidity Comet يصل إليها مستخدمو Solana عبر مرسل اصطناعي.     | فتح المسار الآخر؛ مثال **نواة Solidity** للنواة الأصلية. |
| [cardo](https://github.com/rome-protocol/cardo)                         | مستخدمو EVM يشغّلون تطبيقات Solana اللامركزية (swap/stake/lend/perps) عبر CPI.          | تطبيق مُنفَّذ من CPI إلى Solana للدراسة.                 |
| [appia](https://github.com/rome-protocol/appia)                         | DeFi عبر الآلات الافتراضية مع الأولوية للمراكز؛ يصل إليه المستخدمون من سلسلتهم الأصلية. | تطبيق **من-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)         | منسّق خارج السلسلة + ممول للرسوم للجسر على السلسلة. لا يحتفظ بأي مفاتيح.                        | تمويل محفظة، أو مسار من-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` — ينشئ هيكل تطبيق ثنائي المسار موصولًا مسبقًا بالسجل + SDK، مع فحص ممول لكلا المسارين. | بدء تطبيق جديد. |

## كيف تتكوّن

```mermaid
flowchart TD
    REG["rome-registry — حقائق السلسلة الحية"]
    SDK["rome-sdk-ts — الكتابة، CPI، عميل الجسر"]
    SOL["rome-solidity — واجهات precompile، وواجهات تغليف SPL، ومحوّلات الأوراكل"]
    CRA["create-rome-app — أداة scaffolding"]
    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
```

العمود الفقري هو ثلاثة أُسس وأداة scaffolding:

* [**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) هو ما تستورده عقودك (والتفرعات)؛ ومحوّلات الأوراكل التي `rome-oracle-gateway` يتم نشرها هناك أيضًا. الثلاثة مستقلون عن بعضهم — اختر ما يحتاجه تطبيقك.
* [**create-rome-app**](https://github.com/rome-protocol/create-rome-app) يربط الأولين معًا من أجل تطبيق جديد، بحيث يبدأ المشروع الجديد بقراءة السجل والكتابة عبر SDK بالفعل.

التطبيقات المرجعية هي الاستثناء الذي يستحق معرفته: **فهي تسبق الحزم المستخرجة.** يستهلك cardo حزمة السجل؛ ويحوّل appia السجل إلى JSON ثابت عند وقت البناء؛ وكلاهما يضمّن مسار الكتابة الخاص به بدلًا من استيراد SDK. اقرأها لتتعلم الأنماط — لكن **جديد** يجب أن يبدأ التطبيق من `create-rome-app` + الحزم، لا بنسخ تطبيق.

## تنقل بحسب ما تحتاجه

* **حقيقة حية من السلسلة** (معرّف، عنوان، mint، معرّف البرنامج) → [rome-registry](https://github.com/rome-protocol/rome-registry). لا تُشفّرها أبدًا.
* **كتابة كود التطبيق** (كتابة، استدعاء CPI، جسر) → [rome-sdk-ts](https://github.com/rome-protocol/rome-sdk-ts)؛ راجع في [Rome SDK](/ar/almntjat/rome-sdk.md).
* **كتابة العقود** → [rome-solidity](https://github.com/rome-protocol/rome-solidity)؛ راجع [نشر عقود Solidity](/ar/adlh-almtw-ryn/deploy-solidity.md).
* **استدعاء برنامج Solana من عقد Solidity** → precompile الخاص بـ CPI في [rome-solidity](https://github.com/rome-protocol/rome-solidity) (`interface.sol`); [cardo](https://github.com/rome-protocol/cardo) هو مثال مُنفذ.
* **مثال عملي** لـ AMM أو إقراض أو CPI أو تطبيق من-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](/ar/alttbyqat-ala-rome/oracle-gateway.md)).
* **مستخدمون على سلسلة أخرى** → [من المنزل](/ar/adlh-almtw-ryn/from-home.md) + [rome-bridge-api](https://github.com/rome-protocol/rome-bridge-api).
* **تحديد أي جانب يحتفظ بمنطقك** → [اختر نواتك](/ar/almfahym-alasasyh/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`. تقرأه عبر getters — `getChain`, `getTokens`, `getContracts`, `getOracle`, `getBridge`, `getAlts`، و `getPrograms(network)` (معرّفات البرامج مفهرسة حسب الشبكة، لا حسب معرّف السلسلة). الحزمة ESM عادية (من دون أنواع TypeScript مضمّنة اليوم).

شيئان يجب معرفتهما قبل دمجه:

* **`getTokens()` لا تُرجع `assetRef`.** للعثور على غلاف الرمز، طابِق على **mint** (`mintId`) — مثلًا، غلاف رمز الغاز هو السجل الذي يشارك mint نفسه.
* **يقرأ JSON من القرص (`node:fs`) — وليس آمنًا للمتصفح.** في تطبيق ويب، اسقِط القيم التي تحتاجها إلى ملف JSON ثابت عند وقت البناء واستورده في العميل. (هذا بالضبط ما `create-rome-app` يفعله و appia.)

تعود عناوين العقود على شكل قائمة إصدارات لكل عقد؛ اختر الإصدار الذي يكون `حالته` هو `نشطًا`. [قراءة قائمة العقود](/ar/almrja/contract-addresses.md#reading-the-contracts-list) يوضح ذلك. الحقائق التي لا يقرأها تطبيقك مباشرة تظهر أيضًا في [عناوين العقود](/ar/almrja/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` (مع padding، ومع حدٍّ احتياطي عند فشل التقدير) ويزوّد برسوم 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` ، ومُرمِّزات، وروابط precompile**، و **`/bridge`** مسار فرعي (`@rome-protocol/sdk/bridge`) — عميل جسر يعتمد على التسعير أولًا.

واجهة API كاملة + أمثلة: [Rome SDK](/ar/almntjat/rome-sdk.md)، والأدلة [استدعِ Solana من EVM](/ar/adlh-almtw-ryn/call-solana-from-evm.md), [استدعِ EVM من Solana](/ar/adlh-almtw-ryn/call-evm-from-solana.md)، و [ابنِ تطبيقًا ثنائي المسار](/ar/adlh-almtw-ryn/dual-lane-app.md).

### rome-solidity — مجموعة أدوات جانب العقود

ثبّته من GitHub، وليس من npm. مع 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`، لذا يعمل مسار الاستيراد نفسه مع كليهما.

ما تستورده عقودك:

* **`contracts/interface.sol`** — واجهات precompile المرتبطة بعناوينها: **CPI** `ICrossProgramInvocation` (`0xFF…08`), **المساعد** `IHelperProgram` (`0xFF…09`، وإنشاء ATA/PDA، وتحويلات SPL، وغاز↔lamports)، **سحب** `IWithdraw` (`0x42…16`، و **النظام** (`0xFF…07`). وفئة مُحسّنة للغاز **مخزّنة** موجودة أيضًا هنا؛ ويستخدم العقد مسارًا واحدًا باستمرار. جدول العناوين الكامل: [عناوين العقود](/ar/almrja/contract-addresses.md).
* **واجهات تغليف SPL/ERC-20** — `SPL_ERC20` (المعتمدة على CPI) و `SPL_ERC20_cached` (المسار المخزّن، المستخدم على devnet)؛ أي mint من SPL هو بالفعل ERC-20 عبر هذه.
* **محوّلات الأوراكل** (`contracts/oracle/`) — محوّلات Pyth/Switchboard `rome-oracle-gateway` المنشورة، تُقرأ عبر `IAggregatorV3Interface`.
* أمثلة عملية في `contracts/examples/`.

قسم Solidity SDK في [Rome SDK](/ar/almntjat/rome-sdk.md) يوضح أنماط الاستيراد وروابط precompile في الكود.

## ما التالي

* [اختر نواتك](/ar/almfahym-alasasyh/choose-your-core.md) — أي جانب يحتفظ بمنطقك.
* [البدء السريع](/ar/albda/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/ar/albda/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.
