The Bitcoin Lotto is live

Hi Privacy Quest players, thank you for your patience! I’m happy to finally announce that the BTC lotto has begun.

BTC lotto timeline

Start date: 24 May 2021
End date: 12 Jun 2021
Prize distribution date: 14 Jun 2021

All transactions made after 12 Jun, 0h UTC will be rejected.

The prize

Earlier, we posted that we would wrap up the bitcoin lottery ahead of time, and divide the prize proportionate to the number of LOTTO tickets distributed. If you missed it, please refer to our previous announcement for more details about why we decided to wrap up the game.

Currently, 3,802 LOTTO coins have been distributed (won via the wheel). Assuming there are no more LOTTO coins distributed from now till the end of the lottery, the prize would be 3,802 / 21,000 = 0.181 BTC (6,968 USD at the time of writing).

However, the fees collected from the wheel so far total about 5000 PRV (9,100 USD), which at the time of writing, is worth more.

As we do not intend to profit from this initiative, the prize will be whichever amount is higher at the end of the lottery, based on pDEX dollar prices on 12 Jun, 00:00. It will take into account the final number of lottery tickets distributed, as well as any additional spin fees collected.

We will post the final numbers on the forum once the lottery has concluded.

How to play

It’s simple: 1 LOTTO can be swapped for 1 lottery ticket. Each ticket is randomly assigned a number, and the smallest number wins. You can get LOTTO by spinning the wheel, or by purchasing it on the pDEX.

1. Once you have LOTTO, tap ‘Buy a ticket’.

You’ll be brought to a confirmation screen. The only fee payable is the cost of transacting on the Incognito blockchain.

2. Tap ‘Send’.

Once you tap ‘Send’, a transaction will be created to assign a random number to your ticket. You can see your ticket numbers under ‘My tickets’.

Note: If you encounter any issues, just retry the transaction. All you have to do is paste the txID (the long string of numbers and letters) into the retry field.

You can also submit a manual tx to the server game app.

3. Tap ‘All tickets’ to watch the winner emerge

You’ll see all the tickets that have been purchased so far, arranged by the smallest number on the top of the list. The ticket with the smallest number by the time the lotto closes is the winner (12 Jun 0h).

4. Win BTC (hopefully!)

If you’re the lucky winner, you’ll receive a notification that it’s time to claim your prize.

How it works behind the scenes

When 1 LOTTO is spent in exchange for a ticket, a transaction is created and submitted to the chain, then submitted to the backend of the game.

How the winner is selected

The smallest ticket number is the winner.

The numbers assigned to tickets are selected using a verifiable random function (VRF), which is used to generate a pseudo-random value on the server-side from the input of users.

Based on the property of VRF, a non-interactive verifiable proof is also provided to verify the correctness of the computation. The VRF consists of the following algorithms:

  • KeyGen: Server generates key pairs (private_key, public_key). Server will keep private_key secret and publish public_key.

  • Comp: Players submit their input. Server computes and returns

(rand, proof) ← Comp(private_key, player_input).

To guarantee the uniqueness and unpredictability of player_input, we require players to spend LOTTO to the server address each time they swap it for a lottery ticket. The transaction ID is player_input.

  • Verify: Anyone can verify the correctness of (rand, proof) by checking that

Yes/No ← Verify(public_key, player_input, rand, proof).

We implement the VRF algorithms described in this paper . If you’d like to check correctness, please refer to the instructions detailed in the following section.

How to verify randomness

If you’re interested in verifying the randomness of your ticket number, it’s fairly easy. The source code is public.

LIVE value

LOTTO_MASTER_ADDRESS = 12Rw6fDqnqAAyLokpJrArN93yENmxEkHzFsfAENVuHa99YSv6bb4BULRAiScG43qZp1e2823pXUeqCejfq23G3sguKZoFZocwF5q9kp



gkeyString = "4k7dHdxPALMslHLrQr2dBHfzXJfeQg3lLhpzEw/N8Hk="

pubKeyStr = "i0Zv8L7DJhSA2Z+b5JdLGJlM6pEjs2eIMm+qHsvAHj0="

1. First go to this go-playground:

2. Tap ‘My tickets’ to get your Ticket String and Proof string.

3. Replace the value in the source main function.

After running, the result must be True.

If the result is Timeout, just try again.

Feel free to leave any questions in the comments below.

Good luck!


Thank you, @binh!

This looks great and definitely reflects a lot of work you’ve been putting into the background.

Quick question, I don’t see how this factors in the previously offered prize pool. Are those still available via the QUEST wheel? If so, are there similar directions for how those prizes are won and claimed?


the QUEST has bean stop distributed.
You can go to pdex to buy QUEST or buy LOTTO to enoy the game.



1 Like

Appreciate the prompt response.

So, I guess I’m just confused. I have QUEST, but no access to the QUEST tab in the app. How do I use QUEST to spin for the original prize listings?

@Sky824, its still there. Just click the “Wheel” button in the top left of the Quest tab.


Ahh, gracias.

When I click QUEST through the app it doesn’t load anything, but I’ll wait to see if that’s just a bug or update I’m waiting on to access.

**Update- anyone with a similar issue- the Quest link through the app never did work for me, but the brilliant minds of Support got me to the wheel via typing the URL ( ) into the Incognito Browser. **

Thanks for shipping this @binh and @duc ! Very much appreciated.

However I just tried to buy a ticket and keep getting error 400. Might be related with some wider issues as my balance is also not showing Balance not showing.


1 Like

The above has been resolved. Thanks team!

Some quick feedback on the lotto: what happens if I have 100+ lotto tickets? Do I have to spend hours continuously pressing ‘Buy a ticket’ ?


:100: :100: :partying_face: :partying_face: :100: :100: …Thank you @binh and @duc for finally bringing this issue to a head and finally concluding this, though a well-intended side project, one that seemed to have run into issues that finally doomed it. For a while there it had become an albatross about Incognito’s neck and well with its conclusion it can finally be put to rest and no longer be that albatross. No longer, a distraction, the dev team can now be freed up to continue the excellent work that it has been doing these past couple of weeks to improve the core of the Incognito project. Once again thank you to those that worked on and aided in the Quest project but we can move on now. It also would be advisable once the raffle is completed and all loose ends are resolved the quest part of the Incognito app should be removed so in turn there can be less confusion for new members especially. Thank you… :sunglasses:


Does not appear that the list is filtering by smallest to largest… I see a ‘3’ as the first digit of the one at the top… But if I go down a ways ‘1’ is the first digit of one lower.

@binh when I spin the wheel with 20 quest, it only spins once and there’s no spin history, but it charges me 1.4 PRV and removes 20 quest from my wallet. Glitch?

1 Like

I had the same issue @JG20. This is a @Support question.

1 Like

Don’t look at the first number. Look at how many digits there are total.


Same here, 53 spins and no history

Gotcha. I thought they were all the same length. I see now that they are not.

can you send me your tx and payment address ?

1 Like

please send me your tx and payment address.

yes, after finish LOTTO round, we will remove it from the app.


Today I got all notifications from spins I made days ago and I have been receiving them so late since then.

Has this happened to someone else? Or is it normal?