# Global Registry for Project Deployed Smart Contracts

## Introduction

A **Global Registry Contract** is a central contract that tracks all deployed contracts within a project. It ensures secure interactions between contracts while enforcing structured access control. Every deployed contract should store the registry’s address and use it to validate interactions.

### Why Use a Global Registry?

* ✅ **Efficient Tracking:** Maintain a single source of truth for deployed contracts.
* 🔐 **Access Control:** Securely manage contract interactions.
* 📂 **Role-Based Grouping:** Aggregate contract instances into structured roles.
* 📉 **Eliminate Redundancy:** Reduce storage costs by keeping addresses in a single registry instead of multiple contracts.

## Benefits

### 🔑 Security & Access Control

* Contracts can verify interactions based on registered roles.
* Reduces unauthorized access and contract misuse.

### 🛠️ Storage Efficiency

* Prevents multiple contracts from storing redundant addresses.
* Saves gas costs by centralizing contract reference data.

## Design Considerations

### 📌 Registry Reference in Every Contract

Each deployed contract should store the **registry address** for validation.

### 🗂️ Key-Value Storage

* Contracts are stored using a **key** (contract name + unique identifier) and a **value** (contract address).

### 👥 Role-Based Access Control

* The registry groups contract instances under **roles**, allowing multiple instances of the same contract to interact securely.

### 👨‍💼 Ownership & Management

* Define **who** can register contracts and assign roles (admin, DAO governance, etc.).


---

# Agent Instructions: 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:

```
GET https://docs.optimumsec.xyz/design/global-registry.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
