Proposal for reimbursing funds accidentally sent to DXD smart contract

Hey everyone,

I’m Chen, I have been part of DXdao’s genesis and a long time supporter of DXdao.
I edited (20/01/2022) this proposal according to the comments and community feedback. I’m planning to submit it onchain for voting in the coming days.

Earlier this year I accidentally sent this transaction which transferred 129,983 USDC to the bonding curve smart contract (which is also DXD’s token SC).
Luckily DXdao is in control of this smart contract. I was informed back then, that there are plans to update this smart contract and in the same update my funds could be fully recovered into the DXdao’s account.

After community discussion about the upgrade of the Bonding Curve smart contract, involving @AugustoL @JohnKelleher, it is clear there are multiple valid reasons to not rush this upgrade.
This implies that although the funds are safe and will eventually be recovered, this will take a long time (several months at least, timeline not fully decided yet).

I would like to propose a reimbursement from the DAO treasury which anyway hold USDC.
Because the DAO holds my funds (although in a different contract) I think this doesn’t have any long term impact on the DAO but could help me significantly!

I am planning to make the proposal directly from the account which (accidentally) sent the funds so there are no confusion or need for a proof of the ownership of the account and funds. Of course, I will vote with my REP in favor so it is clear I support the solution.

If this proposal goes through and my account is fully reimbursed, I’m giving away any claim to the original funds (129,983 USDC currently in the Bonding Curve smart contract), and they will go back to DXdao’s treasury once recovered.

Appreciate the discussion and support!


Confirming ownership by signing a message with the address associated with the transaction, explaining the happenstance and detailing your suggested request, is a good start. This was recently done in a similar case here.

Once enough time has passed to give a chance for the community comprising the DAO to familiarize themselves with the case, you can follow up with an on chain proposal.

The DAO has mostly ETH, and any ETH that has already been converted into USDC and other stablecoins has been done according to the treasury diversification plan. If the USDC is needed by the DAO sooner than the contract update, this could have some exchange price implications.

A concern to be considered, if valid /I am not entirely sure of the possibility, I could be wrong/, would be if the USDC somehow gets blacklisted.

Would you consider making a proposal to request just a portion in advance, and receive the remainder after the contract update?


Thanks for the reference. I think signing a message is not necessary since I’m planning to put up the proposal from that same address. But if needed I can do that as well…

I guess we can figure that out after we get a better estimate on the contract upgrade. @JohnKelleher

Although theoretically possible, I think this is extremely unlikely. It is as likely as the USDC in DXdao’s treasury will get blacklisted with no reason. From Circle’s point of view those are just funds moved around wallets and smart contracts. Nothing special.

Just if there’s no other option. But ideally no.


Thanks @Powers for taking the time in the Governance call to discuss my proposal.
I want to reply on few of the arguments that were raised:

  • I don’t think my original intention of this tx is super relevant, but just for context, I was trying to deposit the funds to my Binance account. Still to this day I can’t figure out how I copied the BC address instead of my deposit address on Binance.
  • As @JohnKelleher mentioned upgrading the contracts is possible. I’m personally not the most technical person, but at least John, Augusto and Alex are in agreement this is possible. If there are concerns that they are wrong, happy to get additional engineers to reaffirm that.
  • I’m not saying there is no risk in the upgrade. There is always some risk and this is exactly the reason I agreed with John that it is not worth it to proceed with the limited scope upgrade I already suggested. Instead it is probably better to take the time here and have even more testing for the upgrade.

I would like to also say to @sky that I found his remarks quite insulting. Suggesting that DXdao should make me wait just to teach me a lesson? I’m waiting patiently for nine months. I’m a long time supporter and member of DXdao!
Suggesting that I was trying to hack the BC? WTF?
Suggesting that DXdao should take a cut because “sometime you win sometime you lose”?
Are you serious? Would you suggest something like this if you were in this spot?
Nothing to do with crypto and blockchain - be a human. Someone did a mistake and you have the power to help. Even if I was a stranger and wasn’t involved for two years - I would expect DXdao to try and help.
Lastly, suggesting I should be required to contribute work just for getting the funds refunded. This is extortion. I would love to contribute wherever I can! But requiring this as a condition for returning the funds is insulting and not appropriate IMO.

If you want to collaborate in any way with cowswap, I’d be happy to explore that (and actually initiated a call with @JohnKelleher and @corkus to chat and explore ideas regardless). I don’t think my proposal for reimbursement is the proper place to engage and ask that.
In fact we were trying to integrate swapr as liquidity source for cowswap and it was live a few weeks ago already. The fact that the fee is not the same 0.3% as uniswap made it behave a bit differently so we had disable that until it is addressed.

Finally I want to thank again everyone that is considering my proposal honestly, happy to get any concrete feedback.


@cmagan I would like to apologize for my remarks on the governance call. These were not meant to be hard solutions in any way, I was was only brainstorming (spitballing) random ideas. A public call is not the place to share random ideas.

I actually think DXdao should find a way to give you back the lost funds. But I also think this is a very specific scenario.

It’s similar to when people mistakenly send funds to a big crypto exchange and the exchange can give back the funds, but they don’t because it’s not easy technically and it’s risky. This happens all the time.

If we could implement a technical solution then it would be no problem but that solution doesn’t exist yet.

Either way, I should not have shared these careless thoughts off the top of my mind, that aren’t really specific to what should happen with your situation.

Please accept my sincere apologies.

I hope that we can make something happen that returns your lost funds.


Thanks @sky, I accept your apology, I’m here for a pragmatic discussion trying to find a concrete solution.
I would like to discuss the points you are raising.

  1. I think there’s agreement that technically the funds CAN be withdrawn form the contract (together with DXdao’s 2500 ETH). The risk that this is not possible is very low.
  2. There’s also agreement this should be taken care of very carefully since a lot of money is at stake. I personally think that the fact we’re dealing with a lot of money means there is some urgency not only for me personally but also for the DAO. There’s opportunity cost to this idle capital - the DAO could have made a lot of money by deploying this capital. But since there’s also a lot of unutilized capital in DXdao’s avatar, it appears this is less of a priority.
  3. Given that withdrawing the funds from the BC is less of a priority (at least from my impression ATM) and even if it becomes a prio, the timeline will probably be multiple months at least, together with the fact that the DAO holds ample of idle funds, makes me think my proposed solution is very reasonable.
  4. I think your analogy with CEX that need to extract funds for users is quite right. Having said that I think there’s also some stark differences. a) CEX are usually operating under big bureaucratic structure and their slow handling of those issues is quite annoying. and b) I’m a member of DXdao not just a user or a random internet avatar. So my expectation is that DXdao would try to help and solve any rightful issue, if possible - even more so if the issue is with regard to its members.

Just circling back on this @cmagan. I think there is soft consensus to go through with a reimbursement. As stated on the governance call, my only concern is the risk that the contract is not upgradeable, but I think this risk is low as others (@JohnKelleher and @AugustoL ) have vouched for it as well as the digging that you’ve done.

I think it makes sense for the proposal to go through on mainnet. Gas costs are reimbursed at every quarter.

You could share the proposal test here on the forum before if you had any questions? The important things are 1. Linking to original transaction 2. Coming from either that account or your REP account.

Gas costs are reimbursed every quarter. BTW, here is the reimbursement of mistakenly sent DXD last February: dxvote.eth


Sorry for the delay in response. Just getting caught up on DAOtalk. I can confirm that the DXD contract is upgradeable by DXdao. And while the 2500 ETH in the contract are there by design as part of the “buyback reserve,” it seems highly likely that DXdao will be moving away from that model and as part of that move will need to upgrade the token contract anyways. Since the future token model and governance 2.0 are still being spec’d out and developed, DXdao devs aren’t at a stage where that upgrade is ready to move forward. And while I understand the USDC accidentally sent to the contract is a meaningful amount of money for @cmagan, when compared to the other funds this contract is responsible for, namely the 2500 ETH in the buyback reserve and all DXD which amounts to 10s of millions of dollars worth of funds, the USDC is relatively small. I think it would be foolish for these funds to be a reason to rush development timelines or to put any added pressure on the development of the new systems. And since the treasury has over $11M in stable assets, I think the most reasonable approach forward is for @cmagan to request the USDC from the treasury as he proposes here, and then in due time DXdao will recover his lost USDC from the DXD token contract. I would hope that would happen this year alongside Governance 2.0, which should be long before DXdao could need to expend its stable assets, and therefor should not make a meaningful impact on DXdao’s treasury, if any at all. But again, due to the highly sensitive nature of the upgrades and the amount of funds at risk, it is critical in my view that the development of the new DXD model and Governance 2.0 proceed at an unhurried pace and it will be ready when it’s ready.


Thanks everyone for the feedback and the discussion!
I tend to agree with all the arguments above, and super happy that it seems we have a solution for the shorter term.
I will update the proposal text based on the feedback and then continue to the on chain proposal which I plan to make from the account which sent the funds initially. I think this way is the easiest to verify. ofc I will vote with my REP in favor so it is clear I also support the solution :slight_smile:


I edited the proposal according to feedback I received. Please let me know if there’s any further comments before I submit it for voting. Thanks!


I want to make sure I’m doing this right…
Attaching a screenshot of the proposal and parameters.
I’m connected with the same wallet that did the mistake transaction.
Same address is also filled in the “Beneficiary Account”.
USDC token contract address is filled in the “Address of Token” field and the amount is in atoms “Token Amount (in WEI)” is 129983365498.
Should I change the “Scheme” or “Template”?
Would really appreciate someone confirming those are the correct parameters :pray:


hey @cmagan

looks correct.

The contributor scheme is the correct one for this proposal. The template is just to preload markdown templates into the text box - so nothing to worry about there.

USDC address is also correct on mainnet, and the wei amount is also correct, as USDC uses 6 decimal points.

All good to go!


Vote is up


Looks good - I’ve staked on the proposal: Ethereum Transaction Hash (Txhash) Details | Etherscan


WOW gen is so cheap now, tx cost is triple the stake value ):


The proposal has passed and was executed. Thanks to whoever executed and to everyone who supported.
Reiterating that the USDC in the bonding curve smart contract belongs now to DXdao’s treasury, covering fully this proposal’s reimbursement amount.