
FlexiSwap
Implementation of the Swapping Tool with unique and demanded features for swapping NFTs and NFT collections
Demo
About
FlexiSwap is a universal Swapping Tool, which combines already presented features and introduces new ones. We introduce: - Wish Lists. This will put the process of finding interested NFT on the new level; - Opportunity to swap several NFTs on several; - Opportunity to swap for ANY NFT from the NFT COLLECTION Enables users to list and swap NFT assets in one-for-one, many- for-one, and many-for-many fashion; All trades can be accomplished by wish list or any user can create his/her counteroffer to already existing trade. For our feature plans we are going to: - Implement multi-chain swapping; - Support tokens in the deals; - Support other NFTs standards; - Add more advanced filtering e.g. by NFT attribute; - Opportunity for automatic searching of interested NFTs on other NFT marketplaces; - Automatic deals matching; Why we believe in FlexiSwap: - Opens up new possibilities for valuation and order types for NFTs; - Increase the overall market liquidity as it will provide a new way for collectors to interact; - Create new types of arbitrage opportunities for traders;
How it's made
This project uses several parts to deliver the best UX. Trades are created and completed on-chain with FlexiSwap smart-contracts written in Solidity. Currently only ERC721 are supported, but we are planning to add support of ERC20 & ERC1155 in the future. All trades data are indexed with The Graph to provide an easy-to-use GraphQL API. NFTs metadata & ownerships are fetched from NFTPort. Also we have custom back-ends written with Nest.js for wrapping NFTPorts data to GraphQL and federate it with The Graph provided data. One last thing, front-end written with React.ja is fetching data from federated GraphQl API and writes data on-chain with ethers.js. For our nearest plans, we want to get rid of GraphQL federation and compose GraphQL APIs directly on front-end with graphprotocol/graph-tools with composition API.