Whitehat Withdrawal contract - Last update before deployment

UPDATE (30/8/2016): The Withdraw contract is now deployed at 0x9f5304da62a5408416ea58a17a92611019bd5ce3

Within moments of deploying the contract, we discovered an irregular behaviour when people were donating 0% We decided to immediately stop the contract using the Escape Hatch while we looked into the irregularities.

After investigation, it appears that using the send() function with a value of 0 from a contract account to a multisig account will not work. The reason is that send() with a value of 0 gives a gas stipend of 0 gas which when sending to the typical multisig wallet hits this line (https://github.com/ethereum/dapp-bin/blob/master/wallet/wallet.sol#L336) and has no gas to spend. As a result, the whole transaction was throwing. This issue was fixed by not calling the send() function if a zero donation is detected. We of course had tests available (https://github.com/BitySA/whetcwithdraw/blob/086170f38eef1762726c4109a3ed713d79b87c26/tests/deploy.js#L274) for this scenario, but with a normal end-user account as the donation address instead of a multi-sig wallet. This is why the discrepancy was not discovered until we went live.

We were able to reproduce, adjust, test, and deploy a modified contract at 0x9f5304da62a5408416ea58a17a92611019bd5ce3. In this new contract, we pre-populated the paidOut mapping for the people who had already performed withdrawals. 54 transactions already had happened.

If you are part of these 54 transactions and you were forced to use 1% as a donation argument to make the transaction go through, please contact us and we will send the remaining back to you.

UPDATE (30/8/2016): After release, we found that many users wanted to retrieve with donation set to 0 were facing some issues. Better be safe than sorry, we have emptied the account, and we are creating a NEW contract to continue the distribution. Please stay tuned.

UPDATE (30/8/2016): The Withdraw contract is now deployed at 0x2b6d2a92495ee2e5817e37a82c8110a9a6fd8499

We added a new function where you can directly call the withdraw() function of the contract in the ETC chain from your DTH at the time of the hard fork with the following arguments:

  • beneficiary: An ETC address you control where the funds will be sent to. This can also be an exchange deposit address.
  • percentageWH A number ranging from 0 to 100, stating the percentage of your funds you would like to give as donation to the whitehat group

Note: the Whitehat withdraw contract is only available on the Classic chain of Ethereum and will allow DAO Token Holders to receive ETC (not ETH). This is NOT related to the extra balance, or the DAO Withdraw contract.

As announced in the previous blog post, the withdrawal contract will be deployed on Aug, 30th, 2016 at 17:00 CET. All the users will have 6 months from that day on to claim their refund.

Acting on feedback from the community we have:

How much will you receive

The withdraw contract will be filled with 4,171,615 ETC out of a total of 11,538,165 that are linked to the DAO-C. So with 1 ether worth of tokens (100 DAO tokens) you will get 0.36154920427511634237 ETC.


Which funds are still to be distributed

You can find here a map of all movements made by the WHG and also where all funds are currently being held. (to keep this graph comprehensible, some small transactions might not be shown)


You will notice that 269,565 ETC from grandchild DAO 101 will be made available and transferred into the withdraw contract on the 5th of September 2016.

There are also 2,800,004 ETC on Poloniex and 499,402 ETC on Kraken that are currently frozen by these exchanges. We have tried to contact both exchanges regarding these funds without receiving any answers. In order to make these funds available to the community they would simply have to transfer them to the address of the withdraw contract using the deposit() function.

Finally there are funds that have been converted in ETH, BTC and EUR. As explained in our previous blog post, the original objective was to convert all ETC into ETH using all available markets including BTC and EUR as proxies. 1,013,279 ETC have been converted. As almost all these funds are also held on exchanges, they will be made available when an agreement has been reached with the concerned exchanges.

Every time new funds are made available within the withdraw contract, you will be able to recover your share by calling the contract again. We will inform the community each time.

How to recover your share of ETC

The Whitehat Group and the community has setup different tools and guidelines to help you recovering your share of ETC:

Discussion channel

A dedicated channel has been created on the DAO Slack in order for users to help each other with problems or questions regarding the withdrawal contract and the process around it.


You can donate to the WHG at these following addresses:

  • ETH - 0xf63d257fc3576f9736fd9014cf0f0e1f0e7dd531
  • ETC - 0xe79aca5c8cda44d834efa969906a377cb987e02e