Mandala : Ultimate Web3 Gaming Inventory

Mandala : Ultimate Web3 Gaming Inventory

A game dev who is unfamiliar with web3 can easily create web3 games using the Mandala inventory. It provides the best advertising experience that will satisfy gamers, game devs and advertisers alike.

The problem Mandala : Ultimate Web3 Gaming Inventory solves


As depicted in the movie Ready Player One, we are looking forward to the activation of Web3 Gaming. However, there are two obstacles hindering its progress.

  1. Player Experience: Blockchain-based games may sometimes offer a less optimized user experience compared to traditional games. For example, additional steps may be required for transaction approvals or gas fees.
  2. Technical Complexity: Blockchain and related technologies are complex and pose different challenges compared to the traditional game development process. Integrating these technologies requires new knowledge and expertise.

We solve this problem with an inventory created using ERC4337 and ERC6551.

Game developers have a lot of things to consider. Additionally, learning and using Web3 technologies is a very difficult task.
Game developers can easily convert their games into Web3 games by using the Mandala Inventory.
Game developers have always wanted to use a well-made and customizable inventory system. If they can access Web3 by using the inventory without modifying the game logic, they will welcome it.


There are several benefits for game developers using the Mandala Inventory.

  1. Mandala Inventories can interact with each other through trading, renting, auctioning, etc. There is no need to implement a trading system.
  2. Provides a new advertising experience that satisfies gamers, game developers, and advertisers alike.

Advertising Scenario

Coca-Cola runs an advertisement. Coca-Cola sends Coca-Cola NFTs to the gamers' Mandala Inventory. The Coca-Cola NFT functions as an item in each game. Gamers have a good experience by receiving items that help them, rather than annoying advertisements. Game developers can easily insert advertisements without disrupting the game experience. Advertisers expose the advertisement every time a user opens their inventory, and the user does not feel annoyed.

Challenges we ran into

About Architecture

  • During combining ERC4337 and ERC6551, It's quite complicated to define how and what owns NFT between SCW(Smart Contract Wallet) and TBA(Token Bound Account), and also how to define each UserOp. It took time to define that SCW owns NFT, NFT owns TBA, and for execution of "execute" function, SCW's UserOp Raw Transaction includes the Function Interface as a data.
  • We had a concerns that where we have to implement the TBA's Account Implementation. At first, we considered that we make it on NFT Contract or NFT Contract has a fuction for calling TBA's "execute". But Tx's sender has to be SCW, not ERC721 Contract, so we made TBA Implementation itself, and we put Mapping state on NFT Contract to handle TBA List.

About ERC-4337(Biconomy)

  • When using Biconomy Social Login, a bug occurred when switching to Linea Testnet that did not occur on the Polygon Mumbai Testnet. On the Polygon Mumbai Testnet, all social logins such as Google, Facebook were possible, whereas on the Linea Testnet, only Metamask login was possible. Not only me but also my teammate experienced the same error. We have complied with all the matters written in the Biconomy documentation.
    The error we encountered is as follows:
    WalletLoginError: Failed to connect with walletFailed to login with openlogin
    {"success":false,"message":"Invalid public key"}

About ERC-6551

  • There were just few TBA Implementation cases and some of them has no Receiver for ERC721 and ERC1155, so we've built from the beginning with reference. We put Openzeppelin's ERC721Holder and ERC1155Holder on Account Implementation, so our TBA can get NFT and transfer.