Modules are standalone contracts that adhere to a specific interface within the IPAccount Centric Model. These modules play a crucial role in taking action on IP to change the data/state of IP.

All actions or workflows can be considers as a module in this architecture.

The protocol provides a set of module as opcodes that allow building complex module (e.g. frontend gateway) based the opcodes.

By being stateless, modules can be seamlessly integrated into the protocol. They can leverage the data and functionality provided by IPAccount to perform various actions on IP, such as creating licenses, setting up royalty distribution, creating relationships, and collecting IP.

The statelessness of modules ensures flexibility and extensibility within the protocol. It allows for the addition of new modules or the enhancement of existing modules without disrupting the overall functionality of the system. Modules can be dynamically enabled or disabled by the Orchestrator, providing fine-grained control over the capabilities and features available to IPAccounts.