Everdragons2: Fair Token Distribution

Francesco Sullo
Everdragons2
Published in
3 min readNov 24, 2021

--

When the original Everdragons started their adventure, users were minting eggs. Any dragon could have a unique DNA composed of seven body parts plus color. Users had to wait for the egg to hatch in order to see which dragon they had purchased. In other words, the sale was blind like most non-fungible token (NFT) drops nowadays.

Everdragons2 will use the same flow.

Problems of a Blind Sale

We can cheat and distribute them unfairly if we know which dragons are the rarest (and potentially most valuable).

The solution is cryptography — of course 😃

People are OK with not knowing which dragon they will have, but they want to know the dragons on the table. We will showcase an ordered list of dragons, describing their rarity to the community before the sale, to address that desire. Later, we will shuffle the list to get the final order with a semi-random approach.

Let us explain it in detail, step by step:

  • Hash all the dragons’ images.
  • Create a list of metadata objects with the usual fields plus DNA, a list of traits, and the hash of the image.
  • Validate the list using OpenTimestamp.org (which works on Bitcoin and is bulletproof).
  • Wait for the sale to end and take the hash of the block containing the latest transaction that bought dragon(s).
  • Take the list and hash any element of the list with:
hash(element, blockHash)
  • Sort the new list of hashes.
  • Use the order of the list of hashes to reorder the original list.
  • Assign metadata and image to every dragon, according to the semi-randomly ordered list.

In simpler words…we get a list of all dragons, write it on a rock, and later shuffle the list using an unpredictable but provable factor.

The Un-shuffled Elements of the List

Some dragons won’t take part in the shuffle because they are pre-minted including Agdaroth, the team’s avatars (some nice common dragons, no rare ones 😉), and gifts to the community — four baby dragons, and a dozen of dragons with at least one rare trait. Since we will reveal them before the sale and some people will win those specific dragons, they will be pre-minted and stay out of the shuffle.

The Final Verification

We will create a GitHub repo with the metadata metafile, the proof by OpenTimestamp, the hash of the block with the latest transaction buying Everdragons2, and the code to generate the final list starting from the metafile.

We will use it to do the job; you will use it to verify that we did the job as promised 🤝

ADDENDUM (Dec 11th)

Here there is a tool I wrote for the shuffle:
https://github.com/ndujaLabs/metadata-shuffler

We will soon introduce our first initiative to reward early ED2 community members. Stay in touch on our Discord server!

If you like this post, please 👏 and share it!

--

--

Francesco Sullo
Everdragons2

Polymath. CTO at Superpower Labs & @MOBLANDHQ. Before founded @Passpack, and was at @Turo, @Yahoo, @Tronfoundationand others. More at https://sullo.co