Skip to Content
General ConceptsZodiac Introduction

Zodiac Introduction

Zodiac is a composable design framework for DAOs, built on an open standard. It provides a collection of tools that enable flexible, modular control of programmable blockchain accounts. The framework is unopinionated — it defines interfaces rather than prescribing specific governance patterns, so different tools can be freely combined.

Building Blocks

Avatars

An avatar is a programmable Ethereum account that holds assets and executes transactions. The most common example is a Safe multisig. Avatars implement the IAvatar interface, making them compatible with any Zodiac module or modifier.

Modules

A module is a contract that implements decision-making logic and is enabled on an avatar. Modules translate governance decisions into on-chain actions — for example, a module might allow on-chain voting results to trigger transactions on the avatar.

Modifiers

A modifier sits between a module and an avatar, altering how the module’s transactions reach the avatar. Modifiers themselves expose the IAvatar interface, so modules interact with them as if they were the avatar directly. This makes modifiers composable: they can be chained together, each adding its own constraints before forwarding calls to the next.

The Roles Modifier is an example of this pattern. It interposes a permission layer: only transactions that match the permissions granted to the caller’s role are forwarded to the avatar.

Key Properties of the Roles Modifier

Every Roles Modifier instance is configured with three addresses:

  • owner — The address that can configure roles, permissions, and memberships. Typically a multisig or governance contract.
  • avatar — The smart account (e.g., a Safe) whose assets are controlled. Calls that pass permission checks are executed on behalf of this account.
  • target — The contract that calls are forwarded to. Usually target === avatar, but they can differ when chaining the Roles Modifier with other Zodiac modifiers.
Last updated on