ExtraBalance Withdraw Contract to be Funded on September 15th

Griff Green
Curator Multisig PHF Official Channel
6 min readSep 13, 2016

Assuming the final community review of the ExtraBalance Withdraw Contracts doesn’t require any changes (see the contracts here and here using the data derived from this script), the extraBalance will be available on September 15th, bringing to a close the bulk of the work required by the Curator Multisig (Post Hard Fork).

The DAO Token Holder Community owes a lot of gratitude to Alexey Akhunov who as a recent addition to the Curator Multisig has pushed forward the progress for both the Child DAO and the extraBalance edge cases.

Many people have asked for more information on the volunteer contributors to these efforts and their tipping addresses.

ExtraBalance Withdraw Contracts

Bokky Poobah, Nick Johnson, Beltran Berrocal, and Alexey each independently recreated the list of extraBalance contributors and worked together to compare each other’s results and investigate the discrepancies of their blockchain analysis. This was not as simple as most would imagine and I highly suggest you speak with them or read about their results on their Github pages (BokkyPoobah, Nick Johnson, Beltran Berrocal) to learn more about the surprising complications.

Bokky Poobah: 0x000001f568875f378bf6d170b790967fe429c81a

Nick Johnson: 0x5fC8A61e097c118cE43D200b3c4dcf726Cf783a9

Beltran Berrocal: 0x6377216fd31061edb18b91d33c3d252abf91c2d4

ChildDAO Withdraw Contracts

Paul Szczesny, Alexey (before he was a Curator) and Christoph Jentzsch each independently developed withdraw contracts to aid in the Child DAO Recovery. Again, while seemingly a simple task, there were a plethora of options that could have been used and without all three of them volunteering their time and expertise, the final solution was found and executed nearly to completion.

Paul Szczesny: 0x4037FC49E6D6644aE066A56a56fF4273187777A8

Christoph Jentzsch: 0xD292F43d687702Bc5f793E56765e1a3B5E541Ee3

Curators (Post Hard Fork)

The Curators (Post Hard Fork) have gone out on a limb,volunteering their time to approve and verify that the Edge Cases of the Hard Fork Withdraw Contract have been dealt with appropriately, and we will continue to be available to help any Edge Case that comes forward.

Current Curators (Post Hard Fork):

Alexey Akunhov — 0x8E8a24CBA9f2702243AD65bAda9b0e8cbC62fD96

Griff Green — 0x839395e20bbb182fa440d08f850e6c7a8f6f0780

Gian Bochsler — 0x82aEB1D8939f514318449fa8Ec704A94DC16E01D

Timon Rapp — 0xf9ffba430e290c7fa4be61e3a2f905f6c99dd616

Vitalik Buterin — 0x1db3439a222c519ab44bb1144fc28167b4fa6ee6

Vlad Zamfir — 0x127ac03acfad15f7a49dd037e52d5507260e1425

Former Curator (Post Hard Fork):

Shermin Voshmgir — 0x820c6da74978799d574f61b01f8b5eebc051f95e

The Greater Community

And of course, the many participants in the #child_dao_community and #extrabal_community channels on the DAO Slack helped supervise and test the development of the various contracts as well as performing various types of blockchain analysis. There are too many to name individually, but thank you all for your efforts!

While the bulk of the work is nearly complete, there are a few more edge cases to work on. There is still a small amount of ETH yet to be claimed by Child DAOs token holders and the Curators are still halving min quorum every 2 weeks to try to recover DAO tokens that were sent to The DAO by mistake. If you fall under these edge cases, please contact @griff on The DAO’s Slack.

The process for withdrawing the extraBalance will be very similar to the process used for the original Hard Fork withdraw. The following guide will explain the process.

How to Use the ExtraBalance Withdraw Contract

What you need to begin:

  1. Ethereum Wallet (or Mist browser), synched to the ETH chain (the one with the Hard Fork).
  2. Address of the ExtraBalance Withdraw Contract. Currently this: http://etherscan.io/address/0x755cdba6ae4f479f7164792b318b2a06c759833b
  3. Address of the ExtraBalance Token Contract. Currently this: http://etherscan.io/address/0x5c40ef6f527f4fba68368774e6130ce6515123f2

Step 1: Watch both contracts in the Ethereum-Wallet/Mist

Enter the details of the ExtraBalance Withdraw Contract

In the same way, watch the extraBalance token contract:

Step 2 (Optional): Create a fresh account (if you need protection from ETC->ETH replays)

Scenarios where such protection might be useful are like this: you used an address to purchase DAO and contributed some to extraBalance. Then, you held DAO tokens until the fork. That made you eligible for ETC from Whitehat group. You received ETC, and sent it away. Transaction of sending ETC away got replayed to ETH, but was not valid yet, because your ETH balance was too low. Now you receive ETH from the extraBalance, and previously invalid replayed transaction becomes valid, sending your ETH away, which is most probably not what you want.

For further convenience, rename it to something like ‘FreshWithdraw’:

Step 3 (Optional): Give FreshWithdraw account tiny bit of Ether to pay for gas

Since FreshWithdraw account will be performing couple of transaction, it needs some ether loaded up.

Step 4 (Optional): Transfer extraBalance tokens to FreshWithdraw

Open your childDAO contract:

Then, in the left column (READ FROM CONTRACT), find the function ‘balanceOf’, and in the right column (WRITE TO CONTRACT), find the function ‘Transfer’. Enter your address which claims the extraBalance, into the balanceOf function to see the claimed amount in wei. Then, copy & paste the wei amount into the ‘value’ field of the ‘Transfer’ call. Field ‘to’ needs to contain the address of the ‘FreshWithdraw’, and the ‘Execute From’ must be the same account, whose address you have entered on the left (the one containing extraBalance tokens):

Step 5: Approve transfer of extraBalance tokens from FreshWithdraw (or original address that claims the extraBalance) to ‘extraBalance Refund’

Open the extraBalance token contract again:

Then, in the left column (READ FROM CONTRACT), find the function ‘balanceOf’, and in the right column (WRITE TO CONTRACT), find the function ‘Approve’. Enter your address which claims the extraBalance (or FreshWithdraw if you performed optional steps), into the balanceOf function to see the claimed amount in wei. Then, copy & paste the wei amount into the ‘_value’ field of the ‘Approve’ call. Field ‘_spender’ needs to contain the address of the ExtraBalance Withdraw Contract, and the ‘Execute From’ must be the same account, whose address you have entered on the left (address that claims the extraBalance or FreshWithdraw, if you performed optional steps):

Step 6: Execute the Withdraw

Open ‘extraBalance Refund’ contract and call the ‘withdraw’ function from your address that claims the extraBalance (or from FreshWithdraw, if you performed optional steps):

After you type in your password and this function call is executed then you should see the extraBalance ETH in your account.

--

--