Announcing SLP Lottery: Reward Randomly Drawn SLP Token Holders
SLP Lottery makes it easy for users to randomly drawn holders of a specific SLP token based on their holdings of that token. Go visit slplottery.cash.
For Those Who Don’t Know
A quick summary of what an SLP Token is. An SLP token is a token built on the Simple Ledger Protocol running currently on Bitcoin Cash. This protocol allows users to easily create, exchange and use tokens. A token can represent multiple things from loyalty points and concert ticket to memes. Basically, everything in the global economy can be represented as a token.
Inspired by the SLP Dividend Calculator
The famous Bitcoin.com tool is what inspired me to make this. The SLP Dividend Calculator allows a user to send BCH or SLP Token to every holder of a specific. And that naturally opens the way to dividend payment.
The idea was that a different tool would open new usage. By picking one or few holders open the way for lottery tickets or even some kind of election. Basically, everything that requires a random draw.
How It Works?
The user fill the form with only two information: the token ID and the number of winners. The token ID is the fingerprints of the token and can be found on multiple explorers (explorer.bitcoin.com, simpleledger.info). The number of winners field determines how many SLP holders (from 1 to 10) will be drawn.
On submit, winners (or more precisely addresses that holds the tokens) are randomly picked from the list of the token holders. It’s a weighed draw. Meaning that for every unit of a token you have, you get one chance. The more token you have, the more chances you get.
Also, addresses are not replaced after one pick. It means that addresses can’t be drawn twice in the same draw. If a token is held by a sole address and the user wants two winners, it will naturally only get one winner.
As I don’t see any value in SLP Lottery holding any funds, it is up to the user to choose the reward he sees fit and to send it.
Current Limitations
SLP Lottery uses the Fullstack REST API to function. As it’s a side project, it uses the free tier. Due to that, it is limited to a few requests per minute. Users might have to wait a few minutes before being able to draw any winners.
Additionally, one of the API calls gives a result limited to 10,000 outputs. So if a user put the ID of a token that is held by more than 10,000 addresses, the winners will be drawn between the first 10,000 addresses. It’s not a big deal. To my knowledge, except the SPICE and HONK HONK tokens, no token has more than 10,000 addresses holding that token. The solution to that would be to spin a node or an instance of SLPDB and it doesn’t seem to be worth the pain for now. Maybe I will tackle these issues in a future upgrade.
Future Upgrades
Maybe in the future I will add more parameters to the draw. For example, a non-weighed version. It would take the addresses into account and not the quantity of tokens those addresses hold. Though that kind of draw could be easily cheated by spreading your token between any number of addresses.
Next the ability to exclude some addresses from the draw. Usually the address that holds the most of a specific token is the address issuing them. Fair game.
If you have any suggestion, I am all ears!
What a fun and perhaps practical idea. Lots to wrap one’s mind around. Thanks for doing this!