Eth Hodler
A simple non-profit DApp & ERC20 token running on the Ethereum blockchain.
Why?
Want to take a break from trading? Lock your ether and get HODL tokens in exchange.
Weak hands? You can use the Quick withdraw any time!
Get rewarded for hodling: 30 day withdrawal gets a chunk from the fee pot!
Safe, simple contract, audited by 3 independent Solidity developers, plus additional review by the community
No admin keys, no kill switch, no governance
Added 'Fee Pot' game element so it's a fun way to hodl!
About
Eth Hodler a simple contract that allows you to lock up Ether.
This contract has no owner and cannot be modified by anyone.
There are also some other features to make it more fun:
Each deposit to the Eth Hodler locks your ether and issues you with HODL tokens. These tokens
are then used to make a withdrawal and burned once the withdrawal is processed.
A normal withdrawal would take ~30 days to process, costing only the gas fee.
Should the holder want to withdraw their deposit early, they can, but
they must pay a %1 fee. The fees will be added to a fee-pot. Holders can claim
a chunk from the fee-pot, see the rules to find out how.
How To Use
This page is a DApp (Decentralized application) meaning that you'll need an Ethereum browser to use this.
The easiest way to get started is to download the
MetaMask
extension for Chrome.
MetaMask is currently probably the best way to use at this time as it offers the lest friction.
Rules
- Tokens will be issued when sending ETH to the contract: ?
- Normal ETH Withdrawal: must wait until after 30 days
- Immediate ETH withdrawal: Must pay a 1% fee.
- For all Withdrawals: tokens will be destroyed after withdrawal. Ether to be sent back to the
address that was holding the tokens.
- Tokens pending normal withdrawal will be locked until after 30 days.
- While tokens are locked, they cannot be transferred or sent.
- While tokens are locked, you cannot add more ETH to the address where the tokens are locked.
- When the wait period is over, you must complete the withdrawal manually. If the Fee Pot is not empty,
you will automatically claim a reward from the Fee Pot
- When claiming the reward from the Fee Pot (Complete Withdrawal), the following formula is used:
reward = feePot * v / totalSupply
Where v is the amount you had when the withdrawal was requested,
totalSupply is the total amount of tokens in circulation at the time when Complete Withdrawal was called.
- After withdrawal to ETH, tokens are burned, thus deflating the token supply.
Visual Model
List of exchanges listing the EHDL token
EHDL tokens are trade-able too.
Security information:
- The contract is ownerless and non-upgradable. The Author of the contract does not own the contract, does not have any special access to the contract, this can be verified by reading the source code.
- The contract code is kept as simple as possible (KISS).
- The contract's source code has been verified through
Etherscan and you can read it there yourself
- Auditing process and maturity process: The contract went through 3 independent peer reviews, each completed by a different experienced Solidity
developer (see reviews posted to Github).
Game theory analysis
- If enough holders enter the contract, Price of ETH should go up, because ETH is removed from the
market.
- Better than normal holding, since holders can claim from the fee-pot, after holding for the minimum
time
- Should the ETH price spike to say $20,000 USD, immediate withdrawal will still be possible.
- HODL tokens may be trade-able on an exchange, and on face value 1 EHDL = 1 ETH, should an exchange add
them.
- Who is the bigger hodler? Basically the bigger the holder, the bigger chunk the reward they get, and yes,
the risk is there that there could suddenly be a larger hodler than you coming in! (The reward is
based in the Total Supply, and it will be increased when new ether is locked in, but also decreased
in your favour if weak-hands use the quick withdraw)
Mist Wallet - instructions for the professionals
It's much easier to use an Ethereum Browser / MetaMask, but you can also use the Mist wallet by itself
if you have the patience. (Or another non-browser wallet that supports contracts / tokens)
ABI / Json interface
Here is the Json interface. You may need this if you want to interact with the contract wallets such
as
Mist
Adding the contract to Mist
To add to your Mist wallet, go to "Contracts" and choose "+ Watch Contract".
Contract Name: Eth Hodler
Contract Address: 0x47F383f5aCBacc18a3d9ff6F7AF8B49Bfed27C61
Copy and paste the above JSON Interface.
To watch the token, choose "+ Watch Token".
Token Name: Eth Hodler
Token Symbol: EHDL
Decimal Places: 18
(18 decimal places, same as ETH, since 1 ETH = 1 token)
Mist Wallet - Interacting with the contract
Doing a normal send to the contract 0x47F383f5aCBacc18a3d9ff6F7AF8B49Bfed27C61 will issue the
originating
address with HODL tokens. You can send more ETH at any time, but do not send anything while a
withdrawal
is pending (it will fail). Notice that transaction costs will be taken out, so you'll get
slightly less
tokens than the amount of ETH sent.
When sending ether to the contract, it will need to use about 65051 gas, so make sure that you include enough payment for gas. Typically
you'll get a refund for any gas overpayment, but no refund is given if it runs out of gas, so set at about say 80k gas. (Default suggested setting in Mist should be fine)
There are two ways to withdraw, one is quick with a fee, the other is 30 days with no fee
Mist Wallet - Quick Withdrawal
If you need to take out your ETH now, without the waiting period, call the Quick Withdraw
function
Go to the Contracts screen, click on the Hodl contract, under "Select Function", then pick
"Quick Withdraw".
The "Execute From" should be the address that has the Hodl tokens
For the "Send Ether" field, enter %1 of the Hodl token amount that is stored in that
address.
Mist Wallet - Normal Withdrawal
Normal withdrawal is free and takes 30 days. The advantage is that
you'll
also get a percentage of the fee-pot added to your withdrawal (see rules section).
Go to the Contracts screen, click on the Hodl contract, under "Select Function", pick
"Withdrawal Initiate".
The "Execute From" account should be the address that has the Hodl tokens
Once the transaction is sent, that will lock your tokens for 30 days
Send Ether should be 0
Do not attempt to transfer any tokens, add new ETH or withdraw during this time, the
transactions will
fail
After doing the "Withdrawal Initiate" function, here is how to check how many seconds left to
wait:
Enter you address in the "Withdrawal requests" input field.
It will show two attributes: "Since Time" and "Amount"
Use the "Since Time" number in the following calculation:
SecondsToWait = SinceTime - CurrentTime + 2592000
(CurrentTime is the unix timestamp of the current block)
If the resulting number is 0 or less, congrats - you are ready to complete the withdrawal (and take some
fee-pot)!
After waiting for about 2592000 seconds (30 days) you can complete the withdrawal (and take your share from the
fee-pot!)
Go to the Contracts screen, click on the Hodl contract, under
"Select Function", then pick
"Withdrawal
Complete".
The
"Execute From" account should be the address that has the Hodl tokens
Send Ether should be
0
Contract's Author
Follow @CurrencyTycoon on Twitter https://twitter.com/CurrencyTycoon
Code
See Eth Hodler on
Github.