Agora is a set of Plutus scripts that compose together to form a governance system.
Goals:
- Agora aims to reduce duplication in Liqwid and XplorerDAO and to serve as a one-size-fits-all governance library for projects on the Cardano blockchain.
- Agora aims to be modular and flexible for specific needs but presents an opinionated architecture.
Non-goals:
- Agora is not a DAO. It doesn't have tokenomics or even a token. It is simply a library for governance.
- Agora doesn't aim to provide any primitive tools for Plutus that are not governance-specific. For this, see liqwid-plutarch-extra.
An up to date version of the Nix package manager (>=2.3) is required to build this project. For information on how to install, see the NixOS website. Important: see also this section on binary caches.
Open a development shell with nix develop
and build the project with cabal build
. Those pained by the need to remember to enter a Nix shell may consider using nix-direnv.
To use scripts in a frontend, you can use the agora-scripts
executable which allows you to query them on-demand.
The CTL repo agora-offchain
already has the setup prepared for this feature.
In order to run the server, simply run the following command:
cabal run agora-scripts -- --enable-cors-middleware
Documentation for Agora is hosted on Notion. You can find the specs here.
If you are a protocol wanting to use Agora, read Using Agora.
Please read CONTRIBUTING.md. Additionally, please follow the Git policy when contributing to this project.
- Governor
- Treasury
- Stakes
- Proposals
- Effects
- Flexible scripts using TxT pattern integrated with governance
- Different voting mechanisms
You can find help, more information and ongoing discusion about the project here:
- The Agora & Liqwid Libs Discord - Most Agora discussion happens here.
- Specs, issues, and project-management-related information is tracked on Notion