> 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/alttbyqat-ala-rome/bloom/compliance.md).

# نموذج الامتثال

يشغّل Bloom إطار Arc الخاص بـ Plume دون تعديل. والامتثال هو **مفروض بواسطة عقد الرمز نفسه** — وليس بواسطة أي فحص خارج السلسلة أو مرشح للمُرتّب أو سياسة للمنصة. وهذه هي الخاصية التي تجعله قابلاً للنقل: فالقواعد تنتقل مع الرمز إلى أي مسار تنفيذ، على كلا مساري المحافظ.

## معمارية الإنفاذ

```
ArcToken._update (في كل عملية نقل/سكّ/حرق)
   └─ RestrictionsRouter (واحد لكل سلسلة، سجلّ لأنواع الوحدات)
        ├─ TRANSFER_RESTRICTION → WhitelistRestrictions (لكل رمز)
        ├─ YIELD_RESTRICTION    → YieldBlacklistRestrictions (لكل رمز)
        └─ GLOBAL_SANCTIONS     → (الخانة موجودة؛ لا توجد وحدة عالمية منشورة)
```

* **WhitelistRestrictions** — قائمة السماح. بينما `transfersAllowed` تكون قيمته false (الوضع المقيّد)، فإن أي تحويل يكون فيه أحد الطرفين خارج القائمة يفشل مع الخطأ المعرّف `TransferRestricted()` (`0xe827105e`). وتعمل عملية التحقق داخل الرمز عند كل حركة رصيد — تحويل بمحفظة EVM، أو تحويل موقّع على Solana، أو بيع في واجهة متجر، أو حركة السيولة الأولية؛ كلها تمر عبر البوابة نفسها. لا توجد طريقة للالتفاف عليها إلا عبر الصلاحيات الإدارية الخاصة بالمُصدِر نفسه.
* **YieldBlacklistRestrictions** — يستبعد العناوين من توزيعات العائد؛ وتبقى حصتهم التناسبية داخل عقد الرمز.
* **GLOBAL\_SANCTIONS** — يدعم الموجّه وحدات على مستوى السلسلة تُطبَّق على كل رمز (مثل قائمة عقوبات). لا يوجد أي منها منشور اليوم؛ وهذه الخانة هي الموضع الطبيعي لوحدة تُدار على مستوى السلسلة.

## نموذج الثقة، بصياغة صريحة

**علامة قائمة السماح هي قرار المُصدِر خارج السلسلة.** تتم إجراءات KYC/AML ضمن عملية المُصدِر (مزوّدوه، قواعده)؛ وتسجّل السلسلة وتفرض *النتيجة* — `isWhitelisted(addr)`. [الانضمام والمراجعة](/ar/alttbyqat-ala-rome/bloom.md) هو الآلية المحيطة بذلك القرار — كيف يتقدّم المستثمر، وكيف يقرر المُصدِر، وأثر التدقيق الذي يتركه — وهي لا تغيّر هذا النموذج: ما يزال القرار بيد المُصدِر، وما يزال الأمر مجرد قيمة منطقية على السلسلة، ولا توجد أي مستندات في أي مكان. هذا هو النموذج نفسه لإطار Arc كما يُستخدم على Plume. وهو عن قصد *ليس* نظام هوية على السلسلة: لا توجد مطالبات هوية، ولا إثباتات على السلسلة، ولا دليل تشفيري على الجهة التي تنتمي إليها أي عنوان. إن المعايير التي تحمل هوية قابلة للتحقق على السلسلة (مثل ERC-3643) تتنازل عن قدر كبير من خفة التحويلات مقابل هذه الخاصية؛ أما Arc فيقايض آليات أخف بثقة يحتفظ بها المُصدِر. ويعرض Bloom هذا بصراحة بدلًا من الإيحاء بأكثر مما هو موجود.

## صلاحيات المُصدِر (على نمط وكيل التحويل)

`ArcToken.initialize` يمنح معالج الإعداد كل دور:

| الدور                                           | الصلاحية                                                                                   |
| ----------------------------------------------- | ------------------------------------------------------------------------------------------ |
| `ADMIN_ROLE` / `DEFAULT_ADMIN_ROLE`             | ربط/استبدال وحدات القيود، وإدارة الأدوار                                                   |
| `MINTER_ROLE` / `BURNER_ROLE`                   | إدارة العرض                                                                                |
| `YIELD_MANAGER_ROLE` / `YIELD_DISTRIBUTOR_ROLE` | تعيين رمز العائد، وتنفيذ التوزيعات                                                         |
| `UPGRADER_ROLE`                                 | ترقية الرمز عبر UUPS (محتفظ بها لدى المُصدِر؛ ويمكن منحها للمصنع لإجراء ترقيات عبر المصنع) |
| وحدة القائمة البيضاء `WHITELIST_ADMIN_ROLE`     | إضافة/إزالة العناوين، وتبديل الوضع المقيّد                                                 |

آثار يجدر معرفتها: **محفظة مستثمر مفقودة** لا يمكن استعادتها إلا عبر إجراء من المُصدِر (إدراج عنوان بديل في قائمة السماح، وإذا لزم الأمر، استخدام صلاحيات السكّ/الحرق/الترقية وفقًا لإجراءاته القانونية — لا يملك Arc أي آلية مضمّنة لنقلٍ قسري). لذلك فإن حفظ مفاتيح المُصدِر جزء من وضع الامتثال؛ ويجعل عارض الأدوار في التطبيق حاملي كل صلاحية مرئيين.

## ما يضيفه Rome — وما يحافظ عليه registerToken

يظهر مستخدمو محافظ Solana على أنهم **عناوين EVM اصطناعية** (مشتقة من المفتاح العام لـ Solana الخاص بهم). بالنسبة إلى طبقة الامتثال، هم عناوين عادية: يضعهم المُصدِر في قائمة السماح، وتتحقق منهم البوابة، ويصل إليهم العائد — قائمة سماح واحدة تمتد عبر عالمي المحافظ. الآثار المتعلقة بالحيازة موضحة في [LANES.md](/ar/alttbyqat-ala-rome/bloom/lanes.md).

لأن Rome يحدّ عدد الحسابات في كل معاملة، فإن الرموز تُنشَر على مراحل وتكتسب حالة المصنع عبر `ArcTokenFactoryV2.registerToken` بدلًا من `createToken`. وتحافظ أدوات الحماية على نموذج الأمان الأصلي بدقة: يجب أن يكون الرمز وكيلًا معياريًا (codehash)، ويجب أن تكون نسخته التنفيذية مدرجة في القائمة البيضاء للمصنع (codehash)، ويجب أن يكون لدى المستدعي الرمز `ADMIN_ROLE`، والتسجيل لمرة واحدة فقط. لا يضعف المسار المرحلي أي شيء من سطح الامتثال.


---

# 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/ar/alttbyqat-ala-rome/bloom/compliance.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.
