The Lottery
Description of key lottery payout rules and mechanisms

Lottery Rules and Payouts

$BSCWIN is the native token of the lottery project, and is also equivalent to 1 lottery ticket. Buying and hodling 1 $BSCWIN is the minimum required to be eligible for lottery payouts. In addition, the more $BSCWIN tokens a wallet holds, the higher the chances of winning the next lottery.
Setting up a decentralized lottery on Ethereum Virtual Machine (EVM) or similar infrastructure as that of BSC, Polygon, or KCC, is not straightforward. Logically you would have tickets, wallets would get attached to those tickets, you would pick a winning ticket at random, and to find the winner you would loop through those tickets to see who has the winning ticket. This is challenging via EVM because for more than 20 or so holders you would run out of gas because of the number of iterations.
To overcome this obstacle, the BSCWIN lottery selection algorithm finds the winner backwards. What that means is we know how many tickets each wallet has in a dictionary. We pick a random wallet then perform a test of how many tickets they have vs a randomly generated number up to a max scaling mechanism. When the pool fills and the lottery triggers it might not find a winner on the first transaction. It could take multiple transactions. In testing with the scaling factor we use it takes about 12 transactions on average to find a winner.
To generate those random numbers we use accepted mathematical algorithms that can generate random numbers with random inputs. Those random inputs are the size of the liquidity pools of a couple established high trading volume pairings (e.g., $BNB-$BUSD). This way it would be impossible or prohibitively expensive to manipulate the drawing.
Lottery payouts are scheduled by default every 4 hours, and the community can decide to increase or decrease the lottery frequency based on a voting system. The amount of the lottery payout is not fixed, but set to increase with increasing size of the liquidity pool. More details on that below.

Advanced Liquidity Mechanism for Lottery Payouts

Most existing lottery projects implement a tax fee on each buy/sell transaction that fills a lottery pool dedicated for lottery payouts. Unfortunately, as soon as trading volume decreases significantly, the frequency of lottery payouts falls, even ceases completely, which leads to a negative feedback loop and causes the death of such projects.
Instead of taxing each buy/sell transaction, the main BSCWIN contract retains ownership of the liquidity pool and each time the lottery is triggered, it removes equal amount of $BUSD and $BSCWIN tokens from the liquidity. The $BUSD tokens removed are sent to the lottery winner, and the $BSCWIN tokens removed are sent to the Bulls DAO wallet. To protect the liquidity while sustaining the desired frequency of lottery payouts, the contract cannot drain more than a set threshold of the size of the liquidity each day. So, for example, if the threshold is 1% and the size of the liquidity pool in terms of $BUSD is $1,000,000, the contract will pay $10,000 a day in $BUSD tokens to lottery winners and remove a total of $10,000 a day in $BSCWIN tokens.
The aforementioned mechanism has several advantages:
  • Lotteries will be triggered regardless of trading volume. Holders will not have to worry about new investors joining to sustain the project.
  • Removing BSCWIN-BUSD from the LP does not affect the price of $BSCWIN
  • The mechanism also ensures that the project's liquidity will never be wasted or locked forever; at the worst case scenario, LP will be completely drained and funds will be distributed among BSCWIN holders in a fair and decentralized manner.
Keep in mind that only the token contract will have access to the liquidity and will trigger the frequency and amount of lottery payouts in a decentralized manner. You can check the Contract code on Bscscan or Github. Rest assured that funds are safu.
You will be able to check the Lottery schedule and stats on the website's lotteryboard.