The common base on which the entire structure and technique of the draws made on Pickaw rests.

The public and verifiable part of the Drawchain™ is currently under development and will be available very soon. Being already in place since the launch of Pickaw, it will be retroactively verifiable. Follow us on the social media to be notified of its arrival!

Overview of the Drawchain™

Seed Pool
Seed 45cdz4W0Cc28sZaQ
Seed yVQ42tfQ8McEjIIA
Seed RWwjzQw4ShULofUd
Seed Pool
Seed nnWqTElLhG6OvPPF
Seed 06nrizrLXKHhbEAg
Seed FLvwQhNjahe6WGrO

To begin with, here is a representative diagram of the Drawchain™ to give you a mental picture and better understand the rest, which will be a little more technical.


— Set of Seed Pool.

The Drawchain™ governs all draws on Pickaw through links between seed pools.

Seed Pool

— Set of Seed.

Each day corresponds to a Seed Pool being at the origin of the seeds generated and used by the draws made the same day.


— String of characters.

Each seed is unique and can be associated with a draw to produce and reproduce the process and outcome.

Technical definitions

Before getting to the heart of the matter, here is a list of technical definitions to familiarize yourself with the terms you will encounter several times on this page:

  • master_seed: a unique and random string of 32 characters in base62.
  • seed_pool: finite list of hash generated consecutively.
  • hash, global_hash, ending_hash: unique and random string of 64 hexadecimal characters.
  • seed: unique and random string of 16 characters in base62.
  • sha256: standardized and highly secure hash function.
  • base62: coding the information in 62 characters.

Let's go into details...

It's time to get started! As described above, the Drawchain™ is a name given to the list of Seed Pools. So we'll see now what it contains and how the Seed Pools feed it!

Creation of a Seed Pool

The origin of a seed_pool comes from the master_seed generated by at our request each evening shortly before midnight UTC for the following day.

A seed_pool therefore contains a list of all draws for a 24-hour period.

This master_seed is then used to generate a list of hash large enough to serve all draws over the lifetime of the seed_pool.

Here are the steps for generating the list of hash:

  • 1. Hashing the master_seed with sha256 to create the hash #1
  • 2. Hashing the hash #1 with sha256 to create the hash #2
  • 3. Repeat step (2.) until you have a list of hash large enough

All hash are therefore generated consecutively and depend on the master_seed.

The ending_hash is the last hash generated, it is not used and only ensures that the seed_pool has a beginning (master_seed) and an end (ending_hash) in order to prove that it has not been altered during its lifetime.

Seed Pool
master_seed ending_hash hash
The master_seed and the hash that have not yet been used are voluntarily withheld until the seed_pool is taken out of service in order to avoid any prediction of hash or seed and therefore a possible draw alteration..

Once all hash have been generated, the seed_pool is finally ready to be used. The previous one is disabled and the new one takes over; the previous master_seed is now public and can be checked (see below).

Generation and use of a Seed

When a draw is requested on Pickaw, a hash is removed from the top of the existing seed_pool and generates a unique seed that will be assigned and used for the draw.

The hash are consumed from the end of the seed_pool to ensure that the next ones cannot be predicted to alter the prints (as a reminder, the hash that have not yet been used are not publicly visible).

Here are the steps for generating a seed:

  • 1. The hash is converted to base 10 and then divided by the limit value of a seed (6216) to keep only the rest of the division (this operation is also called modulo)
  • 2. The value obtained is converted into base62, prefixed by as many zeros as necessary to produce a string of 16 characters: we therefore obtain the seed
As mentioned above, a seed is a string of 16 characters in base62. Which means it can be converted into a large number, and vice versa. Its decimal value (base 10) can therefore be between 0 (included) and 6216 (excluded), i.e. 4767240170682823533450263330816.

The generated seed is saved and can now be used to give rise to the draw... and so on until the seed_pool is taken out of service.

Seed Pool
master_seed ending_hash hash seed

We can see on this representation that 4 seeds were generated (from the last hash of the seed_pool) until it was taken out of service. The other hash are unused and have not resulted in the creation of seed.

Verification of draws

Now that you know how seed_pool and seed are generated, we come to the interesting and interactive part: how we prove that the winners come from the fruits of chance. A coincidence that you can check for yourself!

The verification can be done from any level of the Drawchain™ and in several different ways that we list below.

From the master_seed

To begin with, you can check that the master_seed we use to generate the hash of a seed_pool is the one from using the link attached to the master_seed directly from Drawchain™ or the Seed Pool in question.

As a reminder, this method of checking with is only possible after the shutdown of the seed_pool from which the master_seed belongs.

From the seed_pool

Also, you can check at any time that the list of hash generated has not been altered and follows the logic described above. To ensure this, we have created a JSFiddle available below to be able to reproduce our generation:

How to use it?

  • 1. Enter a master_seed (or a hash of a seed_pool) in the "Start hash" field
  • 2. Enter the ending_hash (or a subsequent hash) within the same seed_pool in the "End hash*" field
  • 3. Click on the "Compute!" button

From the seed

Finally, the positions of the persons drawn can be checked at any time from the seed as soon as a draw is completed. To ensure this, we have created a JSFiddle available below to be able to reproduce the generation of positions:

How to use it?

  • 1. Enter the seed of the draw in the "Seed of the draw" field
  • 2. Enter the number of contest entries in the "Number of entries" field
  • 3. Enter the number of winners to be drawn in the "Number of winners" field
  • 4. Click on the "Compute!" button
For much more simplicity, we could have published the source code of the application to prove that the draws are done according to the rules of the art. Unfortunately this is not possible since our code is proprietary and we do not wish to provide it to third parties, hence the existence of this page! And then nothing would have ensured that we would have used this open source version well, once again we have to take our word for it so we might as well not share all our know-how. Also, still in simplicity, we could have simply taken a random number between 1 and the number of entries, but that's not Pickaw 😉

There you go, now the Drawchain™ and its mechanism, which alone took several months of work, have no more secrets for you! We hope these explanations have been clear and have not lost you.