> 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/almrja/contract-addresses.md).

# عناوين العقود

الـ precompiles ومعرّفات البرامج وعناوين العقود المنشورة لكل سلسلة.

عناوين العقود المُسبقة مدمجة داخل برنامج Rome EVM وهي متطابقة على كل سلسلة. أما العقود المنشورة لكل سلسلة فهي **مرجعية في** [**سجل Rome**](https://github.com/rome-protocol/rome-registry/tree/main/chains). يسرد الجدول أدناه في Hadrian العقود الرئيسية التي يضعها السجل (الإصدار v0.2.0) على أنها `نشطًا`; السجل هو المصدر الوحيد للحقيقة، ويمكن إعادة نشر عقد بعد كتابة هذه الصفحة. راجع [قراءة قائمة العقود](#reading-the-contracts-list) لمعرفة كيفية اختيار العنوان الحي في الشيفرة.

## العقود المُسبقة (جميع السلاسل)

العقود المُسبقة القياسية لإيثريوم، بدلالات مكافئة للشبكة الرئيسية:

| البرنامج المسبق | العنوان                                      |
| --------------- | -------------------------------------------- |
| ecrecover       | `0x0000000000000000000000000000000000000001` |
| SHA-256         | `0x0000000000000000000000000000000000000002` |
| RIPEMD-160      | `0x0000000000000000000000000000000000000003` |
| الهوية          | `0x0000000000000000000000000000000000000004` |
| modexp          | `0x0000000000000000000000000000000000000005` |
| إضافة BN254     | `0x0000000000000000000000000000000000000006` |
| ضرب BN254       | `0x0000000000000000000000000000000000000007` |
| مزاوجة BN254    | `0x0000000000000000000000000000000000000008` |
| blake2f         | `0x0000000000000000000000000000000000000009` |

العقود المُسبقة غير الخاصة بـ EVM في Rome، للوصول إلى 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، الغاز↔lamports |
| سحب             | `0x4200000000000000000000000000000000000016` | `IWithdraw`               | سحب SOL/SPL من EVM إلى Solana              |
| SystemCached    | `0xFF00000000000000000000000000000000000004` | `ISystemCached`           | مساعدات النظام على المسار المخزَّن         |
| SplCached       | `0xFF00000000000000000000000000000000000005` | `ISplCached`              | عمليات SPL على المسار المخزَّن             |
| ASplCached      | `0xFF00000000000000000000000000000000000006` | `IAssociatedSplCached`    | عمليات ATA على المسار المخزَّن             |
| WithdrawCached  | `0xFF0000000000000000000000000000000000000b` | `IWithdrawCached`         | السحب على المسار المخزَّن                  |

يستخدم العقد مسارًا واحدًا — قديم (`SplCached` غير مُفعَّل) أو مخزَّن — بشكل متّسق؛ ولا يُمزج بينهما داخل استدعاء واحد.

## معرّفات البرامج

برامج rome-evm (برنامج Solana الذي يشغّل EVM)، بحسب شبكة Rome:

| الشبكة            | معرّف البرنامج                                |
| ----------------- | --------------------------------------------- |
| Hadrian (testnet) | `RPTWwELXAY4KC9ZPHhaxp7Sq1hHtU3HNEgLbSegCcWf` |
| Rubicon (mainnet) | `RomePq9X3iAoTr813HR7uRarafFDUJty6GdiEceYpzX` |

برامج Solana المعروفة (كما هي في أي مكان على Solana):

| برنامج                  | المعرّف                                        |
| ----------------------- | ---------------------------------------------- |
| SPL Token               | `TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA`  |
| SPL Token-2022          | `TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb`  |
| Associated Token        | `ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL` |
| Program System          | `11111111111111111111111111111111`             |
| Metaplex Token Metadata | `metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s`  |

## Rome ZK EVM على شبكة devnet في Solana

تتشارك سلاسل ZK EVM المُدارة من قبل المشغل على شبكة devnet في Solana هذه البرامج v0.3.0. إن [قائمة البرامج المُوسومة](https://github.com/rome-protocol/solana-zk-evm/blob/v0.3.0/deploy/rollup/programs.devnet.json) هي المصدر لهذه المعرّفات.

| برنامج        | المعرّف                                        |
| ------------- | ---------------------------------------------- |
| zk-inbox      | `28948c2Qt1QtG2XJA823ytzCfj7U5cNNm3FuM2KoXsAa` |
| zk-settlement | `8anSjJZu5vgfNbESPLoKudVBNEraDZASwKJnkDLTCaGo` |
| veritas       | `2cLGd9FKC7TiZrEHCvpw291AwXNcGgP9nDT4W3PHLe5k` |
| zk-bridge     | `27TbMDUyVynpFpqeKygpUMcDzWKHfW4k9aRN5yCysLEQ` |

صورة العقدة: `ghcr.io/rome-protocol/rome-zk-evm:v0.3.0`.

## العقود المنشورة — Hadrian (testnet, 200010)

العقود الرئيسية، مأخوذة من `نشطًا` مدخلات [السجل](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 (mainnet, 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"`. لدى بعض الإدخالات (عقود Aave الخاصة بـ Hadrian) أكثر من نسخة 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`.

## البيئات

| البيئة            | معرّف السلسلة | RPC                                | الحالة |
| ----------------- | ------------- | ---------------------------------- | ------ |
| Rubicon (mainnet) | `7531`        | `rubicon.mainnet.romeprotocol.xyz` | مباشر  |
| Hadrian (testnet) | `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/ar/almrja/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.
