Skip to content

Creating a Mandate

This guide provides instructions for developers on how to create and implement their own custom mandates for the Powers protocol.

Before creating your own mandate, it is essential to understand the fundamental logic of how a mandate works within the Powers protocol.

  • Mandate.sol Contract: This is the base implementation for all mandates. It provides the core functionality and interface that your custom mandate will need to inherit. You can find the source code in the solidity/src/Mandate.sol file.
  • Mandate Documentation: For a detailed explanation of the Mandate.sol contract, its functions, and best practices, please refer to the The Mandate.sol Contract documentation page.

The best way to learn how to implement a specific mandate is by studying the existing examples. The solidity/src/mandates directory in the repository contains various implementations that you can use as a reference.

These examples demonstrate how to implement different types of conditions and degrees of freedom, from simple role-based execution to complex voting mechanisms.