The Reveal — a technical perspective

TL;DR: on a technical level, the reveal went smoothly and you always had your art from the first second. There were never — and there will never — be any changes to that. Read on to learn more.

A bit more about that. We have seen some confusion in the community caused by the frontend bug described in the previous article, which caused people to see different artworks in their My Collection section on the website (where, for a brief moment after launch, they saw incorrect pieces) and opensea (where they saw the correct pieces all along). The confusion is understandable, especially from the non-technical people, so we thought it would be a good idea to take a step by step journey to explain the process and why your artwork has always been yours.

What exactly happened during reveal process

We started a day before with minting all of the unsold tokens, which took some time (and tons of ETH), since we could mint only 50 pieces in a block in order to meet gas limits. A little bit of math:

  • 8,893 total pieces — 3,201 sold = 5,692 to mint
  • 5,692 pieces / 50 per block = 114 transactions
  • Approx. 120,000 gas required to mint one token
  • 50 pieces * 120,000 gas = 6,000,000 gas per transaction (block)
  • Average gas price ~180
  • Total cost = 114 transactions * (6,000,000 gas * 0.00000018 price) = 123.12 ETH

Why are my tokens shuffled?

Because the idea behind the reveal is to make it random. Same thing as Hashmasks and many others did. There are two randomising processes — naming of the artworks and then shifting the index. It is done to make sure we did not assigned any particular artwork to tokenID, just a random process based on indexes on smart contracts and our internal randomisation — naming of artworks.

Why I saw different artwork on the website than on opensea

Yes, sorry about that — a little bug. So on the website we are using the equation described above in order to present you the corresponding artwork to your tokenID — it is calculated on client side (frontend). We have a function which reads from smart contract how many tokens you address have (using web3), then we fetch tokenIDs and then generate artwork URL based on tokenID and the equation. So the problem was that tokenID from smart contract is a string, and javascript just moved forward with calculations using string instead of integer. For example (“467” + 737) % 8893 is equal to 5301 instead of 1204 and that is why results were odd. Again, excuse us technical difficulties, we were confused too.



Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Blockchain Art Institute

Blockchain Art Institute


Blockchain Art Institute is an institution born with a goal of immortalising our common blockchain history, one block at a time.