Homebase is a platform designed to let users create and manage DAOs on the Tezos blockchain.
The following dependencies are required to run homebase-app:
Dependency | Version |
---|---|
Node | v16.16.0 or above |
Yarn | v1.22.* or above |
The following third party services are being used by Homebase:
Endpoint | URL | METHOD |
---|---|---|
Operations | /v1/accounts/${address}/operations | GET |
Create a DAO
buttonYou will be taken to the DAO Creator, from which you will be asked to choose on the currently supported DAO templates.
DAO Settings:
Proposals and Voting:
Voting period duration
Required stake to propose
: required amount of DAO tokens to stake at the time of proposing. Currently follows the formula: b + proposalSize
. Where:
Returned stake after proposal rejection
Transfer amounts
(Treasury only): maximum and minimum amounts that can be transferred in a treasury proposal transfer. Currently only supports XTZ
Quorum threshold
: currently a natural number representing the total amount of votes required for a proposal to pass. Each token staked in a vote operation represents a vote. Therefore, with a quorum threshold of 500, a vote that stakes 500 tokens would make the proposal pass.Maximum proposal size
Distribution Settings:
TokenHolders
: initial token holder addresses and their initial balances. At least 1 is required.Administrator
LAUNCH
button on the bottom right corner.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
buttonGo 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}
All DAOs, regardless of their template, have:
DAO page: contains all general DAO information. Here you can see:
Execute
buttonProposals page: contains all proposals related information and related actions. Here you can see:
New Proposal
button and creation modalExecute
buttonProposal 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
Each DAO template has unique pages related to template specific actions. Also, the proposal creation modals are different across templates.
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",
...
}
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"
},
...
]
To run the project:
git clone git@github.com:dOrgTech/homebase-app.git
cd homebase-app
yarn
.env
file in the root, based on the .env.example
provided in the code and ask one of the maintainers for the Pinata API Keyyarn dev
Execute (Flush): execute all passed proposals from periods previous to the last one. If the proposal is rejected or did not meet the quorum threshold, then the Execute operation removes it from the proposals list.
Administrator: address with permissions to mint, burn and transfer tokens in the DAO without a proposal. It is configured by the DAO creator and can be another contract (like a multisig)
Proposal size: metric that describes the size, in packed bytes, of a proposal's metadata. Therefore, the bigger the proposal arguments are (more transfers or more registry updates), the bigger the proposal size is.