About
loETHery is a crypto lottery, based on Ethereum blockchain. Each participant has a chance to win a draw proportionally of their stake, for example: a participant sent 1 ETH, and total draw value is 10 ETH, so he/she has 10% of probability to win.
A draw is started by the autonomous backend script every 96 hours (but there are few conditions, see below).
A winner of a draw takes reward, that is equal of a sum of all participants' bets minus fee. The organizer's comission is 15% of total reward value.
loETHery is completely decentralised lottery and its powered by smart contract deployed here:
To participate you need to send simple ETH transaction (with any value) to the address above using your favorite wallet. You can also connect your Metamask wallet to the page. To do it click on 'participate' button on the header.
Draw conditions & limitations
To execute a draw its necessary to have at least 2 participants. If there are no enough participants, a draw can be delayed by additional 96 hours. If a draw was delayed 4 times in a row, all funds (minus gas fee) will be refunded.
If there are 2 participants or more, a draw will be processed instantly.
If some participant has stake, that exceeds 50% of the reward, this exceeding value (minus gas fee) will be refunded during a draw
Refund
- when a draw was delayed 4 times in a row (entire amount minus gas to be refunded)
- when participant's share exceeds 50% of the total reward (exceeding amount minus gas to be refunded)
Algorithm of draw in details
- Generate random value.
It includes all paricipants' addresses and block info. - Compute total reward value
- Loop over participants
Sum up participants values sequentially and check, that the specific range includes random value, generated on the first stage.
Hence, the higher the value, the higher the chance to win.
random = 35
reference = 100
participants = [2, 5, 7, 4] // total = 18
sum = 0
for (p in participants)
share = p / total * reference // [11, 28, 39, 22]
newSum = sum + share // [+0=11, +28=39, +39=78, +22=100]
if (random in range [sum..newSum])
we found a winner
in this case it is the second participant, because [11..39] includes the random value
else
sum = newSum
Feedback
We would love to hear from you. If you have any questions or suggestions, feel free to write us
[email protected]