Rocket Pool — Widow addresses, deposit tokens and token sales.
With the amazing reception Rocket Pool received several weeks ago with its launch announcement + alpha code release, resting on our laurels has not been an option. In that time we’ve been hard at work getting Rocket Pool to its next milestone and implemented several new notable features which future POS stakers might be very interested in. Also a huge thanks to those who’ve provided feedback, offered assistance and asked all the right questions on reddit and in our slack.
After 15+ years being a dev, this is probably one of the most unusually morbid things I’ve ever had to build into a program, let alone a smart contract on Ethereum. But as hard as it is for some people to accept, we’re not as indestructible as we’d like and sometimes… bad things happen…
When you could be staking with the Rocket Pool network for some time, it’s always a good idea to think ahead. Rocket Pool will now allow you to specify a widow address after you make a successful deposit for staking. This address will be allowed to collect your deposit + interest earned while staking if the primary address used to make the deposit does not collect it for up to 3 months. A good example of how this could be used is to give a family member an empty wallet, then register that wallets address as your widow address. Should anything happen to you, this family member will be able to use the widow address to retrieve your deposit + interest on your behalf. Forgetful users might also find this as a useful service for simply creating a backup address, should anything happen to your main wallet, you could use this as a way to still get access to your deposit after 3 months pass.
Rocket Deposit Tokens
Once again, life doesn’t always go the way we plan and sometimes we just need to get some money quickly for unexpected expenses or a myriad of other reasons. When you can have Ether staking in Rocket Pool for up to a year, this situation is inevitable for some users, so we’ve planned ahead :)
When you have a deposit staking with Rocket Pool, you can now withdraw ERC20 tokens called Rocket Deposit Tokens (RPD) that back the Ether you have deposited. Users can then sell these tokens to other users on the free market, which can then be redeemed for Ether back at the Rocket Pool Deposit Token contract.
When a single RPD token is withdrawn, it represents 1 Ether. So why would people bother buying other peoples RPD tokens when they could just buy Ether I hear you ask? Great question! To answer that we’ve devised the following system:
Bob has 200 Ether locked up depositing and looking in the mirror on his 40th birthday he finally decides he can’t live without that hair piece he’s had his eye on since he noticed his hair line marching south at an unusually rapid rate. He decides to withdraw 50% of his deposit as RPD tokens, this leaves his available balance staking at 100 Ether. When withdrawing these tokens, Bob is charged a 5% withdrawal fee, so he ends up with 95 RPD tokens which he can then sell on the free market or if there is available funds in the Rocket Deposit Token contract, he can trade them in there for Ether immediately.
Now as you’re sharpening your pitchfork over the 5% withdrawal fee, let me just say quickly, that doesn’t go to us! That fee serves a dual purpose which I’ll explain shortly. But first let me quickly explain how the Rocket Deposit Token contract where tokens are traded in for Ether is funded. If you’re familiar with Rocket Pool, you’ll know we use a system for staking called Minipools, these are small groups of users pooling their Ether together which are spread out over the Rocket Pool network in a decentralised and load balanced method. They can be staking for various time lengths, from two months up to a year. When a Minipool returns to Rocket Pool from staking with Casper and users within that pool have withdrawn RPD tokens, the Ether backing those tokens are sent to the Rocket Deposit Token contract, this means the contract will have a variable rate of Ether available for users to trade tokens in for at any given time, depending of course on how often Minipools return with these token debts.
Now about that fee! The first reason for that is it prevents Bob cheating the system when his deposit first begins staking, he can’t simply withdraw his tokens and trade them into the Rocket Deposit Token contract for Ether immediately, then do the same again and again and again. He could essentially keep this contract drained of Ether without the fee and other token holders wouldn’t be able to trade their tokens for Ether. Bad Bob!
Secondly that fee is then used as an incentive for buyers to help RPD token sellers like Bob out. If 1 RPD token equalled 1 Ether when buying, why would buyers not just buy Ether instead? That 5% fee is given as a bonus to users who trade tokens in to the Rocket Deposit Token contract for Ether. So essentially users get an extra 5% Ether when trading tokens which would help any seller out who needed funds quickly. These tokens are also fully enabled on the free market, so if the Rocket Deposit Token contract does not have enough Ether in it for you to trade in your tokens, you can always price them at a discount and sell them quickly on the free market. Patient buyers of these tokens who don’t mind waiting for the Rocket Deposit Token contract to fill up with Ether again, are rewarded with a 5% bonus when trading in their bought tokens in for Ether when the time comes.
Rocket Pool Future Token Sale
Now reading that headline either gave you a big grin or you rolled your eyes at yet another token sale ;) Token sales are certainly gaining traction as a way for the Ethereum ecosystem to expand in all directions using the power of diversified investments from direct individuals and companies alike. While originally hesitant at the idea, there’s nothing more than I’d like to see Rocket Pool become all it can be by allowing me to work full time on it and expanding the team + infrastructure required for the inevitable launch of Casper in the future.
So the next few weeks will involve organising and releasing details about the crowd sale. One thing I can tell you now is it will be capped at a modest amount - no crazy over-hyped head shaking token sales here. I will also be investigating the possibility of capping the gas per bid in the sale for more even distribution. After all, Rocket Pool is all about helping the little guys stick together. If you want to provide feedback on the sale or want to be first in on the news, please join us in our slack and say g’day!
In addition to the above features, work on Rocket Pool has been thorough and we’ve added several big optimisations using the Solidity DELEGATECALL feature which allows for some big gas savings and unique contract upgrade abilities for currently deployed Minipools. Unit tests have also doubled since the alpha release 3 weeks ago. If you’d like to check out the code, feel free to poke through it on the Rocket Pool github and if you have any questions, just hit me up in slack or get in contact via the Rocket Pool website!
If you made it this far, a big thanks for taking the time to read :)