[ Addressing Data Sovereignty Challenges in Web2 and Web3 ]
The sovereignty of data has always been an issue, especially in web2 where trading game and SNS accounts are forbidden by service terms but still creates significant market. Account holders only hold a limited license, and the account belongs to the company. Your account actually belongs to the web2 company! In web3, tradable assets like fungible and non-fungible tokens have gained some sovereignty, but non-tradable things still have untapped value.
[ 0xMarket: Unlocking Value through Tradable Assets and Ownership Transfer ]
Thanks to ERC-4337 and account abstraction, 0xMarket enables trading of non-tradable assets by transferring ownership. Our platform offers several benefits, including the creation of new value streams such as trading of whitelist spots or early-stage investor wallets. Additionally, it helps users quickly adapt to the ecosystem by finding their ideal wallet. For instance, if a user wants to play a web3 game that requires a different set of NFTs and levels to play, they can buy a game account to kick-start the game. This new incentive also provides original users with additional motivation to put in more effort and contribute to the game.
[ Ensuring Ethical Trading and Asset Differentiation in a Decentralized Marketplace ]
To prevent adversarial use cases like trading identity-related assets, listing accounts must burn credential-related assets before listing on our platform. Ethical concerns regarding transferring credential assets stem from the contract account itself, not our platform. Due to the nature of transferable ownership, it's crucial for the community and service providers to differentiate between assets issued to a contract address and those issued only to EOA. As a decentralized marketplace, we won't determine which assets can be traded; instead, the issuing service should make that decision.
Our product is primarily composed of two parts: the contract side and the web side. For the contract side, we utilized Solidity and employed Hardhat for compilation, deployment, and testing. We implemented the Account Marketplace using OpenZeppelin as an open-source solution. The TradableAccount implementation involved adding a changeOwnership function to the SimpleAccount, originally developed for Account Abstraction by Eth-Infinitism. We ran a bundler node on Stackup to verify if the contract account created using ERC-4337 properly handles user operations.
On the web side, we began the project using the Create React App (CRA) toolchain. We adopted Ethers JS and Wagmi.sh libraries as the blockchain core libraries. For styling, we used Emotion styled components, Tailwind CSS, and Twin.macro. We developed components using Storybook and implemented a mock server library called MSW to enable the demo to run without a backend. As a substitute for a database, we used browser local storage. We enforced consistent code style using Lint and Prettier and managed Git branch conflicts by allowing only rebase and fast-forward merges.
We utilized Adobe Stock for illustrations and open-source resources like Noun Project for icons. For components, we were able to intensively design using design systems distributed by other people on the Figma community and pieced together to fit our needs.
We utilized three sponsor technologies: UMA, Airstack, and Push Protocol. We integrated UMA's optimistic oracle to verify statements not queried by our platform, enabling the use of human double-checking when necessary. To query on-chain data for an account, we used the Airstack API. We also added the Push protocol to notify sellers when an item has been sold, further enhancing the user experience. These sponsor technologies significantly benefited our project by providing essential functionality and streamlined processes.