Getting started

Get up and running quickly with Govern as a Developer.

The Govern project consists of several sub projects interacting with each other.

Contracts

The contracts are split in two projects: erc3k (the interfaces defining the ERC3000 standard), and govern-core (the Aragon Govern contracts, implementing ERC3000).

Relevant packages:

Govern Console

The Aragon Govern Console is a no-frills, forkable, extensible power user / developer UI tool for interacting with and visualizing low level information about Govern DAOs. Available on console.aragon.org.

The Aragon Govern Console

Relevant packages:

Govern Server and Govern.js

Govern Server acts as a central point, fetching data from different sources (Ethereum, the Govern subgraph, IPFS) and providing it as a unified API to consumers. You can use it through the Govern.js library, or through its GraphQL API. It is powered by The Graph.

Govern Server and how it relates to the other projects

Relevant packages:

Development environment setup

Start by bootstrapping the entire monorepo with yarn:

yarn

This will install all needed dependencies, and link all packages together to make sure you're using the local version of each one. After this, we can go and init our local development environment. Go ahead, and use the following command:

# For this to work, you'll need to have docker installed.
yarn init:dev:env

This will, in order:

  • Compile all contracts, in the correct order

  • Extract all ABIs so the subgraph can reference them properly

  • Init a set of containers with an IPFS node, a local Ethereum node (using Ganache), and a local instance of the subgraph.

With this, you'll have a local development environment where you can deploy the entire Govern infra, and query the subgraph.

Right now, all of this is manual; later down the road a more complete development environment with multiple network options (mainnet fork, and clean local environment with dummy data) will be made to make test runs easier.