Swapify makes swapping NFTs with a friend as easy as sending money on CashApp. This saves you both gas and marketplace fees.
Swapify is a peer-to-peer trustless NFT swap dapp, that makes it easy to swap ERC-721 tokens (NFTs) with anyone. This solves the current issue of having to sell and buy the NFTs (+pay marketplace fees) in order for the swap to be trustless.
Swapify works by enabling users to connect their wallet using WalletConnect. When connected, they can create a swap for any ERC-721 token in their portfolio. When creating a swap it will go live on the Discover-page and other parties will then be able to propose a swap offer. The party that created the swap will then be able to accept the swap, and if they don’t accept the other party will be able to counter-propose by adding more NFTs to their offer. When both parties are happy, the swap-creator will be able to accept, and the NFTs will be safely swapped saving fees, time and gas for the consumer.
Building this project we have been very focused on the mainstream consumer-experience too making it as easy and clear to use from the frontend by anybody with a wallet as possible. At the same time we’ve used time on deploying on different L2-chains to make the dapp as accessible as possible.
In the future we want to include:
Cross-chain swaps
Ability to add ERC20 and ERC1155 as a part of a swap-offer
Flash loans NFTs for a given period
Tell us about how you built this project; the nitty-gritty details. What technologies did you use? How are they pieced together? If you used sponsor technology how did it benefit your project? Did you do anything particuarly hacky that's notable and worth mentioning? How did you impress yourself which what your team built?
(text)
We’ve built the project first by writing our own Swap-protocol in Solidity, and there using the OpenZeppelin standard for ERC-721 to include the approve and safeTransfer functions. We’ve then used Hardhat and Brownie for test/development which allowed us to also easily deploy our contract to SKALE, Polygon… apart from testnet.
For the frontend we used React with Next.js, Ethers.js for interacting with our contract, WalletConnect for multiple wallet options and Alchemy for loading nft metadata.
We’ve happy that we managed to not only design and write the smart contract and then interacting via etherscan, but actually managed to create a working frontend making it easy to use for every mainstream consumer. At the same time we used a wide variety of technologies we hadn’t used before by deploying to the different testnets, setting up walletconnect etc. which was exciting to get working.