đź“ś

Boglez Whitepaper

By Jascro Labs

Website

From the heart ❤️ | No Gen-AI was used in the creation of this doc 🚫🤖

Provenance

This Whitepaper’s contents has been hashed and committed to the Eth blockchain using Blockposal.io - a tool for fingerprinting ideas on the blockchain - such that we can prove to be its original creators.

Executive Summary

Boglez is a brand new category of project that aims to set the standard for transparency and fairness across the Web3 industry. It delivers on the promise of decentralised computing such that we are confidently declaring Boglez as the world’s first fully unruggable NFT project.

This document offers the NFT aficionado the means to learn about every aspect of the project and make an informed decision whether to be part of this journey. The team has gone to extraordinary lengths to make sure that every component of the project can be publicly verified before mint. It’s is our strong belief that if we are asking future holders to part with their hard-earned coin then it is our duty to guarantee they will have access to the entire incorruptible end-to-end experience.

In terms of the experience, up to 8192 Boglez will be minted into the wild with 15% of the mint proceeds immediately going to charity (more in this section: Charity) and another 15% immediately going to a secure winnings contract. Throughout the journey, holders will learn more about their Boglez including their backstory, element type, and physical appearance. They will also learn more about other Boglez which stand in their way as they battle to become the last surviving Bogle. As Boglez battle each other, holders will receive commemorative prize NFTs indicating their participation and offering access to future battles. Eventually the holder of the last surviving Bogle will be able to claim up to up to 15% of the mint revenue (likely six figures USD if project sells out) in winnings.

A very simple summary of the end-to-end Boglez experience is shown in the diagram below. Each component of the journey is explained in detail throughout this paper.

Unruggable

Since its inception, the NFT space has been plagued by people selling promises only to drop off the face of the earth once their unfortunate victims have parted with their coins. This series of events is known as “rugging” and is typically orchestrated by either fraudsters or those who started with good intentions but subsequently gave up on their projects. It usually involves an aggressive marketing campaign to convince potential buyers there is value in a future stream of work that they are not actually accountable to deliver.

The sad thing about rugging is that it is totally avoidable. Web3’s core thesis is ownership and transparency for all. This means that any product’s offering, be it an NFT project or DeFi protocol, can be publicly verified as legitimate. Few understand just how powerful Web3 is for global fairness and Boglez hopes to not only show the world, but also embody this from head to tail.

Our promise is that every phase of our project will be delivered upfront ahead of mint. In addition, 100% of our business logic will execute on-chain. This means you will know what we have delivered before you commit to minting. Any independent third party - including holders with the technical expertise - can verify that the journey will be available regardless of the actions of our team.

Again, in the interest of transparency, we will still make use of traditional technologies to enhance the user experience throughout the Boglez journey. However, these centralised components will not be essential to the project. For every silky smooth webpage we will also offer a very basic version hosted on IPFS (decentralised storage) to perform the same actions. This means that even if we shut down all our servers and run away from the project (this will not happen), the tools for the average user to complete the Boglez journey will still be available. This additional investment for us as project owners is significant and we hope it demonstrates our commitment to delivering the world’s first unruggable E2E experience.

As a comparison, most projects conduct the majority of their business logic off-chain. This is because it is easier and more cost-effective from a development perspective than it is to perform everything on-chain. Yet, because somewhere in the experience an on-chain NFT exists, they still market themselves as Web3 projects. We believe such corner-cutting is not done in the spirit of Web3 and so have committed to assume the upfront cost and risk such that potential holders know exactly what they are buying.

Not only will we be building in line with this new unruggable standard, we will also be educating our community as we do it. We want everyone to understand exactly how we are providing fairness so they can make their own informed decisions.

Being unruggable is such a core part of this project that we will continue to make reference to how we achieve this throughout the rest of this paper and the project.

Note that we do sometimes make reference to the future plans that are not covered by the unruggable scope such as future Boglez seasons. Whenever we mention such initiatives we will include the 🚨 Ruggable Alert 🚨 tag. This informs readers that we intend to deliver these initiatives but it requires trust in our team. Such trust would be well placed but we include this in the interest of extreme transparency.

Team

The team at Jascro Labs comes with a proven track record, with all three founders holding master's degrees in engineering from renowned institutions, including Imperial College London, ranked #2 globally after MIT (ref). We have decades of industry experience between us having delivered tech projects for global brands such as Amazon, Barclays, The Economist, Canon, TikTok and ExxonMobil.

We have also built a strong portfolio in the Web3 space having delivered multiple projects for global brand Hape (opensea 57k Eth vol | twitter | web | discord) including a collaboration with global fashion brand Diesel (link); an end-to-end digital to physical fashion journey; and POAPs for NFT NYC, NFT LDN, & Edge HK. Our sister company also owns and operates lunom.io which is a multi-chain payment system with built-in AML checking allowing e-commerce sites to take payments in a number of different cryptocurrencies. Finally, we also run blockposal.io which is a platform allowing for ideas to be fingerprinted into the Ethereum blockchain as we did with this whitepaper in the Provenance section.

However, after over three years in the space, it is time for us to release our own NFT project which represents a culmination of our extensive knowledge and insights from the space, aimed at delivering something entirely innovative!

Chain

At the point of committing this whitepaper to the blockchain, the team has not decided which blockchain would be best for the community for Boglez to run on. Our contracts have been crafted with the EVM in mind but ultimately the team will select the chain based on keeping transaction fees low for users (this is important given the large amount of state managed via the Boglez smart contracts); access to liquidity; and ease of onboarding for new users.

Winnings

A core part of the Boglez journey is the significant prize fund that opens up to the final eight surviving Boglez.

When each Bogle is minted, fifteen percent of its mint price is immediately allocated to its winnings balance. As Boglez defeat each other, they inherit their victims’ winnings which results in exponential winnings growth for surviving Boglez. However, holders will not be able to access their Boglez’s winnings until there are only eight Boglez remaining.

At this point holders are able to intentionally sacrifice their Bogle in exchange for retaining the majority of its winnings. However, doing so will also route portions of their winnings to charity and their would-be opponent. For the boldest holders, they can chose to battle until no more Boglez remain and claim the entire remaining winnings fund. The table below shows how significant this fund can become at a $200 (~0.06 ETH) mint price across 8192 Boglez.

Table 1: Winnings per bogle after each round

Round 0$30
Round 1$60
Round 2$120
Round 10$30,000
Round 13$245,000

*Note the table assumes no early withdrawals from the final eight.

In accordance with the unruggable standard, the distribution of these funds is controlled entirely by a series of smart contracts. This guarantees any holders whose Boglez reach the final eight access to the promised winnings. To make this unruggable, we have designed the smart contracts such that it will not be possible for the Boglez team to withdraw any funds (to pay the team, cover gas costs, etc) without the funds being redirected to a secure winnings contract managed by the state of the battles.

Charity

We are committed to Jascro Labs being a power for good in the world. Using a similar on-chain mechanism to how the winnings fund is managed, an additional fifteen percent of mint revenue will be directed to a charity in the education space. We are in discussions with a number of charities some of which have refused to receive donations in crypto which came as a shock. In addition, fifteen percent of all royalties will be directed to different charities throughout the year. We have seen the lives that can be crafted with a good foundation of technical skills and are committed to ensuring everyone has equal access to technical education. We believe building a curious, motivated, skilled, and happy population is a route to a better society. By joining the Boglez journey you will be directly helping these causes.

We do appreciate that we are not the first project to donate funds to charity but we do want to advocate for this being more commonplace in projects’ offering. We all have a duty to both help others when we can but also start to rebuild the damaged crypto and Web3 image.

Secondary Sales

The Boglez token contract will meet the ERC721 standard and the prize token will meet the ERC1155 standard meaning both tokens can be traded on popular NFT marketplaces. A five percent creator’s royalty will be taken upon each sale. Fifteen percent of that five percent will be donated to charity for the lifetime of the project.

An additional fifteen percent of all royalties will be directed to a miniature winnings pot. These miniature winnings are not intended to be life-changing sums of money but a nice bonus to a holder’s monthly paycheque. Think a meal out rather than a new car. Each quarter we will run a series of light-hearted games with a subset of randomly chosen holders where that quarter’s winnings pot will be available as a prize. Table 2 shows how the size of this pot could vary depending on the monthly transaction volume.

For the complete random selection process see Appendix 5.1.

Table 2: Monthly transaction volume vs. miniature winnings pot size

Monthly trading volumeMiniature winnings pot
$10k$75
$50k$375
$100k$750
$250k$1875

In order to achieve all this, we rely on creator fees generated on each secondary sale to be respected which forces us to make a difficult decision. Unfortunately, the NFT marketplace landscape has been in self-destruct mode with OpenSea and others causing a stir in the community by announcing they will no longer respect creator fees. This short-sighted approach is guaranteed to drive creators away from their platforms or simply find other ways to generate direct revenue from their holders in order to survive.

As such we have modified our smart contracts to only allow trading on marketplaces that enforce royalties.

Community

We intend to build a community around this project with two clear goals:

A) Educating each other about building in Web3. This includes but is not limited to tech, business, and social subjects.

B) Providing an easy and efficient way to learn more about the project and keep updated with mints, reveals, and challenges.

Our Discord server will be our primary home where the team will be available for regular “office hours” to discuss any aspect of the project. We will also spontaneously hang out there whenever we take breaks from building. It is likely that early community members will be able to build real relationships with the team whilst the ratio of community members to team members is small.

The Discord server will be intentionally lightweight with few, clearly defined, channels. The intersection of common interests within the project server will be focused and impactful so there will not be the need for the hundreds of impossible-to-keep-track-of channels that some projects overwhelm their community with. The vision is for a simple and accessible place to learn and build relationships.

We will also broadcast announcements publicly via our X account but the discord server should be considered the inner sanctum for community members. As mentioned above, see the Boglez.com website for links to both X account and Discord server.

The E2E Experience

The next sections take the reader through each stage of the Boglez experience, from mint to declaring the winner and last surviving Bogle. Starting with the building of the allowlist and the corresponding allowlist mint.

Allowlist Mint

In advance of launch we will be building an allowlist (AL) of wallets with the right to a guaranteed mint. Each wallet will be allowed to mint up to two Boglez via the AL mint. However, it is worth nothing that most wallets will only be entitled to mint one Bogle. Only those who engage deeply with the project and its community may be offered the ability to mint two. All wallets in the AL will be run through comprehensive AML checks to ensure our collection only receives funds from legitimate sources. Anyone will be able to check their wallet’s AL status using our website during this time.

Despite allowlists being considered a legacy mechanism we still believe it offers a unique opportunity for would-be holders to interact and learn about the project in advance of the mint. It also has the advantage of being simple and easy to understand - a measure by which many NFT projects fail terribly. Furthermore, given we are a tech-first team and don’t have a massive platform to broadcast from, it can also be a helpful mechanism to spread the word about the project.

The Allowlist process will be driven by our X account and a dedicated announcements channel in our Discord server. For links to both X account and Discord server see the Boglez.com website. A block of allowlist spots will be opened alongside a challenge that would-be holders will need to complete. Once all the spots are filled we will release the next block with a new challenge and the process will repeat. These challenges will be trivial in the beginning but as time goes on will become more and more difficult as interest in the project grows.

We will be leveraging tech heavily throughout this process and intend to release a number of micro-sites with gamified challenges to engage and grow our community. Stay tuned with our twitter and/or discord in the meantime!

This entire process is summarised in the flowchart below:

Public Mint

After the allowlist minting period is over, it will be possible for any member of the public to mint one or more of the remaining 8192 supply on a first come, first served, basis. The mint price for public mint will be slightly higher for two reasons: to reward those who completed the challenges to make it into the allowlist; and to account for the additional development & infrastructure cost to perform real-time AML checks on unknown wallets.

During the public mint, there will be a limit of minting one Bogle per transaction so that the remaining members of the public have a reasonably fair shot at minting. There will not be a limit on the total number of Boglez a single wallet can mint. Such a restriction is pointless anyway due to how easy it is to spin up new wallets, especially for motivated and well-resourced buyers.

Terrain Distribution Reveal

The terrain distribution reveal will occur at a predefined time after minting. Each Bogle is born of either Air, Earth, Fire, or Water. This is shown in its appearance and, more formally, its metadata.

Boglez battles take place on an element-specific terrain and if a Bogle is fighting on its natural terrain then it will have an advantage. For example, if a fire Bogle was to encounter an earth Bogle on a lava-filled volcanic plane it would defeat its opponent more easily than if it were fighting in the earthy forest or rocky mountains. Exactly how this advantage is defined will be covered later in the Going to battle section.

One week after minting has finished, we will begin to reveal information about the battles that are to take place. The first reveal is the terrain distribution which informs the public of how the terrains will be split across the 8191 battles. This reveal does not prescribe exactly which terrains each battle will be fought on (this comes later) but rather the total number of battles per terrain throughout the entire journey.

A perfectly distributed set of terrains would be: 25% Fire; 25% Water; 25% Earth; 25% Air. However, to make things more interesting the team will inject some randomness into the distribution allowing each distribution to land somewhere between 23-27%. For example, a possible outcome might be:

The above scenario implicitly makes air Boglez more valuable as there is a greater chance holders of an air Bogle will find themselves with a terrain advantage during battle. The process to generate the split will be provably fair and will be determined publicly using the process outlined in Appendix 2.

Boglez Reveal

Immediately after mint, each Bogle will be in an unrevealed state. One week after the terrain distribution reveal, all Boglez will have their true form unveiled in an all-at-once reveal. No action will be required by the holders other than checking via the Boglez website or any secondary marketplace after the reveal has taken place.

The reveal will determine whether your Bogle is born of Fire, Earth, Water, or Air. It will also determine the physical appearance of your Bogle, summarised by a collection of traits.

To ensure the reveal is fair the Jascro Labs team will use the following process laid out in Appendix 3 to randomise the Boglez

Going to Battle

The entire Boglez journey centres around coming face-to-face with your opponents and defeating them in battle to absorb their winnings. In order to understand the significance of the draw generation and reveal process which comes before the first battle, we must first dive deep into the battles themselves.

This section provides a detailed overview of the battle game mechanics. It aims to give the reader an understanding of the battle rules from a user’s perspective but also explains why and how these rules are executed from a system design perspective.

One of the key design criteria for the battles was that 100% of the battle logic would run on-chain. This is imperative for the Jascro Labs team to deliver the unruggable experience that holders deserve.

As such, for season one, the battle experience may feel somewhat rudimentary. Despite this, we feel it represents a worthwhile tradeoff to provide a fully unruggable experience. It also has the benefit of the result being completely in the hands of the holders due to the deterministic nature of the battle program.

The battle is a one-on-one engagement between two Boglez, where the objective is for each Bogle to employ its attack to eliminate the other. Each Bogle is allowed a single attack per battle. In the first season, attacks are based solely on location. Each Bogle must anticipate the location of its opponent and direct its attack accordingly. A simplified depiction of a battle using a 3x3 grid is illustrated below:

The victor of the battle is determined by the proximity of their attack to their opponent's position. Let us consider the below battle where the circles represent each Bogle’s position and the stars represent each Bogle’s attack.

In this case, neither Bogle has selected an attack position which perfectly hits its target. However, the distance between Bogle B’s attack and Its target (D1 in red) is less than the distance between Bogle A’s attack and its target (D2 in blue). Geometry tells us that a diagonal will always be slightly longer than a direct horizontal or vertical distance. Therefore, Bogle B wins the battle and moves on to the next round.

Terrain type adds an extra dimension to the game which provides Boglez fighting on their home terrain an advantage. This advantage is established by artificially enlarging their opponents such that the home-terrain Bogle’s attacks don’t need to be as accurate to secure the win. The enlarging is achieved by extending the opponent’s footprint such that they are also present in the four cells immediately above, below, left and right as shown in the diagram below. Let us extend the above example to include the effect of Bogle A fighting on its own terrain.

Due to Bogle A fighting on its own terrain, Bogle B’s presence (target size) is artificially enlarged and thus covers a larger surface area than before. Now the distance between Bogle A’s attack cell and the closest cell containing Bogle B (D2 in blue) has been reduced in size such that it equals D1 (in red) meaning Bogle B is no longer the clear victor. We have a stalemate.

A stalemate is possible when each Bogle’s attack is of equal distance to its respective opponent. This is exactly what happened in the above example once the terrain was taken into consideration. In these situations the algorithm needs a clearly defined mechanism to select the ultimate winner. It does so using a concept called seeds.

For each pair of battling Boglez, one is designated as the seed. In the event of a stalemate, the seed advances to the next round. The assignment of seeds throughout the competition is entirely random and how this is achieved fairly is explained in more detail in the Appendix 4: Phase C section.

In the first round, seeds are explicitly assigned to each battle. However, this approach cannot be sustained in subsequent rounds, as it is impossible to predict which Boglez will emerge victorious in earlier battles and proceed to a given round. Consequently, for rounds two and beyond, each battle is assigned a side of the draw from which the seed will be selected.

This is best explained graphically. Using the below example, each numbered circle represents a battle between two Boglez.

Ahead of time, all the battles in round two (2.1 and 2.2) are already aware how they are sourcing their seeds. The draw knows that whoever wins battle 1.1 (incoming winner from the left) will be the seed in battle 2.1 and whoever wins battle 1.3 (incoming winner from the left) will be the seed in battle 2.2. This continues through the rounds such that whoever wins battle 2.2 (incoming winner from the right) will be the seed for battle 3.

The nuance of visibility

It is important to note that the battle does not work if either Bogle knows:

a. their opponent’s position at the time of placing their attack

b. their opponents attack at the time of selecting their own position. In each of these scenarios players can use this knowledge to easily progress to the next round.

However, the blockchain is fully public which means a novel solution is required to prevent each Boglez’ action from being exploited by their opponent.

The Jascro Labs team’s solution is to never store a move’s raw data on the chain during a battle but instead store a proof in the form of a signed message. Essentially the battle is split into three parts:

  1. Each Bogle selects their position and attack with the corresponding proof being stored on-chain.
  1. Once both Boglez have done the above, each bogle submits their raw move data and the smart contract verifies that it matches the proof provided earlier.
  1. Using the verified position data, the winner is determined.

This security measure means the battle requires an additional transaction versus if raw values were to be used but also prevents bad actors from using their technical expertise to unfairly gift themselves a victory.

Handling non-participation

Another series of edge cases that need to be handled are if one or more Boglez do not participate fully in a given battle. These scenarios and their resolved outcomes are listed below.

  1. If no Bogle takes part in the battle by the time the draw moves to the next round then the seed will progress to the next round.
  1. If one Bogle takes part in the battle and the other does not by the time the draw moves to the next round then the Bogle that participated will progress to the next round, regardless of seed.
  1. If both Boglez partially take part in the battle (e.g. submit their attack and positions but do not follow up and reveal them publicly) then the Bogle the seed will go through.

Draw Reveal

The final, and most complicated, reveal that takes place is the draw. The draw represents the path each individual Bogle will take in its journey to be the last surviving Bogle. The structure is that of a knock-out tournament with up to thirteen rounds to victory.

Once revealed, the following information will be made public:

  1. The terrain upon which each battle will take place.
  1. Who is fighting who in round one.
  1. For each battle, which side of the draw the seed Boglez will come from. Seeds represent a default winner in the case of a stalemate. More info on seed Boglez in the Going to battle section.

An example of a miniature draw is included below for reference. Each circle represents a battle. Within each battle the following properties are exposed:

  1. The side of the draw the seed Bogle will be taken from: left (L) or right (R). This is shown on the left hand side of the | character. Note that in round one, the Bogle Id annotated with (s) is the seed.
  1. The terrain the battle will be fought on: earth (E), fire (F), air (A), or water (W). This is shown on the right hand side of the | character

Generating this draw must be provably fair. Certain draw permutations will have advantages for certain Boglez if their path to victory features many of their home terrains. Although it is possible by chance for a Bogle to fight every battle on their home terrain we must prove that such an outcome occurred by chance rather than design.

As such the Jascro Labs team will use the process outlined in Appendix 4 to generate the draw.

Draw Progression & Retirement

Draw Progression

As explained above, the draw is composed of a series of rounds throughout which the number of Boglez in contention for the ultimate prize declines. Each round is time-bound such that at a specific point in time it will be possible to move the draw to the next round. The act of moving the draw to the next round analyses the battle results and ensures the correct Boglez are progressed.

To account for holders on multiple timezones and the fact that we mostly live busy lives, rounds will not be quick-fire but rather span one week each to give everyone ample time to participate. The round schedule will be publicly available on our website and regular reminders will be posted in both our Discord server and X account when rounds are closing soon.

In the spirit of being unruggable, the schedule will be managed on chain such that any wallet with sufficient funds can progress the rounds after the cut-off date. Although possible for anyone to submit these transactions, they will be expensive given the amount of state that has to be mutated between rounds. As such the Jascro Labs team will cover this.

Winnings Propagation

As Boglez defeat their opponents and progress through the rounds of the competition, they acquire the winnings of any defeated opponents. Using the Boglez website (or making direct calls to the blockchain) any holder will be able to view their Boglez winnings at any time.

Whilst it will be pleasant to observe this number doubling each round, it is not possible to withdraw the funds until only eight Boglez remain. At this point the holders of each Bogle will be forced to make a difficult decision - continue fighting or retire?

If one choses to continue fighting then they still have the chance to defeat their next opponent and claim even more winnings but also take on the risk of being defeated and see their entire winnings go to their opponent.

The option of retirement is slightly more nuanced. If a holder whose Bogle has reached this stage decides the risk of being defeated is too great they can elect to retire. Retirement does not allow the holder to claim their full winnings but instead redirects 20% of the winnings to charity and 20% of the winnings to your would-be opponent leaving only 60% for the holder to claim.

Each battle will be broadcast on the Boglez socials and so this already difficult decision will be made even more nail-biting by being fully public.

Ghost holders

As Boglez battle their way to be the last survivor, unfortunately most Boglez will be met by an inevitable death when defeated. When a Bogle is defeated in battle, its physical body is put to rest and thus its NFT is burned. This means that by the end of the journey only a single Bogle will remain in the original collection.

When a Bogle’s physical body is put to rest, the strength of its spirit remains and so whilst the original Bogle NFT is burned, the respective holder will receive a Genesis Season Ghost Bogle as part of the same transaction. Any minted Ghost Bogle will share the same traits as the original Bogle.

It is our hope that Ghost Boglez will be held forever by season one participants. However, Ghosts will be tradable on the secondary market like any other ERC721 token.

🚨 Ruggable Alert 🚨 In an attempt to reward early supporters of the project, holders of Genesis Ghost Boglez are guaranteed allowlist access to future experiences. They will also get discounted access to the corresponding mints and thus will be entitled to an outsized reward vs. those who were not part of the first Boglez season.

Prize tokens

When a Bogle emerges victorious in a battle, a prize token will be sent to the holder's wallet. This token will serve as an official record of the specific battle by revealing the following details:

These prize tokens will implement the ERC1155 standard, making them fully tradable on secondary marketplaces. The primary purpose of these tokens is to immortalise a moment in blockchain history, allowing each holder to preserve it as a keepsake of that particular battle.

🚨 Ruggable Alert 🚨 Furthermore, there is potential for additional value to be realised from these prize tokens, as outlined in the Beyond Season One section of our plans for the future.

Beyond Season One

🚨 Ruggable Alert 🚨 

Admittedly, we were hesitant to include this section in the whitepaper. It is very easy to make promises in an attempt to convince potential holders of the future value of a project. Many projects have done this only to disappoint their communities by the lack of delivery.

As such, we want to make something very clear:

🗣️
Please take this section as a collection of thoughts around the direction we can take the project in the future rather than a promise we are making to you. Do not base your decision to participate in the project based on a future roadmap. Make the decision based on the unruggable elements guaranteed by the blockchain!

Following establishing our brand with a successful first season, we aim to have two priorities: improving on-chain gameplay and future seasons collaborations.

We are aware that the first season’s gameplay will be rudimentary due to the unprecedented nature of what we are attempting. Once the concept has been proven, and hopefully with a few more resources, we aim to push the limit of what is possible for a game where 100% of its logic executes on-chain.

By increasing the logical capability of the on-chain game engine we hope to, in future seasons, introduce weapon tokens leading to weapon-specific attack moves; armour tokens; health tokens; and extremely valuable revival potion tokens. Through a mixture of mints and airdrops, participants would achieve ownership of these secondary tokens which can be strategically applied to increase their chances of survival. It is likely that the odds of receiving a legendary accessory token will be enhanced for Ghost Bogle holders participating in future seasons.

We also plan to partner with established brands when releasing future seasons. In such seasons Ghost Bogle holders would receive guaranteed allowlist and discounted mint prices.

Finally, legals permitting, we also have a vision to direct some operating profit to the creation of a long-term strategic investment fund partially owned by Ghost Bogle holders. Eventually, we would like to see technology allowing the management and participation in this fund to be completely decentralised and managed by the community of holders.

Appendices

Appendix 1: Sourcing Randomness

Throughout the Boglez journey there are a number of scenarios where the team must require a form of randomness. These scenarios include providing a randomised reveal, randomly generating the tournament draw, and randomly generating the terrain distributions.

Each time randomness is sourced, the team has to prove that it was done fairly such that no party could have manipulated the process to get a favourable result for their personal agenda.

In order to do this the Jascro Labs team have devised the following method to fairly, and completely unpredictably, source randomness. This method relies on one simple truth: It is not possible to know the exact future price of Ethereum. We feel this is a fair assumption upon which to build the process.

The reason is twofold: 1. Nobody can know the future price of Ethereum down to the cent & 2. If they did then they would automatically have access to infinite wealth and so would not be incentivised to cheat in an NFT project’s randomness sourcing.

The process is as follows:

  1. We publicly announce a block number in the future.

    For example, block 18205726 link
  1. When this block is confirmed we find the final transaction in that block:

    In the case of block 18205726, this tx
  1. Using this transaction, we calculate the Eth price in USD by dividing the dollar price of the transaction fee by the number of Eth.

    In the case of this tx, USD/ETH = 0.26/0.000164748265291443 = 1,578.1653 USD/ETH
  1. Take the four least significant numbers in reverse then divide by 10,000 to get the random number.

    In the case of 1,578.1653, the last four digits is 3561 and therefore the random number is 0.3561

Appendix 2: Terrain Distribution Reveal Process

The following process will be used to generate the terrain distribution in a fair and public way:

  1. When minting is closed we will announce on Discord and X, the future date from which a random number between 0-1 will be sourced. See Appendix 1: Sourcing Randomness for more details.
  1. On that future date we will generate the random number.
  1. This random number is passed to a small script (linked in Appendix 5.2 ) to generate the distributions.
  1. Announce the distribution via Discord, X, and the Boglez website.

Appendix 3: Boglez Reveal Process

To ensure the reveal is fair the Jascro Labs team will use the following process to randomise the Boglez:

Before mint:

  1. For each element type (fire, water, etc) the Jascro Labs team will decide how each trait will be distributed. In other words, decide the rarity of each trait. For example, the water trident may only appear on 5% of water Boglez.
  1. Generate 8192 metadata json files in accordance with this distribution.
  1. Randomise the order of the json files ahead of reveal. This randomisation does not need to be provably fair because the metadata for each token id will be shuffled further in the process (step 8). The Jascro Labs team will use the script shown in Appendix 5.3.
  1. Hash the 8,192 randomised json files using the following hashing function shown in Appendix 5.4. This is known as the provenance hash which is explained in more detail below.
  1. Set the provenance hash on the Boglez token contract. This allows the Jascro Labs team to prove that the order of the metadata was established before the final randomisation (see step 9) was known. This makes it impossible to retroactively modify the order once the offset is known in an attempt to make sure a specific token id gets a specific metadata file.

After mint:

  1. After the terrain distribution has been revealed we will announce on Discord and X, the future date from which a random number between 0-1 will be sourced.See Appendix 1: Sourcing Randomness for more details.
  1. On that date we will generate the random number as per Appendix 1: Sourcing Randomness.
  1. We will use this number as the seed value to shuffle the order of the metadata. This shuffling should be repeatable such that it can be used to prove fairness in the future if challenged. The shuffle script used is included in Appendix 5.4.
  1. The new shuffled metadata will be hosted online and the token contract will be updated such that each Bogle now points at its new shuffled metadata.
  1. A hash of the metadata will be taken and permanently set on the token contract such that the metadata can never be changed.
  1. Finally, the Jascro Labs team will publish this entire process used to generate the production metadata, including actual values, to an easily understandable web page for any interested holders.

Appendix 4: Draw Reveal Process

The following process will be used to generate the draw. For links to the scripts used throughout this process see Appendix 5.5.

Phase A: Source randomness

  1. After the Boglez reveal we will announce on Discord and X, the future date from which a random number between 0-1 will be sourced. See Appendix 1: Sourcing Randomness for more details.
  1. On that date we will generate the random number as per Appendix 1: Sourcing Randomness.

Phase B: Distribute Terrains across the draw

  1. [Before mint] At this point the terrain distribution has already been revealed (more info here: Terrain Distribution Reveal) which means the team needs to ensure that we still respect the proportions of each terrain announced in this reveal. To do so the first step is to manually build a draw where the terrains match the distribution previously announced.
  1. [Before mint] Randomise the draw. In other words, shuffle the positions of each terrain in the draw. The randomisation does not need to be provably fair because the terrains for each battle will be shuffled further in step 4 using the true randomness from phase A.
  1. [Before mint] Take a hash of this draw. Set the hash on the Draw contract. Then lock the hash on the draw contract. This is known as the provenance hash and is used to prove that we followed this process if ever challenged. Note that this is a difference instance of a provenance hash to that mentioned above in Appendix 3.
  1. [After mint] Use the random number from phase A as the seed value to further shuffle the draw. This shuffling should be repeatable such that it can be used to prove fairness in the future if challenged.

Following these steps, a small version of the draw is visualised below where the letters in each circle represent the terrain type: E=earth; F=fire; W=water; A=air.

Phase C: Distribute seeds across the draw

  1. [Before mint] The Jascro labs team will build a draw of only seed information - whether the seed is coming from the left or right side of the draw for each battle.
  1. [Before mint] This draw will be randomised. As with phase B, the randomisation does not need to be provably fair because the seeds for each battle will be shuffled further in step 4 using the true randomness from phase A.
  1. [Before mint] Take a hash of this draw and set it on the draw contract.
  1. [After mint] Use the random number from phase A as the seed value to further shuffle the draw. This shuffling should be repeatable such that it can be used to prove fairness in the future if challenged.

Following these steps, a small version of the draw is visualised below where the letters in each circle represent from which side of the draw the seed will be sourced: L=left; R=right.

Phase D: Distribute Boglez across round one of the draw

  1. [Before mint] Create a list of token ids.
  1. [Before mint] Randomise this list. As with phases B & C, the randomisation does not need to be provably fair because the list will be shuffled further in step 4 using the true randomness from phase A.
  1. [Before mint] Take a hash of this list and set it on the draw contract.
  1. [After mint] Use the random number from phase A as the seed value to further shuffle the list. This shuffling should be repeatable such that it can be used to prove fairness in the future if challenged. This list now represents the first round of the tournament moving from left to right.

Following these steps, a small version of the draw is visualised below where the text in each circle represent which Boglez are fighting each other. The corresponding list from step 4 would be [ 1, 6, 3, 2, 5, 8, 4, 7 ].

Phase E: Combine

  1. Superimpose the draw from Phase C onto Phase B to create a full randomised draw with each battle having terrain and seed information.
  1. Add the Boglez token ids to the first round of the draw

Again, for those interested in exploring the technical details of this process please see Appendix 5.5.

At this point the draw is visualised below which combines, via a layering process, all the above components of the draw.

As explained through phases B, C and D, each circle represents a battle containing information about the terrain and seed source. The text below round one’s battles show which Bogles will be fighting each other with numbers being token ids and (s) denoting the seed bogle (more info on seed Boglez in Going to Battle).

Appendix 5: Scripts

Gitlab repo commit id at the time of releasing this whitepaper: 02bd2fdf69a5291ce4acdbd73f8d4c1ea608a9cd

Gitlab repo link: https://github.com/JascroLabs/boglez-scripts

Appendix 5.1: Script to select random holders

https://github.com/jascrolabs/boglez-scripts/blob/main/src/app/main.py#L148

Appendix 5.2: Terrain distribution script

https://github.com/jascrolabs/boglez-scripts/blob/main/src/app/main.py#L61

Appendix 5.3: Metadata randomisation script

https://github.com/jascrolabs/boglez-scripts/blob/main/src/app/main.py#L17

Appendix 5.4: Metadata shuffling script

https://github.com/jascrolabs/boglez-scripts/blob/main/src/app/main.py#L31

Appendix 5.5: Metadata hashing script

https://github.com/jascrolabs/boglez-scripts/blob/main/src/app/main.py#L46

Appendix 5.6: Draw reveal scripts

Command 1: Generate the base draw using the terrain distribution: https://github.com/jascrolabs/boglez-scripts/blob/main/src/app/main.py#L83

Command 2: Randomize the terrains: https://github.com/jascrolabs/boglez-scripts/blob/main/src/app/main.py#L110

Command 3: Randomize the Boglez: https://github.com/jascrolabs/boglez-scripts/blob/main/src/app/main.py#L126