> For the complete documentation index, see [llms.txt](https://docs.optimumsec.xyz/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.optimumsec.xyz/design/global-registry.md).

# 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
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.optimumsec.xyz/design/global-registry.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.
