Giter Site home page Giter Site logo

bohendo / debtor-dao Goto Github PK

View Code? Open in Web Editor NEW
3.0 3.0 3.0 4.39 MB

#EthBerlin https://github.com/ethberlin-hackathon/ETHBerlin-Teambuilding/issues/38

JavaScript 60.58% TypeScript 18.83% HTML 12.11% Makefile 2.63% Shell 5.09% Dockerfile 0.77%

debtor-dao's Introduction

Motivation

We're inspired by the idea of a debtor DAO. Traditional corporations have the ability to raise funds via debt as well as equity and we'd like to enable this option in the world of DAOs as well.

We'd like to build a DAO that utilizes the crowd-lending feature that was proposed by a recent Dharma Improvement Proposal (DIP-4). Using this feature, we could tap into a crowd of investors who might give loans to our DAOs. In parallel, we could do equity-style fundraising using the native token built-in to systems like DAO Stack.

Let's consider the example of a DAO tasked with building an apartment complex (or any other project that requires large up-front funding). After construction finishes, the DAO might have a collection of non-fungible tokens to sell, each representing one of the newly built apartments. Two categories of outcomes are possible:

  • It sells these tokens for as much or more than expected and receives a large payout. This funding goes first into repaying the loans with agreed-upon interest and then the rest is used to make the equity holders fabulously wealthy.

  • In a less desirable situation, maybe we have trouble selling the apartments or something goes wrong during construction. We'd sell what we can & liquidate the rest of the DAO-controlled assets to pay off as much of the debt as possible. The equity holders get what's left, if anything.

In this way, we insulate the creditors from as much of the risk as possible. Those without any domain knowledge (eg pension funds who know nothing about building an apartment complex) can still invest their money with some kind of assurance that they'll get paid unless things go terribly wrong. Meanwhile, those with deep domain knowledge (eg construction companies) can have skin-in-the-game and be incentivized to help the project be as successful as possible.

User Story

  • A group of people have a project in mind which requires a lot of up-front capital. They form a DAO and give themselves reputation (there are other, more interesting ways to initialize DAOs but this is simplest)
  • One member of the DAO proposes to take out a loan of 50000 DAI at an interest rate of 5% annually, others members of the DAO propose to take out various other loans
  • DAO members vote on the loan proposal they think will best serve the DAO until one reaches the threshold
  • Once a proposal reaches threshold, the voting machine can call execute on the crowdlendScheme, which packages the debt order data and gives it to the controller which then forwards it to the DAO Avatar to send.
  • The scheme transfers the newly minted debt token to the crowdlending token contract & it generates one crowdlending token for every token of principal in the loan
  • Now, the DAO is free to sell these tokens which each represent one fraction of the loan that will be repaid with interest.
  • At some point in the future, the DAO's project will be wildly successful and start generating income. The DAO will propose, vote on, and execute a transaction that sends a repayment to the crowdlending contract. Once this contract receives a payment, lenders are free to withdraw their share of the payment (eg if I lent 12% of the total crowdfunded loan & the DAO makes a 100 DAI repayment, I can withdraw 12 DAI)

To deploy:

  • npm explore @daostack/arc.js -- npm start ganache
  • npm explore @daostack/arc.js -- npm start migrateContracts
  • rm -rf build
  • make
  • bash ops/deploy.sh
  • npm test

debtor-dao's People

Contributors

philipprichter avatar shivgupt avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.