Plugin
A plugin is a smart contract installed to add a capability to an account, such as voting, capital distribution, or cross-chain execution. The account's permission system can authorize callers to use the plugin's functions and authorize the plugin to act on the account or other components. Its code and configured permissions determine what it does.
Governance semantics of plugins
A governance plugin is a type of plugin that implements governance rules for an account. It can resolve participants' preferences as a governor, or manage the decision state of the bodies participating in a governance process.
Proposal-based governance plugins implement IProposal, which supplies a shared interface for creating proposals, reporting outcomes, and executing approved actions. Each plugin applies its own governance rules. Execution follows its configured target and permissions; a plugin authorized to execute on the account can pass approved actions to DAO.execute.
A standalone Multisig, Token Voting, or Lock to Vote plugin acts as both a governance process and a body. It defines participation and approval within that body and carries proposals from creation through decision to account execution.
In staged governance, the governance process manages the decision state of its participating bodies. The Staged Proposal Processor acts as the process, while governance plugins such as Multisig and Token Voting act as its bodies. The process applies its stage rules to those bodies' decisions and carries the resulting proposal to account execution.
The governance designer configures plugins and composes their roles into processes, including staged arrangements built with the Aragon team. Governance also includes other forms of participation: Gauge voting collects voting-power allocations across destinations during an epoch.
Execution configuration
A governance plugin's target configuration determines which executor it uses to execute its actions. Setup establishes this configuration for the plugin's role as a process or body.
Deployment and support
Installation configures a plugin and its permissions through the OSx plugin framework and permission system. The plugin catalogue lists concrete implementations.
Plugin compatibility distinguishes plugins users can set up and use themselves, plugins deployed by Aragon, and unsupported plugins. For capabilities whose deployment requires the team, see Aragon-deployed plugins.
Identifying a plugin
An installed plugin is identified by its contract address on the account's network. The app's metadata input gives supported plugins a readable name, description, and resources.
One installed plugin owns one metadata record. When it acts as both a process and a body, the same identity appears in both contexts: its proposals belong to the process, while its members belong to the body.
Plugins in the app
Plugin visibility is configured for an installed plugin. App CMS can hide that plugin from the relevant lists, including its presentation as a process or body.
Plugin compatibility also determines which installed plugins appear in the app's lists.
Last updated on