Page.Registry is a special contract that combines the variety of smart contracts of the ecosystem into a single integral entity and provides the modular development of the ecosystem.
Page.Registry is responsible for:
Managing roles existing in the system.
Managing interactions between the contracts in the system that allow modular expansion of the system. For example, when creating Page.NFT, Page.NFT does not call Page.Token and Page.SoulBound methods directly, it instead calls Page.Registry contract method, which in turn sends requests to the registered contracts (Page.Token and Page.SoulBound) to inform them about the created NFT and so that they can perform the necessary actions.
Modular management of various connected contracts. For example, if necessary, Page.DAO can replace Page.SoulBound for an offchain implementation based on the analysis of the Events generated by contracts.
Storing supported voting modules and settings for multiple contracts. For example, Page.Registry can store information about supported types of moderation for communities, where each type of moderation is a separate mini-contract that can perform certain actions, allowing communities to choose from such supported types of moderation. Similarly, Page.Registry stores the implementation of various voting methods, as well as Page.DAO itself chooses from the available methods the one that seems the most optimal to the participants.
Storing and setting many global system settings (in a flexible form), such as default commissions, default community settings, etc.
Page.DAO is responsible for managing Page.Registry - registration and inclusion of individual supported modules in it. Each of the blockchains supported in the system has its own version of Page.Registry.