Skip to main content

Publication of your Plugin into Aragon OSx

How to publish a plugin into Aragon's plugin registry

Once you've deployed your Plugin Setup contract, you will be able to publish your plugin into Aragon's plugin registry so any Aragon DAO can install it.

1. Make sure your plugin is deployed in the right network

Make sure your Plugin Setup contract is deployed in your network of choice (you can find all of the networks we support here). You will need the address of your Plugin Setup contract to be able to publish the plugin into the protocol.

2. Publishing your plugin

Every plugin in Aragon can have future versions, so when publishing a plugin to the Aragon protocol, we're really creating a PluginRepo instance for each plugin, which will contain all of the plugin's versions.

To publish a plugin, we will use Aragon's PluginRepoFactory contract - in charge of creating PluginRepo instances containing your plugin's versions. To do this, we will call its createPluginRepoWithFirstVersion function, which will create the first version of a plugin and add that new PluginRepo address into the PluginRepoRegistry containing all available plugins within the protocol.

You can find all of the addresses of PluginRepoFactory contracts by network here.

To create more versions of your plugin in the future, you'll call on the createVersion function from the PluginRepo instance of your plugin. When you publish your plugin, you'll be able to find the address of your plugin's PluginRepo instance within the transaction data.

3. Publishing subsequent builds

When publishing subsequent builds, you want to use the createVersion function in the PluginRepo contract (check out the function's source code here).

To deploy your plugin, follow the steps in the osx-plugin-template-hardhat README.md.

© 2024