The current Flapper is responsible for auctioning and burning MKR when the system surplus exceeds the hump parameter.
Once hump is met, any additional DAI entering the surplus is diverted to the Flapper and auctioned for MKR (currently in chunks of 10,000)
FlapperDistributor is a proposed new contract that would have the following functionality:
- It replaces the current Flapper in the Maker contracts.
- Governance can vote to add multiple destination addresses each with their own weights.
- Once the surplus buffer exceeds the hump parameter, DAI enters FlapperDistributor and is divided among the governance approved targets according to their weights.
- The current Flapper contract would become one of these destination addresses, allowing us to spend a certain percentage of incoming fees on MKR burn.
- Governance can also remove destination addresses and modify their weights using an executive vote.
- Other potential destinations are myriad, but could include:
- Operating Funds (potentially divided between domains)
- Strategic Reserves (automatically exchange DAI for ETH and accumulate)
- Core infrastructure development (money to help fund ETH development.)
- Charitable giving
Diagram courtesy of @juanjuan
This system has a number of advantages over using executive votes to distribute funds.
Reduces Governance Overhead
- Governance can vote on high-level priorities:
- How much to allocate to growth, to burn, and to reserves.
- Governance doesn’t need to approve distribution of lumps of funds using an executive vote.
- Allows us to have infrequent votes determining distribution.
Puts the ‘autonomous’ in DAO
- Leverages the advantages of the blockchain, distribution of funds doesn’t require human action (beyond calling smart contract methods.)
- Very flexible and extensible system.
Soft-Guarantees of a certain level of MKR burn
- There is an issue when allocating directly from the surplus buffer that means that it is hard to guarantee that the buffer will ever overflow into burn. If the buffer is full, people will want to use it for things that aren’t MKR burn.
- Would be easy for governance to agree to a certain level of burn, but this would be difficult to manage in practice.
Supports budgeting and distribution of funds
- We are at a point where we are trying to determine how money is distributed to domains to ensure growth.
- This would provide a system to do that, allowing money to flow automatically to domain multi-sigs that could then be used to pay contributors.
Supports recent governance initiatives (Strategic Reserves)
- Provides a great way of accumulating strategic reserves over time, either in DAI or in other assets (when combined with an on-chain dex)
- It’s generally thought that frequent small purchases to build a position works out better than trying to time the market and buy at the optimal point, additionally, timing purchases with decentralized governance is going to be tricky.
- Allows accumulation of reserves without minting and selling MKR to raise funds.
- Could relatively easily be expanded to include additional functionality.
How feasible is this?
I think this is quite feasible. The Maker contracts were built to be modular and replaceable. The Flapper is a ‘leaf’ contract, in that it sits on the edge of the cluster and doesn’t have too many interactions with other contracts (I believe only the
That said, I’m not a smart contract developer, and there may be interactions with other contracts that I haven’t been able to recognise. I’d love some high-level input from @Smart-Contracts as to how this could work in practice, and the caveats that we’d need to be aware of.