OSx

The Contracts Behind the Protocol

The Aragon OSx protocol is the foundation layer of the Aragon stack. It lets users create and manage onchain organizational accounts that can hold assets, execute actions, and manage permissions.

The Aragon OSx protocol provides three primitives for users to build their onchain organization:

  • DAO.sol contract: the account and identity of the organization. It holds assets, executes actions, and manages permissions over itself, plugins, and other contracts.

  • Permissions: define which accounts, contracts, or plugins can perform specific actions on a DAO contract, plugin, or framework contract.

  • Plugins: permissioned contracts that extend what an OSx-based organization can do. They are managed in onchain plugin repositories and can be installed, updated, or uninstalled as the organization evolves.

Through permissions and plugins, builders define who or what can act on behalf of an organization, and which capabilities can be added, changed, or removed over time.

Developers can implement plugins by inheriting from one of our plugin base classes, writing a plugin setup that declares the required permissions, and publishing the plugin in an onchain plugin repository.

To facilitate this, Aragon OSx runs a set of framework contracts:

  • DAO Factory and registry contract: create and register DAO contracts for OSx-based organizations.

  • Plugin repo factory and registry contract: create and version plugin repositories.

  • Plugin Setup Processor contract: installs, updates, and uninstalls plugins from a plugin repository, including the permission changes required by each setup.

The Aragon OSx Framework

The Aragon OSx protocol is a smart contract framework for onchain organizations, structured as follows:

aragon os framework overview.drawio

Overview of the Aragon OSx protocol and its structural components: the Framework DAO governs OSx framework infrastructure, while the code layer includes the framework and core contracts built on external libraries and services.

Code Layer

The foundation of the Aragon OSx protocol is the code layer constituted by the framework and core related contracts. The Core contracts provide the core primitives used by OSx-based organizations and implemented by developers building on the framework. The Framework contracts provide the infrastructure to create and manage OSx-based organizations, plugins, and plugin repositories. Both are built on top of external dependencies, most notably the OpenZeppelin and the Ethereum Name Service (ENS) contracts.

The core and framework contracts are free to use, and no additional fees are charged.

OSx Framework Governance

The Aragon OSx Framework DAO governs OSx framework infrastructure. This is governance of the OSx protocol itself, not the governance model used by every OSx-based organization.

The next sections explain the framework and core contracts that OSx-based organizations use.

Getting Started

Users interact with the Aragon OSx protocol through the Aragon App, Aragon SDK or directly calling on the protocol contracts - as well as through any third-party projects built using our stack.

To add the contracts to your project, open a terminal in the root folder of your Solidity project and run:

yarn add @aragon/osx

Then import the OSx contracts you need from the package. For complete, version-specific import paths and contract APIs, see the API Core and API Framework references.

Extend your organization with plugins

OSx plugins extend an organization with scoped, permissioned functionality. A plugin can add governance, membership, execution workflows, integrations, or other logic, and can be installed, updated, or uninstalled as the organization evolves.

Learn how to build and publish plugins in the Guide: Developing a Plugin.

Walkthrough

This documentation is divided into conceptual and practical sections as well as the reference guide.