Brilliantcrypto

Download Brilliantcrypto

Download for Windows (lightbox)

Hash(SHA256): edfc4a1a7a2a1757ae28ed00a12e99fa94a1bb12e6e0db3acf951ff9aeb9d6fd

Download for MAC (lightbox)

Hash(SHA256): c7f48e510b5963b4dd951577fffdd00a21f3ed9fa7e73bd77d44d1bc7fb810bb

■ System Requirements (PC) ■
OS: Windows 10/11 (64 bit) macOS 11 Big Sur
Processor: Intel Core i5 or equivalent (7th Gen. Onwards)
Memory: 8 GB RAM
Graphics: HD Graphics 630 or equivalent
Technical Specifications

Smart Contracts

Three types of ERC20/ERC721 Smart Contracts and four types of reward-determining Smart Contracts are primarily utilized within the service.

ERC20/ERC721

BRIL

The utility token (ERC20) deployed on Polygon PoS. It is used for gameplay rewards, restoring durability of pickaxes, leveling up pickaxes, and others. The supply limit is 1 billion tokens and Brilliantcrypto, the issuer, can issue them at its discretion.
Please refer here for information on the timing of discretionary issuance.

Contract Information

  • Chain: Polygon PoS
  • Contract Address: 0x4F800bA0DFF2980C5006C6816F7aA3De63Ce8087

Pickaxe NFTs (Pickaxes)

A pickaxe is an NFT (ERC721) deployed on Polygon PoS and it is an essential item to play the game. When purchased in the in-game marketplace, it is stored in Brilliantcrypto's wallet with off-chain records of user ownership. When transferring to outside the game, it moves to the user's wallet address and its metadata updates to reflect in-game upgrades and results. By transferring from the in-game wallet integrated back to the Brilliantcrypto wallet, users can once again utilize it within the game (gameplay, leveling up, and sales in the in-game marketplace). For external markets, a Royalty Fee (ERC2981) is configured. It also incorporates the functionality of the Operator Filter Registry provided by OpenSea, enabling restrictions on transactions within specific markets.

Contract Information

  • Chain: Polygon PoS
  • Contract Address: 0x4B6C04D043b8bE721F61e91d8a96e888A7435283

Gemstones NFTs (Gemstones)

A gemstone is an NFT (ERC721) deployed on Ethereum. Gemstones obtained from gameplay rewards can be minted into NFTs at the player's discretion. Once minted, after a grace period, Brilliantcrypto issues it to the user's wallet. By executing a burn from the wallet connected to the game, players can once again use the gemstones within the game (such as selling them in the in-game marketplace). For external markets, a Royalty Fee (ERC2981) is configured. It also incorporates the functionality of the Operator Filter Registry provided by OpenSea, enabling restrictions on transactions within specific markets.

Contract Information

  • Chain: Ethereum
  • Contract Address: 0x94F3Aa177f2B6D6fC90993A007F648115885C487

Smart Contracts For
Determination of Rewards

Logic For Determining Mine Reward Overview

This is a contract on the Polygon PoS blockchain used as reference to allow determination of the mine reward overview. It uses the mine ID and a block hash from Bitcoin.
The mine reward overview includes details such as the number of gemstones and their approximate size.
This contract is deployed on a per-region basis, embedding the probability information necessary to determine the mine reward overview for that region. Once deployed, it will not be changed. When regions are added, a new contract with dedicated logic for that region will be deployed. For more details, please refer to the “Mining Rewards & Gemstone Determination Logic” section.

Logic For Determining Gemstone Details

This is a contract on the Polygon PoS blockchain used as reference to allow determination of the details of gemstones mined in mines. It uses the gemstone determination seed, reward overview data and a block hash from Bitcoin.
The “gemstone details” refers to the quality, size, and cut of gemstones found in a mine.
This contract is deployed on a per-region basis in the game, embedding the probability information necessary to determine the mine reward overview for that region. Once deployed, it will not be changed. When regions and gemstones are added, a new contract with dedicated logic for that region will be deployed. For more details, please refer to the “Mining Rewards & Gemstone Determination Logic” section.

Release of Mining Sites and Recording of Mine Acquisition Data

This is a contract on the Polygon PoS blockchain for the release of mining sites and recording data regarding the mines acquired by players. For more details on its use, please refer to the “Mining Rewards & Gemstone Determination Logic” section.

Recording of Bitcoin Hash

This is a contract on the Polygon PoS blockchain for recording the Bitcoin block hash which will form part of the seed. For more details on its use, please refer to the “Mining Rewards & Gemstone Determination Logic” section.

Mining Rewards,
Gemstone Determination Logic

Below explains the process for determining the overview of the mine rewards, and gemstone details.

  • Record the to be released mining site information on blockchain.
  • The Bitcoin block hash of a given time (e.g., end of UTC day) used for determining the mine reward overview is fixed (and saved on Polygon PoS).
  • The mine reward overview is determined using the gemstone determination seed and the Bitcoin block hash used for mine reward overview.
  • The period during which players can acquire mines begins.
  • The period during which players can acquire mines ends.
  • Record mine acquisition information on the blockchain.
  • The Bitcoin block hash of a given time (e.g., end of UTC day) used for determining the gemstone details is fixed (and saved on Polygon PoS).
  • Gemstone details are fixed.

*Since Bitcoin's block time is not a definitive value, we will use a block at an arbitrary number of blocks ahead from the reference block for determining the details.
*If there is a delay in recording the mining site information to be published, the release of that mining site will be canceled. Additionally, if the reference block hash for the gemstone details is not recoreded before the Bitcoin block hash used to determine the gemstone details appears, the determination of the gemstone details will be postponed until the next scheduled time for gemstone detail determination.

Timeline Diagram

Determination of the Mine Reward Overview

  • The gemstone determination seed issued by Brilliantcrypto (will be published in game once the mine has been cleared)
  • The block hash generated by Bitcoin’s blockchain to be used as part of the seed for generating the mine reward overview*

The above two components are used as a seed for keccak256. Through this, the number of gemstones and size of the gemstones are decided. The result will not change regardless of how many times it's executed since there is no random element included in the generation. The result is also not influenced by the player’s actions.

*A sufficient amount of time will be left before fixing this hash to allow for block finality. (expecting at least 6 blocks later) Even in the event of a significant reorg in Bitcoin, Brilliantcrypto will not alter the fixed block hash recorded at this time.

Recording Public Information of Mining Site to the Blockchain

The below data related to the mining site will be json-formatted, hashed, and recorded on the blockchain.

  • Season ID
  • Region ID
  • A hashed representation of the gemstone determination seed
  • Contract address information

By recording this data on the blockchain, it ensures that mines are released only when gemstones overview are not determined.

Recording Information About Acquisition of Mines on the Blockchain

The below data related to mine acquisition during the mine acquisition period will be json-formatted, hashed, and recorded on the blockchain.

  • Season ID
  • Region ID
  • A hashed representation of the gemstone determination seed
  • The ID of the pickaxe used to acquire the mine
  • Contract address information

By recording this data on the blockchain, it ensures that mines can only be acquired before the details of the gemstones are determined.

Determination of Gemstone Details

  • The mine reward overview
  • The gemstone determination seed issued by Brilliantcrypto (will be published in game once the mine has been cleared)
  • The block hash generated by Bitcoin’s blockchain to be used as part of the seed for generating the gemstone details*

The above three components are used as a seed for keccak256. Through this, the gemstone quality, size, and cut style are decided. The result will not change regardless of how many times it's executed since there is no random element included in the generation. The result is also not influenced by the player’s actions.

*A sufficient amount of time will be left before fixing this hash to allow for block finality. (expecting at least 6 blocks later) Even in the event of a significant reorg in Bitcoin, Brilliantcrypto will not alter the fixed block hash recorded at this time.

Varification Process of Gemstone Informaiton

As explained in the “Mining Rewards & Gemstone Determination Logic,” various data are recorded on the blockchain. By verifying this data, we can prove that the gemstone information has not been tampered with.
Below explains the verification process.

Obtain data required for verification from Brilliantcrypto app.

First, obtain the “Gemstone Determination Parameters” necessary for verification from the app.
Open the mining site database and enter the token ID of the gemstone you want to verify in the “Mined Gemstone” field and search.
In the search results, click the icon to the right of the mining site name to obtain the “Aquired Gemstone Determination Parameters”.

  • Fixed Gemstone Seed
  • Public List URL
  • Acquired List URL
  • Public List Hash Contract Key
  • Acquired List Hash Contract Key
  • Gemstone Overview Hash Contract Key
  • Gemstone Details Hash Contract Key

*Only the discarded mining sites are recorded in the mining site database.
*Data will not be returned when the gemstone details have not been determined yet.

Obtain “Mining Acquisition Data” for Varification

Then, obtain “Mining Acquisition Data.”
By accessing the “Acquistion List URL,” you will obtain a list of mining sites acquired during the target period in json format.
Each data entry in “jewel_seed_hash” includes SHA-256 “Gemstone Determination Seed”. Search within the file to obtain mining site data (hereinafter referred to as “Minng Site Evidence”) using SHA-256 “Gemstone Determination Seed”.
Using the information obtained above, execute the contract method for verification.
*Please refer to “Supplementary Information for Varification” for the steps to verify the validity of the “Mining Site Acquisiton Data”.

Varification Using the Contract

Call the contract method to perform the verification. For the contract ABI required to call, please refer to “Supplementary Information for Varification.”

Obtaining the Bitcoin Block Hash

Obtain the Bitcoin block hash for verification.
The contract_block_evidence_address in the "Mining Evidence" is the contract address of the Bitcoin block hash recorded. Use the BlockEvidence.json for ABI.
First, obtain the “Bitcoin block hash for Gemstone Overview.”
Call the getBlockForOverviewAndDetailReference method.

  • _key … ”Gemstone Overview Hash Contract Key” from the “Gemstone Determination Parameters.”
The first result (index 0) is the “Bitcoin block hash for the Gemstone Overview.”

Then, obtain “Bitcoin block hash for Gemstone Details.”
Call the getBlockForDetail method for the following parameters.

  • _key … “Gemstone Details Hash Contract Key” from the “Gemstone Determination Parameters.”

The first result (index 0) is the “Bitcoin block hash for the Gemstone Details.”

Verifying Gemstone Overview

Here is how to verify the overview of gemstones.
The contract address to determine the overview is contract_jewel_overview_address in “Mining Evidence.” Use MountainJewelOverview.json for ABI.
Call confirmOverviews method.

  • _islandId … island_id from “Mining Evidence”
  • _mountainSeed …”Gemstone Determination Seed” from “Gemstone Determination Parameter”
  • _bitcoinHash …”Bitcoin block hash for Gemstone Overview”

Each entry in the returned array represents the overview of the gemstone.

  • Index 0 … Index of the gemstone whithin the mining site.
  • Index 1 … Rough size on a scale of 7. In the app, it is presented in 4 sizes. (1: Tiny, 2: Small, 3: Moderate, 4~7: Medium)

Verifying Gemstone Details

How to verify the gemstone details based on the gemstone overview result.
The contract address to determine the details is contract_jewel_detail_address in “Mining Evidence.” Use MountainJewelOverview.json for ABI.
Call confirmDetail method.

  • _islandId … island_id from “Mining Evidence”
  • _mountainSeed …”Gemstone Determination Seed” from “Gemstone Determination Parameter”
  • jewelIndex … index obtained from overview results
  • jewelSizeType … Rough size obtained from the overview results
  • _bitcoinHash …”Bitcoin block hash for Gemstone Details”

The method returns data for a set of gemstone details.

  • Index 0 … Index of the gemstone whithin the mining site.
  • Index 1 … Rough size on a scale of 7.
  • Index 2 … Type of gemstone (1: Diamond, 2: Aquamarine, 3: RedSpinel)
  • Index 3 … Quality (1: Accesory, 2: Jewelry, 3: Gem)
  • Index 4 … Quality scale Index starting from 0
  • Index 5 … Cut (1: Oval, 2: Round Brilliant, 3: Emerald, 4: Marquise, 5: PearShape, 6: Princess, 7: Heart-Shape, 8: Radiant)
  • Index 6 … Cart. The value is multiplied by 100 (e.g., if it’s 0.1 ct, it will be 10)

Perform this for all gems returned from the overview verification to ensure they are included in the results.

Supplementary Information for Varification

Contract ABIs

Varification Process for Validity of “Mining Site Acquisition Data”
The contract address that stores the hashed file of “Mining Site Acquisition Data” is contract_mountain_evidence_hash_address in “Mining Evidence.” Use MountainEvidenceHash.json for ABI.
Call getHash method.

  • _key … Public List Hash Contract Key

Verify that the result obtained matches the SHA-256 “Mining Site Acquisition Data” file.