# Agora Agora is a set of Plutus scripts that compose together to form a governance system. ### What is Agora Goals: - Agora aims to reduce duplication in Liqwid and LiqwidX 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 [plutus-extra](https://github.com/Liqwid-Labs/plutus-extra/). ## Project setup An up to date version of the [Nix package manager](nixos.org) (>=2.3) is required to build this project. For information on how to install, see the [NixOS website](https://nixos.org/download.html). Important: see also [this section](https://github.com/input-output-hk/plutus#nix-advice) 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](https://github.com/nix-community/nix-direnv). ## Documentation Documentation for Agora may be found in [docs](./docs). ## Road-map ### v1 - [ ] Governor - [ ] Treasury - [ ] Staking pool - [ ] Proposals - [ ] Effects ### v2 - [ ] Rewards distribution - [ ] Escrow staking pool solution ### Beyond - [ ] ... # Governance concepts This section seeks to introduce to the reader the concept of governance systems on Cardano and acquaint them with the core components of a generic governance system. ## Simple questions, simple answers ### Q: What's a 'governance'? A: A _governance system_ is a component of a Cardano system, that allows for its community to issue and vote on proposals. ### Q: What can be proposed? A: That depends on the Cardano protocol in-question. An example for a proposal could suggest that funds be released from a community treasury. Another might propose an alteration to some parameter in the wider-system. ### Q: Who can vote? A: The right to vote is conferred by the _staking_ of some designated _governance token_ (GT). If one owns the relevant token, they may 'stake' some of it to vote in favour of, or opposition to, some proposal. ## Overview of components