Skip to content

PluginRepo Registry

The PluginRepoRegistry is the canonical on-chain list of every published plugin repo, and it's load-bearing at install time: the PSP checks entries(repo) before it will install from a repo, so a plugin is only installable if its repo is registered here. Registration is the protocol's trust boundary for plugins.

What it holds and enables

The PluginRepoFactory calls registerPluginRepo(subdomain, repo) when a repo is created, which:

  • records the repo so entries(repo) reads true, exactly what the PSP checks,
  • emits PluginRepoRegistered(subdomain, repo) for explorers and indexers, and
  • optionally assigns a <name>.plugin.dao.eth ENS subdomain.

Registration is permissioned (REGISTER_PLUGIN_REPO_PERMISSION_ID), held only by the PluginRepoFactory, so nothing but the official factory can make a repo installable. Like the DAO Registry, it's built on the shared InterfaceBasedRegistry pattern: it admits only IPluginRepo contracts, and none twice.

Keep in mind

  • Registered = trusted = installable. The PSP's entries(repo) gate is what counts: an unregistered repo can't be installed from, no matter how valid its contracts are.
  • The subdomain requirement is version-dependent. Through v1.3.0 a name was required (an empty one reverts EmptyPluginRepoSubdomain); v1.4.0 made it optional. See the subdomain rules.

See also