[Discussion] Should Maker Have A Policy For Irretrievably Lost DAI

Keying off some suggestions and increasingly common questions in the forum, does MakerDAO want to have in place a policy for DAI that is irretrievably and provably lost (such as in the DAI contract)?

The DAI contract currently holds more than 320k DAI, including half a dozen DAI receipts in the last two weeks. Occasionally, significant sums find their way in, such as almost 45k DAI a few weeks ago.

This regularly results in visitors to the forum or discord asking for help. Notably, these are all mistakes made by the user, but obviously results in a bad user experience.

Should MakerDAO have some form of regular partial repayment for lost DAI? If so, how much and under what conditions?

It seems particularly useful to already have in place an established policy in the event a large DAI holder needs a significant amount of replacement. As TradFi and institutions become increasingly involved in the DeFi ecosystem – which utilizes large quantities of DAI – a standardized policy would avoid a rushed ad hoc process and also ensure any parties in need of assistance are treated impartially.

Other benefits, of course, would include optics. Nonrecourse is a constant complaint in consumer protection circles, and even just a good faith iterative improvement could stave off would-be complaints that could result in regulatory or reputational risk.

There is, of course, also the option of an established policy of nonintervention. Stating that formally could also have benefits – namely in the uniform treatment of parties and lowered communication burden.

What does the DAO think on this topic? Should there be a standardized policy, and if so, what should it generally look like?



I’d be interested in knowing how much engineering work PE needs to do for a solution and whether that effort is worth the goodwill we get from these users.

At the moment, I’d lean towards no simply because these mistakes are really a result of bad wallet UX, which in the long term, should be taken care of by wallet clients. While PE have done some great work for individual users who’ve made errors, like this case, I think the cost-benefit here isn’t worth it.

1 Like

This is the perfect case to draw in outside contributors because the problem and solution can easily be defined.

We can spend a little time writing up a short technical outline of it and attach a bounty to the project.

Use a permissioned gateway such as described in the Project Sandbox to enable an outside developer or team to build it.

  • it fixes the issue at hand
  • it saves PE time through the sandbox model (if not immediately then in the long term)
  • it further explores the definition of work to draw in outside contributors

3 wins in 1


I may be biased since I have Dai locked in a contract that can’t get it out, so I would love to see this happen. Let’s do it guys! :pray:

Worth noting it would be very difficult to have this policy in place for contracts outside of Maker’s ownership. Not impossible I don’t think, but would involve a lot of overhead to confirm the contracts are are immutable without any access keys floating around.


Related discussion thread requesting intervention after 10m DAI was apparently burned on Optimism


Thanks GFXlabs, for bringing this up.

As stated above, there were 10M DAI lost that are retrievable via governance.

Can read this post for a more detailed explanation.

In short, the burn function of dai.sol was confused with the burn function of a different contract, effectively sending the DAI to a 0 address.

1 Like

I believe that in order to encourage adoption and use a policy of helpful intervention should be adopted. Lost DAI represents someone who may very well be turned off using it and can hamper momentum in adoption.

Adopting a policy of intervention can also give us a competitive edge and help cement MakerDAO as the safe and solid option in DeFI space.

I think such a policy should still come with a fee to discourage abuse and leave some responsibility on the parties involved. A 10% fee might serve as a starting point with a minumum of whatever the cost of the workload incurred is. It’s propably also sensible to set up a maximum as the recent loss of 10M DAI has shown.


A fee for what? On one hand, it does cost Maker a bunch to invest a developer’s time in correcting a user error. On the other hand, I think this investment is well worth the marketing benefit. Recovery of funds is not something that is common in the blockchain space and could attract a lot of goodwill! I think this is better regarded as a security deposit. For example, perhaps a user is required to set up a gnosis 1/1 multisig on the xDAI/Gnosis chain with Maker as one signer and themselves at the other signer. If the report is spam then Maker can burn or take the security deposit. If the report is genuine then the deposit can be withdrawn back to the user. This is a way to deal with spam inexpensively. We don’t want to inconvenience users more than necessary.


The reasoning for a fee is twofold. First it is to cover the direct costs in working time for the various CUs involved to make the reversal assuming it is possible. I imagine some cases might lead to discover the funds lost beyond Maker’s ability to recover them. This is also the reasoning behind setting a minimum fee.

Secondly is to discourage Maker becoming a convenient way to avoid taking sufficient precautions. Or to put it into other words, to avoid creating an escalating workload. The safety of the transfer should primarily be the responsibility of the users engaging in the transfer. I believe Maker’s role should be as the saviour of last resort.

That being said I fully agree this can generate a lot of goodwill and should be our primary motivation. I’m certain many in crypto has experienced having funds lost either through mistakes, scams or other unfortunate events.


The PE Team recently discussed and mocked up code for a module that could sit between the End and the Vat (or even in the End itself if relaunched). This module would discount certain existing debt - such as the DAI that was sent to the DAI contract - from Vat accounting. Based on the amount of DAI, a corresponding amount could be minted by the protocol and returned to the user.

Initial discussions explored this as a publicly callable function that anyone could call upon accidentally sending DAI to the DAI contract. So, technically, this is possible, and would require some work to ensure that this mis-sent DAI is considered DAI out of circulation and cannot ever be redeemed. Note, such a solution should also consider interaction with L2s, which will introduce more complexity and the need for a robust and scalable architecture.

Another thing to consider includes the fact that some users have sent DAI from exchanges such as Binance and CoinBase - those users would still need to contact those 3rd parties to ensure that the returned DAI made its way back to them individually (you’ll notice on Etherscan that some deposits into this contract come from exchange accounts, not individual users).

The critical dependency here is the proposed module’s interaction with the End contract, for which I’ll need to chat with the team on planning, estimating, writing a MIP and so on. I’ll be happy to keep the community informed on progress, dependencies and next steps as one of the options on the table.


Would love to hear more about this as I accidentally sent a massive amount of Dai to the curve contract address. It’s literally the only transaction there. Pls let’s make this happen. :pray:

1 Like