dOrgTech / homebase-app

Homebase is a web application that enables users to create and manage/use DAOs on the Tezos blockchain.
https://tezos-homebase.io/
MIT License
45 stars 12 forks source link
blockchain dao homebase tezos

Tezos Homebase

Homebase is a platform designed to let users create and manage DAOs on the Tezos blockchain.

Prerequisites

The following dependencies are required to run homebase-app:

Dependency Version
Node v16.16.0 or above
Yarn v1.22.* or above

Third Party Services

The following third party services are being used by Homebase:

TZKT API

Base URL: https://api.tzkt.io/

Endpoint URL METHOD
Operations /v1/accounts/${address}/operations GET

Taquito Beacon Wallet

Version: 13.0.1

Using Homebase

Creating a DAO

  1. Go to https://tezos-homebase.io/
  2. Click on the Create a DAO button

You will be taken to the DAO Creator, from which you will be asked to choose on the currently supported DAO templates.

  1. Select one of the supported DAO templates
  2. Fill the DAO creation form. You will be asked to fill:

DAO Settings:

Proposals and Voting:

Distribution Settings:

  1. You will then be taken to the review page. From here, click the LAUNCH button on the bottom right corner.
  2. You will be redirected to the Launch screen. Do not close your browser tab until the whole process is complete (you are able to see and track progress by looking at the progress bar of this screen). You will be asked to connect your wallet if you haven't already, and then will be asked for 2 signatures: the first one originates the Metadata Carrier contract and the second one originates the actual DAO contract. When the originations are complete you will see a success message and a Go to my DAO button

Exploring DAOs

Go to the home screen. From there you will see a list of all DAOs created in Homebase. They load in groups of 8 for load balancing (will be improved later on with indexer). There is a searchbar available, however, note that searches done using this bar will only yield DAOs that have been already fetched, it will not trigger additional async requests.

Specific DAOs can be explored by clicking on them in the home screen or by URL:

https://tezos-homebase.io/explorer/dao/${DAO_ADDRESS}

Managing a DAO

All DAOs, regardless of their template, have:

DAO page: contains all general DAO information. Here you can see:

Proposals page: contains all proposals related information and related actions. Here you can see:

Proposal detail page: contains all specific information about a proposal and vote actions. Here you can see:

Proposal creation modal: all proposal creation modals support multiple operations batched in the same proposal and also allow the user to batch upload transactions with a JSON file. This JSON should follow a specific signature, based on the template type of the DAO. See proposal JSON signatures for each template

DAO Template specific pages and details:

Each DAO template has unique pages related to template specific actions. Also, the proposal creation modals are different across templates.

Registry

Registry page: this page contains a table where all registry items can be visualized, and a table that contains a history of all proposals that updated the registry. Each registry item can be clicked to get a read-only modal that displays the item's key and full value, additionally, clicking the settings icon in each row opens a modal to create a proposal to edit the clicked item. This page also contains a New Item button to create a proposal to add a new item.

Proposal types

There are 2 types of registry proposals:

At a contract level, there is no such distinction, but in the UI it exists to let the user create a new key or select a key from a dropdown of existing keys, depending on his intention.

Proposal JSON signature:

{
  "foo": "baz",
  "bar": "qux",
  ...
}

Treasury

Holdings/Treasury page: this page contains a table with all DAO holdings organized by token (currently, only supporting XTZ). And also contains a table with all outbound transfers made from the DAO.

Proposal JSON signature:

[
  {
    "amount": 15,
    "recipient": "tz1RKPcdraL3D3SQitGbvUZmBoqefepxRW1x"
  },
  {
    "amount": 20,
    "recipient": "tz1Zqb3hBBN8wLcJYhADcasi1jZdp2YLdG3L"
  },
  ...
]

Contributing

Developer Docs

Running the project

To run the project:

Glossary