## 3 Design of the Proposed System
### Used Components
Creating collections of thousands of tokens might generate significant costs, with no guarantee the tokens will ever sell. Such a solution results in significant risk for creators. To combat this lazy minting techniques emerged [30]. While introducing additional complexity, it allows a creator to put their tokens for sale and shift the cost of minting (creating) the token onto the buyer. The token does not exist till the moment it is bought, allowing creators to completely avoid taking on the risk. In the proposed system, lazy minting was chosen as the method of distribution, as with the sheer amount of cards printed each year, the required overhead and risk on the part of the distributor would never be acceptable. Using this technique, the consumer can decide which cards they opened in their random pack they care about and only mint tokens representing the proof of ownership for those tokens. The last introduced component is InterPlanetary File System (IPFS). It is a peer-to-peer decentralized storage system used on a large scale, serving millions of requests per day [30]. The uploaded data are addressed by the hash of its content. This guarantees that under a given address, data cannot change--as even the slightest difference would result in a completely different hash. This technology is commonly used with NFTs to lift some of the storage costs of the blockchain. The NFTs would store IPFS content identifier (CID) pointing to their metadata, which can easily be resolved while still guaranteeing the data are immutable. At least one host needs to have the data stored; however, there are no requirements as to who can host data. That means that if the company hosting metadata of the cards would cease to exist, players can maintain their own repositories. This guarantees system's viability even if case the game developer would not continue to exist at some point in the future. While introducing additional risk and potentially shifting some of the maintenance to the users, using IPFS is the industry standard when it comes to hosting NFT metadata. Allowing the offloading of the vast majority of storage from the blockchain significantly reduces the costs associated with such tokens. The IPFS data needs to be pinned--meaning that for the given resource to be available, at least one available peer in the network needs to have it permanently stored for it to be available to users. This responsibility would first and foremost lie on the game developer. The dependency on game developers it creates can be addressed. Each user of the system can decide to maintain their own pinned repository, ensuring that their cards are always available. The cost associated with securing the user's own collection is negligible and comparable to the cost of storing the physical collection--which requires space and equipment to prevent the degradation of the quality of the cards. Many IPFS providers offer a free tier with enough capacity to host data for a whole private collection. If this fails, users can still host their own IPFS nodes either by themselves or as a community. Additionally, while at least one peer is hosting the files in the IPFS, the rest of the users are free to download and store the data locally. This means that even if the data on IPFS was lost, it would be recoverable without incurring any additional costs. That prevents a situation where a game developer stops hosting without prior information. The cost of this solution was reviewed based on the data for one of the largest games in the industry--Magic: The Gathering. High quality arts for the cards are around 1 megabyte in size. Assuming another 500 bytes of data for card information, based on filling the file with data from the example card, the total usage of data per card would come together at around 1.5 megabytes. The current amount of unique cards in the game is around 27,000 [31]. This means that 40.5 gigabytes of storage is required to store the entire card base for the game.