From a game company's perspective, creating a new game is a task that requires a lot of time and money. By allowing users to invest in future game projects with NPT tokens and distributing the profits of the game later, the risk will be hedged and the use of NPT will increase. Additionally, due to the nature of game production projects, which are illiquid assets and have a very high unit price each, tokenizing them in the spirit of RWA can increase the value of the game project simply just by making illiquid assets liquid.
We went further and created a derivative product with NPT as the underlying asset. In PoS-based protocols, Liquid Staking Derivatives (LSD) return staked-native tokens when native tokens are deposited. Through a similar mechanism, investors receive stNPT when NPT is invested in the early stage game. stNPT holders can open random boxes of their favorite games produced by Neowiz and Neople. These random boxes contain a variety of game items from the game. When opening a random box with stNPT, gamers will open the chest at a cheaper price than opening the chest with USDC or USDT.
The gaming industry was confused for a while due to the probability of manipulation incidents when obtaining game goods. To prevent this, our project uploads game items and their respective probabilities onto Astar zkEVM. Buyers open the box through stNPT and receive game goods as NFTs minted based on ERC-1155. The project was built on Astar zkEVM considering quick completion and security.
First, we were confronted with an EIP-1559 error which told us that the current network did not support this protocol. After experimenting with some suspicious parts, we found that this problem could be solved by using a raw transaction and synchronizing the version between MetaMask and web3.js framework. And we also used a custom provider rather than using a wallet provider from MetaMask.
Second, we switched our game NFT standard to ERC-721 to ERC-1155. However, we encountered difficulties in creating ERC1155 metadata and token minting. At first, we tried separate tokenId based on a single JSON file, but that was the wrong way to do it. Similarly to ERC721, we had to write metadata for each NFT and match the image URI to each metadata.
Third, in order to utilize wallet-connect, we both created a test NPT token and staked NPT token in ERC-20 standard. And also, by creating an address via wallet-connect, we sent NFT where each contained gaming assets. However, we had forgotten the fact that wallet-connect only displayed tokens that were permissioned in advance. Since, it was difficult to show the assets that we had on wallet-connnect address, we used Metamask wallet to show that our transactions were valid.
Tracks Applied (3)
Astar Foundation
Astar Foundation
NEOPIN
Technologies used
Discussion