Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

A new DAO approach! #73

Open
julien51 opened this issue May 22, 2021 · 1 comment
Open

A new DAO approach! #73

julien51 opened this issue May 22, 2021 · 1 comment

Comments

@julien51
Copy link
Member

julien51 commented May 22, 2021

Until now, the approach we took was using the proceeds of the lock to payout dividends to co-owners of the DAO. And DAO ownership was created by minting new "shares" on every key purchase thru the hook and by leveraging the data attribute.

Paying dividends is hard, because it can only be at a specific point in time, which means the lock has to be "withdrawn" and the proceeds snapshot-ed so that every DAO member can then claim their fair share. This is very complicated and quite wasteful.

Another alternate approach would to create a (Uni)swap pool for the DAO shares. Then, we set the DAO so that any member, at any point, can call a function called withdrawBuyBackAndBurn. This function, when called will withdraw the balance on the lock, take the proceeds and immediately swap them on the pool to purchase back DAO shares and then burn them.

This way, there is no need to create a complicated dividends scheme, as the DAO itself will purchase back its own shares and burn them, redistributing the value back to the DAO share holders.

I would love everyone's thoughts on this, and especially you @nfurfaro and @benwerd

From an implementation perspective, I think withdrawBuyBackAndBurn should be in a dedicated contract who is both the beneficary of the lock and the lock manager. All functions on this contract should only be callable by the DAO, and any call that is not withdrawBuyBackAndBurn should just "proxy" to the lock contract. (ie. the DAO can call any function on the lock thru this contract).

One of the benefits is that this should considerably simplify the hook!

@benwerd
Copy link

benwerd commented May 22, 2021 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

2 participants